First - please - stop using the term 'VGA'. VGA is a very specific standard for video display (http://en.wikipedia.org/wiki/VGA). There is no VGA here. By using the term, you muddle the discussion.
Ok.
mode_option is only valid when you load the driver as a module. When running with the driver built in, then you specify the mode on the command line, as detailed in Documentation/fb/modedb.txt. The correct way to specify the mode on the command line is as follows:
video=lxfb:<xres>-<yres>-<bpp>@<refresh>
Yes, my fault! Actually, I did use the correct way of specifying the mode on the command line. However, when composing the email, i wrongly wrote the 'mode_option'. lxfb driver is compiled into the kernel and the current command line is:
kernel /boot/vmlinuz-2.6.23.9-geodelx-fb root=UUID=a4e4ac87-c677-45e1-aa21-1e4654feac95 ro console=tty0 console=ttyS0,115200 video=lxfb:640x480@60
I also noted that you were specifying vga=<number> on your command line - if the vesa framebuffer is also installed in your kernel (as it would be with a normal Ubuntu kernel), then that will cause the VESA framebuffer to be loaded first (which would of course, fail). The lxfb would be loaded as well, but registered as the second framebuffer (if you have your kernel output from dmesg, you should be able to see this happen).
The fbset you did below would kick the second driver and have it take over the console from the failed primary driver.
VESA VGA Support is -not- enabled. So, lxfb is registered as the first framebuffer (/dev/fb0):
root@ubuntu-LX800:~# cat /proc/fb 0 Geode LX
This is the mode that is listed in the file /etc/fb.modes - which is a set of generic timings provided by Ubuntu. Both timings are actually correct - if you were to run fbset and set the previous timings, they would work. What you are seeing is a side effect of a poorly configured kernel.
Jordan
I tried to check both timings sets using "fbset --timings" command. The only set that works is:
root@ubuntu-LX800:~# fbset -i mode "640x480-60" # D: 25.175 MHz, H: 31.469 kHz, V: 59.940 Hz geometry 640 480 640 480 16 timings 39722 48 16 33 10 96 2 rgba 5/11,6/5,5/0,0/0 Endmode
The other set (the "original" one") provides VSYNC=63Hz, instead of 60Hz:
root@ubuntu-LX800:~# fbset -i mode "640x480-63" # D: 25.200 MHz, H: 32.143 kHz, V: 63.150 Hz geometry 640 480 640 480 16 timings 39682 48 8 25 2 88 2 rgba 5/11,6/5,5/0,0/0 Endmode
Omar.