Albrechts Blog

from time to time I’ll report some stories about software I’m currently using/configuring etc.

X config for Geode based Hercules eCafe EC-800

This weekend I had to install Jaunty on an AMD Geode based Hercules eCafe EC-800 netbook.

The problem with the graphics hardware is: The X server always thinks that the display is 800×600 but it is 800×480. So you what ever you do, you cant see the bottom part of the screen. It seems, this has been introduced with Ubuntu Jaunty and continues to be that way in Karmic.

After reading the driver source it turned out, that there are (at least) two versions of AMD Geode graphics hardware: GX and LX.

The GX version accepts a PanelGeometry option, where you can specify the panel size in pixels. Most forum posters try to use this without success.

The LX version uses a PanelMode option where the ModeLine has to be specified once more. So if you have

Modeline "800x480" 33.45 800 840 968 1056 480 490 492 525 -hsync -vsync

in Section “Monitor” you need

Option "PanelMode" "33450 800 840 968 1056 480 490 492 525"

in Section “Device”. The first parameter is the pixel clock in Hertz followed by the remaining parameters for x and y resolution.

The full working xorg.conf file is here: http://www.algepop.net/users/alge/xorg.conf.eCafe-EC-800

6 Responses to “X config for Geode based Hercules eCafe EC-800”

  1. Christian Imhorst Says:

    Hello Albrecht,

    I have the Hercules eCafe EC-800, too, with Xubuntu 9.10 Karmic Koala. I copied your xorg.conf to /etc/X11 and rebooted the netbook. The problem was, that I couldn’t start into XFCE. GDM loaded with the correct resolution, but XFCE wouldn’t. It felt permanently back to the log in screen of GDM. I had to remove xorg.conf and to reboot to start XFCE again.

    This says lspci, I think is the same as yours:

    00:01.0 Host bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] Host Bridge (rev 33)
    00:01.1 VGA compatible controller: Advanced Micro Devices [AMD] Geode LX Video
    00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block
    00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
    00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
    00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01)
    00:0f.3 Multimedia audio controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] Audio (rev 01)
    00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02)
    00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02)

    Do you have any idea?

    Regards,
    Christian

  2. alge Says:

    Does GDM provide some option for “failsave” login? If so try that, you should get an X server with some simple terminal running in it. Then you could try to start you XFCE session manually, I dont remember the command at the moment, but something like startxfce4 will do it.

    Maybe the error messages you will see then contain some useful information.

    My configuration definitely works only for 800×480 (I didnt know that the EC-800 also supports 1024×600). So if some XFCE configuration forces the X server to switch to 1024×600 then it wont work. You may try to remove the comments of the “1024×600″ lines (and add a comment sign to the “800×480″-only line in the “Screen” section). Maybe XFCE starts then (but screen resolution 1024×600 was cut to something like 800×480 for me). I didnt try XFCE, used default Gnome session instead (after trying and then removing UNR).

    The EC-800 is not my own device, I only had to fix it for someone else, so currently I have no access to it and cannot test it again …

    Regards,
    Albrecht

  3. Christian Imhorst Says:

    Hi Albrecht,

    OK it’s working now. I think the window manager xfwm4 had the problem. I replaced it with Openbox and the latter has no problem with your xorg.conf.

    For everyone who wants to replace the window manager of XFCE: Install Openbox, log into your normal XFCE session. Then, run

    killall xfwm4; openbox –replace

    in a terminal to kill the XFCE window manager, and replace it with Openbox. Now you have to log out and log back in but make sure you check the box that says “Save session for future login”. When you log back in, XFCE will use Openbox.

    Regards,
    Christan

  4. didier Says:

    Hello, Thanks A LOT. I was looking for this for a year.

    I posted a solution for Mandriva based on your solution.
    http://forum.mandriva.com/viewtopic.php?p=683631

    Thanks !!!!

  5. Albert Says:

    Hi,

    I have an eCafe EC-800 too, and I am using Gentoo. I use to work from the console, and there was a similar issue with the console resolution and pixels out of the image. I solved it by adding to the drivers/video/geode/lxfb_core.c file

    /* 800×480-60 */
    { NULL, 60, 800, 480, 33805, 96, 16, 13, 1, 80, 3,
    0, FB_VMODE_NONINTERLACED, 0 },

    in the list of video modes, and also passing the parameter

    video=lxfb:800×480@60

    in the bootloader (this requires compiling the kernel).

    Albercht thanks for your tip with the ‘PanelMode’ option, now I no longer need to adjust the size of the windows manually. By the way, are the parameters in the ModeLine and PanelMode unique? I am using the values

    (II) GEODE(0): Modeline “800×480″x60.0 29.59 800 832 944 976 480 490 495 505 -hsync -vsync (30.3 kHz)

    and apparently the refresh is also 60Hz.

    Also, I have not been able to set the real resolution beyond 800×600; it interpolates even if I connect an external monitor to the VGA output. Do you know whether it is possible to use higher resolutions (it does not matter if the LCD has to be turned off)?

    Xorg log
    (==) GEODE(0): No DCON is present
    (II) GEODE(0): LX output options:
    (II) GEODE(0): CRT: YES
    (II) GEODE(0): PANEL: YES
    (II) GEODE(0): DCON: NO
    (II) GEODE(0): VGA: YES
    (II) GEODE(0): Primary V_BIOS segment is: 0xc000
    (II) GEODE(0): Output default using monitor section Configured Monitor
    (II) GEODE(0): I2C bus “CS5536 DDC” initialized.
    (II) GEODE(0): Output default connected
    (II) GEODE(0): Using user preference for initial modes
    (II) GEODE(0): Output default using initial mode 800×480

    xrandr only reports a ‘default’ outupt, no chance to tweak the VGA separately
    Screen 0: minimum 320 x 200, current 800 x 480, maximum 1024 x 1024
    default connected 800×480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
    800×480 60.0*+
    1024×768 60.0 60.2

    Thanks in advance,

    albert

  6. alge Says:

    BTW, recently there has been some traffic on this Ubuntu Bugreport: https://bugs.launchpad.net/bugs/433142 which is related to the Geode driver, maybe there is something new.