Hardware Drivers

From OLPC
Jump to navigation Jump to search
  english | 한국어 HowTo [ID# 70368]  +/-  

Video

Marvell Wireless Driver

Is available in the GIT tree, but it would be great if it could be included in the next stream-image

Mesh Networking

Are you going to place the RoofTop network driver in the box to enable mesh networking?

Audio

Note: need to verify that the audio sensor stuff actually made it upstream and come up with a test plan. Also need to document OLPC-specific bits.

CAFE NAND Driver

Is available in the GIT tree.

DCON

The DCON work has its own page: DCON.

Geode LX (B3+)

lxfb Framebuffer Driver

The Geode LX (lxfb) driver is used to provide graphical console support in the kernel.

Xorg Driver

The xf86-video-amd driver provides support for both the LX and the GX platforms. The LX platform needs special settings in the xorg.conf file:

Section "Device"
        Identifier "Geode"
        Driver "amd"
         
        # This option sets the amount of video memory to use 
        Option "FBSize" "8388608"

        # The following turns compression off - this allows the driver to use a linear pitch instead of a power of 2
        # Saving about 3MB of video memory for other uses 
        Option "NoCompression" "true"

        # The following sets the panel geometry - this is needed to tell the X driver the size of the DCON
        Option "PanelGeometry" "1200x900" 
EndSection
Stop hand.png WARNING:
The content of this section is considered
DEPRECATED and OBSOLETE
It is preserved for historical or documenting reasons.
The following is for the <B2 boards

GX

FBDev Driver

The Geode GX Framebuffer (gxfb) driver is used in both LinuxBIOS and in the kernel proper during bootup. It provides simple unaccelerated framebuffer support and also helps drive the flatpanel.

Currently available in the olpc-2.6 GIT tree

You can change the resolution of the framebuffer two ways:

  • with the 'fbset' utility like so:
fbset -g <xres> <yres> <xres> <yres> <depth> -n
  • On the kernel command line:
 video=gxfb:<xres>-<yres>-<depth>@<refresh>

We have timings for all of the standard VESA modes, plus the special 1200x900 mode for the OLPC panel. Don't use the 1200x900 mode on a CRT - you could damage your monitor, or at the very least get a headache.

I spoke too soon. These fbdev mode works well on my multi-sync monitor. YMMV - use with caution, don't take internally, see your doctor if the symptoms don't go away, etc, etc.... JordanCrouse (Talk to me!) 14:57, 3 August 2006 (EDT)

mode "1200x900-75"
   # D: 124.239 MHz, H: 73.952 kHz, V: 75.002 Hz
   geometry 1200 900 1200 900 16
   timings 8049 104 240 29 54 136 3
   rgba 5/11,6/5,5/0,0/0
endmode
mode "1200x900-85"
       # D: 132.767 MHz, H: 81.352 kHz, V: 85.008 Hz
       geometry 1200 900 1200 900 16
       timings 7532 216 88 41 13 128 3
       accel false
       rgba 5/11,6/5,5/0,0/0
endmode

X Video Driver

The Geode GX/LX Xorg graphics driver is a Xorg driver that is under development. It provides XAA support for the Geode GX and LX, and EXA support for the GX. It also provides a simple Xv driver for the GX. It's packaged as xorg-x11-drv-amd in Fedora Core, and also available on freedesktop.org: GIT tree.

The following is an example "Device" entry to enable the driver:

Section "Device"
        Identifier "Geode"
        Driver "amd"
        
        # The following will enable the EXA driver.  Comment it to only use XAA
        Option "AccelMethod" "EXA"

        # This option disables VGA probing
        Option "NoVGA" "true"
 
        # The folloiwng tells the driver to use our custom mode (otherwise, it uses an internal table)
        # You will only want to use this if you have a DCON attached - the internal tables have most VESA modes
        Option "CustomMode" "true"

        # The following turns compression off - this allows the driver to use a linear pitch instead of a power of 2
        # Saving about 3MB of video memory for other uses 
        Option "NoCompression" "true"
EndSection

The following modeline should match the correct OLPC panel timings:

Mode "1200x900"
        DotClock 57.275
        HTimings 1200 1208 1216 1240
        VTimings 900 905 908 912
        Flags    "-HSync" "-VSync"
EndMode