Asus Eee PC 901

The Asus EEE PC 901 is the second-generation EEE PC with a 1024x600 9-inch screen. It has a 1.6GHz Intel Atom processor with 20G of SSD storage divided into a 4GB master and a slower 16GB (8GB in Windows version) slave disk. Driver support for all of the EEE PC 901 hardware is present as of -2.6.30.

Wired
The Ethernet network card of the Eee 901 is a Atheros L1E Gigabit Ethernet Adapter as shown by below:

03:00.0 Ethernet controller: Attansic Technology Corp. Device 1026 (rev b0) Subsystem: ASUSTeK Computer Inc. Device 8324 Flags: bus master, fast devsel, latency 0, IRQ 17 Memory at fbfc0000 (64-bit, non-prefetchable) [size=256K] I/O ports at ec80 [size=128] Capabilities: [40] Power Management version 2 Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- Capabilities: [58] Express Endpoint, MSI 00 Capabilities: [6c] Vital Product Data <?> Kernel driver in use: ATL1e Kernel modules: atl1e

Enable Atheros L1E Gigabit Ethernet support in your kernel:

Wireless
The wireless device (rt2860sta/ra0) looks like this to lspci:

01:00.0 Network controller: RaLink Device 0781 Subsystem: RaLink Device 2790 Flags: bus master, fast devsel, latency 0, IRQ 19 Memory at f7ff0000 (32-bit, non-prefetchable) [size=64K] Capabilities: [40] Power Management version 3 Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable- Capabilities: [70] Express Endpoint, MSI 00 Kernel driver in use: rt2860 Kernel modules: rt2860sta The rt2860sta driver was not included in the Linux mainline until 2.6.30. So you'll need to use >=-2.6.30:

Function Keys
For the Eee 901 function keys to work you'll need to enable the eeepc_laptop module in your kernel:

Power Management
The Gentoo Power Management Guide has a lot of information on configuring a machine for minimizing power usage and sleep modes. powertop is very useful for tweaking the system for minimum power usage. You should expect to draw about 7W while browsing with WiFi enabled and a reasonable brightness level.

Super Hybrid Engine
This is a special power-saving feature particular to this computer. Despite the corny name, it drastically reduces power consumption--at the price of performance of course. This alters some of the frequencies and voltages on the motherboard and should be used in addition to normal cpu governors. The eeepc_laptop driver, available in kernel versions 2.6.30 and above, has the ability to set SHE performance preset via. You need enable Eee PC Hotkey Driver support in your kernel for this to work:

Valid values for are: 0: Performance 1: Default 2: Powersave

To check the current setting,

This should output something similar to: 0x301 The highlighted 1 indicates that its set to Default. To change to Powersave, you would issue:

WiFi
If you're using wifi, you can activate the drivers power saving mode by issuing:

Put it back to normal with:

This will save you around half a watt. You could also set PSMode=Max_PSP, but this is really slow. The following file will automatically apply the power saving mode if you're using NetworkManager: /etc/NetworkManager/dispatcher.d/02wifipower See the NetworkManager man page for more info.

Sound
The sound device is an Intel HDA with a Realtek ALC269 codec:

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

Card default 'Intel'/'HDA Intel at 0xf7db8000 irq 16' Mixer name   : 'Realtek ALC269' Components   : 'HDA:10ec0269,1043831a,00100004' Controls     : 7 Simple ctrls : 5

Select the appropriate driver and codec in the kernel:

The snd-hda-intel module should be set to conform to the specifics of the Eee 901:

Bluetooth
The bluetooth device sits on the USB bus:

Bus 005 Device 002: ID 0b05:b700 ASUSTek Computer, Inc. Device Descriptor: ... bDeviceClass         224 Wireless bDeviceSubClass        1 Radio Frequency bDeviceProtocol        1 Bluetooth bMaxPacketSize0       64 idVendor          0x0b05 ASUSTek Computer, Inc. idProduct          0xb700 bcdDevice           2.41 iManufacturer          1 Broadcom Corp iProduct               2 BT-253 ... Select the appropriate driver in the kernel:

The device can be enabled/disabled in the BIOS (Advanced>Onboard Devices Configuration>Onboard Bluetooth).

WebCam
The webcam is the CNF7129 from Chicony Electronics:

