How To Get a Console at your screen's Native Resolution
The Eees' LCDs have native resolutions of 1024x600 or 800x480 pixels, and X will run at that resolution by default. But the consoles (i.e. what you get when you press Ctrl+Alt+F1..F6) don't, and making them do so is quite involved. This page explains how to do it.
There are a few reasons why this is complicated:
- The Eee's BIOS doesn't advertise the native resolution in its list of screen modes.
- The kernel's intelfb framebuffer driver doesn't support mode changing for laptop screens.
- The intelfb driver also doesn't support the graphics chip in the '901.
- The 915resolution utility (described below) also doesn't support the graphics chip in the '901.
It's possible that some of these reasons may go away in the future; in particular, patches have already been submitted for the last two. So you might like to check on the current status, and please update this page if necessary.
Setting the mode from the bootloader
One approach is to set up the screen mode before the kernel starts. To do this you need to patch your bootloader. This seemed too complicated to me, but if you want to try it it's described in the section "Text Mode" on page DebianEeePC/TipsAndTricks. If you have a '901, or other newer model with the 945GME graphics chip, you'll probably need to incorporate the changes for that chip described below into the 915 patch that you apply to grub.
An advantage of this method is that you should be able to run the kernel's intelfb framebuffer driver, which has graphics acceleration. This is particularly important if you're going to run things like DirectFB applications. However, at present the intelfb driver doesn't know about the 945GME chip; a patch to add support can be found here: http://lkml.org/lkml/2008/8/29/171
Using uvesafb and 915resolution
I believe that this method is simpler than the above as it doesn't require that you change your bootloader. It uses the kernel's uvesafb framebuffer driver and a utility called 915resolution. uvesafb lets you change the screen mode at any time you want, and gets its information about available modes from the BIOS; 915resolution modifies the in-RAM copy of the BIOS (not the ROM) to add new modes. Proceed as follows:
Download the 915resolution source (version 0.5.3) from http://www.geocities.com/stomljen/ .
If you have a '901 or newer model with the 945GME graphics chip, you'll need to patch 915resolution to support it. The patch that you need is at http://chezphil.org/tmp/915r_945GME.patch .
- Compile and install 915resolution.
- Run "915resolution -l" to list the screen modes that the BIOS advertises. Choose one that you don't need and replace it with the screen's native resolution, e.g. "915resolution 34 1024 600".
- Make sure that you have the v86d package installed; it's needed by uvesafb.
- modprobe uvesafb.
- Put a description of your native resolution at the start of /etc/fb.modes:
mode "1024x600-60" geometry 1024 600 1024 600 8 timings 20461 144 40 18 1 104 3 endmode
- "fbset 1024x600-60" and you should have a native-resolution console.
Using uvesafb on 701
I was able to just install the v86d package and add
to the end of /etc/modules, and reboot to get the new resolution.