Bus 001 Device 003: ID 04f2:b071 Chicony Electronics Co., Ltd Some revisions of the EEE PC 901 may ship with a camera from Gensys Logic.

Bus 001 Device 003: ID 05e3:0505 Genesys Logic, Inc.

The in-kernel uvcvideo driver supports these:

Temperature
The CPU temperature can either be read using ACPI (from ) or the hwmon framework (from ).

Fan
The fan can be controlled from. shows the fan RPM, shows the fan speed (between 0 - 255), and  toggles manual versus BIOS-operated fan control (0: BIOS control, 1: Manual control). The fancontrol script provided by the package can be used to control the fan speed based on the CPU temperature.

To use it first create a new file, and edit it to look something like the following:

Read the fancontrol man page for further information.

You can then start the fancontrol daemon with the following:

To start it automatically, add it to the default runlevel with:

X11
Following the Gentoo X11 Guide will probably suffice for setting up X11 to function on the 901. For more information, see the X.Org, Graphics drivers and Intel GMA articles for further information.

Graphics
The graphics hardware in the Eee901 is a Intel 950 GMA as shown below with :

00:02.0 VGA compatible controller: Intel Corporation Device 27ae (rev 03) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device 830f Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at f7e00000 (32-bit, non-prefetchable) [size=512K] I/O ports at dc80 [size=8] Memory at d0000000 (32-bit, prefetchable) [size=256M] Memory at f7dc0000 (32-bit, non-prefetchable) [size=256K] Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Capabilities: [d0] Power Management version 2

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) Subsystem: ASUSTeK Computer Inc. Device 830f Flags: bus master, fast devsel, latency 0 Memory at f7e80000 (32-bit, non-prefetchable) [size=512K] Capabilities: [d0] Power Management version 2 The is the driver required by X to handle this card. Set VIDEO_CARDS to intel in and see the Graphics drivers and Intel GMA articles.

Input
The touchpad is from Elantech:

... I: Bus=0011 Vendor=0002 Product=000d Version=0063 N: Name="ETPS/2 Elantech Touchpad" P: Phys=isa0060/serio1/input0 S: Sysfs=/class/input/input5 U: Uniq= H: Handlers=mouse0 event5 B: EV=f B: KEY=6420 0 7000f 0 0 0 0 0 0 0 0 B: REL=143 B: ABS=1000003 This touchpad requires the Elantech PS/2 protocol extension to be enabled in your kernel:

Set INPUT_DEVICES to synaptics in. If you want X to auto-configure other input devices, like external keyboards and mice, you should also add evdev to INPUT_DEVICES. See the Input drivers article for further information.

Note: I had to add mouse and keyboard to my INPUT_DEVICES to get them to work.

Below is a custom, Eee 901 specific FDI file. FDI files are basically rule sets for HAL on how to configure the features of various input drivers. Make sure you save it too :

Note: As of Gnome 2.28 and the upstream decision for deprecation of HAL, synaptics settings are being ignored.  You can go to System->Preferences->Mouse->Touchpad to configure it or follow the instructions in the link provided.

Framebuffer
The eeepc BIOS doesn't report its native screen resolution. With uvesafb alone, the closest mode available is 1024x768.

In order to get the native 1024x600 resolution on the framebuffer, the 915resolution utility is needed to hack the video BIOS. The 915resolution package in the portage tree does not recognise the intel 945GME chipset, however. There is a bug that contains a patch.

Following directions from Spock's page, enable the the following features in your kernel. Note that Userspace Vesa VGA support must be a module, not built-in.

Save the configuration and rebuild the kernel. Don't install it yet.

Fetch the 915resolution ebuild and patch from bugzilla and install to a local overlay.

And install the following packages:

Rebuild the kernel and install it. Do not put any video mode selection on the kernel parameters line.

As root, check available video modes using:

This will list the available modes according to the VESA BIOS. You probably don't want of 1920x1440 mode (5c), so this article will use its code to set up the custom resolution.

For the impatient, here is the shortest way to test it, run:

You should now have a nice framebuffer with a neat font at native resolution. Now, to make your changes persistent (i.e. load them automatically), edit these two files :

add it to init with:

make.conf
You can also consider -Os march option as cache is a reasonable 32KB iL1/24KB dL1/512KB L2 and space may get tight on an SD card. See the Intel Atom N270 section of the Safe Cflags article for the CHOSTS, CFLAGS and CXXFLAGS.