Asus_EEE_PC_901
Contents |
Introduction
The Asus EEE PC 901 is the second-generation EEE PC with a 9-inch screen. It has an Intel Atom processor and 20G of SSD storage divided into a 4GB master and slower 16GB (8GB in Windows version) slave disk. Built in features:
- Ethernet port
- Wireless-N
- Bluetooth
- 1.3MP webcam
This is the 20G version, which comes with a Xandros-derivative installed by default. All of the features work on that, and Asus has reportedly been good at contributing their code, so in theory getting everything working should be possible. In practice, however, as of August 2008 some of the hardware is so new it's not even in the stable vanilla kernel, let alone in an officially stable version of gentoo-sources.
See also: Asus EEE PC 1000 - similar hardware, but not as small.
the issue with suspending while you have filesystems mounted from USB hardware.
Hardware
Booting
No CD-ROM of course, so you'll have to follow the directions here. I had some trouble with syslinux, so I ended up just installing Grub on the SD card and modifying the syslinux.cfg file into a grub menu.lst file. I'll paste it later.
Live CD Install
It is possible to do a gentoo install to an SD card with the 2008.0 livecd (actually livecd-i686-installer-2008.0-r1.iso). Hitting escape for the BIOS BBS menu on bootup, will give you the option to boot off an external CD/DVD USB drive.
The Live CD may need to have the ext2/ext3 filesystems created manually, but otherwise it should complete the install (including an unasked-for grub install) after a couple of hours.
File System Layout Options
Note that when considering file system layout options, there is a large difference in read performance between the internal SSD's and an SD/SDHC card:
# hdparm -t /dev/sd? /dev/sda: Timing buffered disk reads: 98 MB in 3.03 seconds = 32.36 MB/sec /dev/sdb: Timing buffered disk reads: 88 MB in 3.01 seconds = 29.20 MB/sec /dev/sdc: Timing buffered disk reads: 54 MB in 3.07 seconds = 17.61 MB/sec /dev/sdd: Timing buffered disk reads: 76 MB in 3.07 seconds = 24.74 MB/sec
In the above timings:
- sda and sdb
- are the internal SSD drives.
- sdc
- is a Sandisk SDHC Extreme III SDHC card rated at 20MB/sec read/write
- sdd
- is a generic external USB 3.5 inch PATA disk (very useful for holding /usr/src and /usr/portage)
Boot Configuration
There are a couple more steps required to actually get the installed gentoo to self boot:
- the BIOS can be setup to select the SD card reader as the first device (it's fiddly). It is also possible to turn off the ASUS EEE splash screen in the BIOS boot options, and then manually select the SD card's reader by hitting escape to bring up the BBS popup after a reboot.
- at this point grub loads the kernel but the kernel/grub has been given the wrong root as part of the install - so in grub.conf change:
root (hd2,0)
to
root (hd0,0)
- kernel sources are not installed, so to build a kernel with ethernet and wifi support you will need to manually copy over a tree (e.g. on a USB key).
- you will probably need:
rootwait
as a kernel parameter to stop the kernel panicking because the root partition can't be found (the USB system takes a while to find it and tell the rest of the kernel about it).
- I had to add:
clocksource=acpi_pm
as a kernel parameter to stop the kernel from hanging on boot after ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xFFa8 irq 15. It also fixed a warning about sycing the hardware clock later in the boot process.
grub update
Version Bump
# grub grub> find /grub/grub.conf ( hd2,0) grub> root (hd2,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd2) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd2)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd2) (hd2)1+16 p (hd2,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. grub> quit
Example grub.conf
Example grub entry showing the required rootwait kernel parameter and root device selection:
| File: /boot/grub/grub.conf |
title=2.6.25-gentoo-r7
root (hd0,0)
kernel /2.6.25-gentoo-r7 ro root=/dev/sdc2 rootwait
|
Moving Goalpost
If you leave an external harddisk or USB key plugged in while booting off an SD card then it is possible for grub to hang as the root partition has changed as far it is concerned.
Directly relevant points to note from the previous sections are:
| File: /boot/grub/grub.conf |
... root (hd0,0) ... |
While the grub reinstall is made to:
... grub> root (hd2,0) ...
Selecting the root partition by label would be a useful option (a patch from 2004 which was never merged).
Failing that selecting the root partition by UUID was recently added to the Ubuntu flavor of grub.
X11
The hardware looks like this to lspci:
# lspci -vs 00:02
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 intel-agp module needs to be added to the module's autoload file (or else built into the kernel):
| File: /etc/modules.autoload.d/kernel-2.6 |
... intel-agp ... |
All of the modes in the xorg.conf generated (by the livecd installer) can be replaced with Modes "1024x600" in the screen section:
| File: /etc/X11/xorg.conf |
...
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Depth 24
Modes "1024x600"
EndSubSection
EndSection
...
|
Touchpad
Generic Mouse
The touchpad works as a standard mouse with none of the advanced features.
| File: /etc/X11/xorg.conf |
Section "ServerLayout"
InputDevice "Touchpad" "CorePointer"
...
Section "InputDevice"
Identifier "Touchpad"
Driver "evdev"
Option "Device" "/dev/input/by-path/platform-i8042-serio-1-event-mouse"
EndSection
...
|
Elantech Driver
The Touchpad is from Elantech, and is known to work with the out-of-tree Elantech driver Version 5. Support for the EEE PC was added with Version 5. After patching there is good documentation available in the /usr/src/linux/Documentation/input/elantech.txt file:
linux-2.6.26-gentoo-r1 # patch -p1 <.../elantech-v5-2.6.26.5.patch patching file Documentation/input/elantech.txt patching file drivers/input/mouse/Kconfig patching file drivers/input/mouse/Makefile patching file drivers/input/mouse/elantech.c patching file drivers/input/mouse/elantech.h patching file drivers/input/mouse/psmouse-base.c patching file drivers/input/mouse/psmouse.h
The driver is known to work with this configuration:
- sys-kernel/gentoo-sources 2.6.26-gentoo-r1 kernel patched with the Elantech driver Version 5.
- Enable the Elantech PS/2 protocol extension kernel configuration option under Device Drivers/Input Device Support/Mice.
- x11-drivers/synaptics - 0.14.6 is the latest stable version of the driver in portage. This version of the synaptics driver is also the latest supported by the kde-misc/ksynaptics configuration tool. The Elantech driver author recommends use of a more recent driver version, which should read the edge information correctly from the kernel driver.
- xorg.conf InputDevice entry modified to provide a faster pointer and set the edges correctly
Example /etc/X11/xorg.conf file - see synaptics(5) for generally terse descriptions of the available settings and a good description of the edge layout:
| File: /etc/X11/xorg.conf |
Section "ServerLayout"
InputDevice "Elantech" "CorePointer"
...
Section "InputDevice"
Identifier "Elantech"
Driver "synaptics"
Option "Protocol" "auto-dev"
Option "Device" "/dev/input/by-path/platform-i8042-serio-1-event-mouse"
Option "SHMConfig" "on"
Option "AccelFactor" "0.0320" # default: 0.0015
Option "MaxSpeed" "0.72" # default: 0.18
Option "Emulate3Buttons" "off"
Option "LBCornerButton" "2"
Option "LeftEdge" "60"
Option "RightEdge" "1070"
Option "TopEdge" "90"
Option "BottomEdge" "680"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
Option "LockedDrags" "1"
Option "CoastingSpeed" "0.13"
Option "CircularScrolling" "1"
Option "CircScrollTrigger" "8" # 8=Top Left Corner
EndSection
|
The device looks like this:
# cat /proc/bus/input/devices ... 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
# dmesg|grep -i elan elantech.c: Elantech version query result 0x02, 0x00, 0x30. elantech.c: assuming hardware version 2, firmware version 2.48 elantech.c: Synaptics capabilities query result 0x00, 0x02, 0x64. input: ETPS/2 Elantech Touchpad as /class/input/input5 # grep -i elan /var/log/Xorg.0.log (**) |-->Input Device "Elantech" (--) Elantech auto-dev sets device to /dev/input/event5 (--) Elantech touchpad found (**) Elantech: always reports core events (II) evaluating device (Elantech) (II) XINPUT: Adding extended input device "Elantech" (type: MOUSE) (--) Elantech auto-dev sets device to /dev/input/event5 (--) Elantech touchpad found (**) ETPS/2 Elantech Touchpad: always reports core events (**) ETPS/2 Elantech Touchpad: Device: "/dev/input/event5"
Synaptics Driver
The synaptics driver does not recognise the touchpad, returning this on startup:
Synaptics no synaptics event device found (checked 17 nodes) Query no Synaptics: 6003C8
Direct Rendering
The glxinfo/glxgears binaries from the livecd crash the X server:
$ DISPLAY=:0 glxinfo name of display: :0.0 libGL: XF86DRIGetClientDriverName: 1.8.0 i915 (screen 0) libGL: OpenDriver: trying /usr/lib/dri/tls/i915_dri.so libGL: OpenDriver: trying /usr/lib/dri/i915_dri.so drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 4, (OK) drmOpenByBusid: Searching for BusID pci:0000:00:02.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 4, (OK) drmOpenByBusid: drmOpenMinor returns 4 drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0 libGL warning: 3D driver claims to not support visual 0x63 Unrecognized deviceID 27ae <X Server segv's>
Unmasking these packages and configuring AIGLX allows glxgears to run with direct rendering at 525fps. 400 to 900fps is one reported range for the 701. Setting INTEL_BATCH=1 brings that up to 897fps for the 901 (select XAA as the AccelMethod).
media-libs/mesa ~x86 x11-base/xorg-server ~x86 x11-base/xorg-x11 ~x86 x11-drivers/xf86-input-evdev ~x86 x11-drivers/xf86-input-keyboard ~x86 x11-drivers/xf86-input-mouse ~x86 x11-drivers/xf86-video-i810 ~x86 x11-libs/libdrm ~x86 x11-libs/libXrender ~x86 x11-libs/xtrans ~x86 x11-proto/renderproto ~x86 x11-proto/xf86driproto ~x86
If you lose the use of your arrow keys and up arrow runs ksnapshot, then disable KDE keyboard layouts (or switch to evdev).
Google Earth runs well after an initial (long) startup pause. The stable 4.2 version in portage is out of sync with the binary package available from Google - unmasking the 4.3 version enabled an install where the ebuild matched the binary available from Google.
An /etc/X11/xorg.conf excerpt summarising the DRI settings:
| File: /etc/X11/xorg.conf |
Section "ServerFlags"
Option "AIGLX" "true"
...
Section "Module"
...
Load "glx"
Load "dri"
Load "dbe"
...
Section "Device"
Identifier "Card0"
Driver "i810"
BusID "PCI:0:2:0"
Option "DRI" "true"
Option "AccelMethod" "XAA" # for faster scrolling in firefox
Option "XAANoOffScreenPixmaps" "true"
...
|
Note: If X doesn't run and has the error 'No devices found' then run X -configure to create a new xorg.conf file.
Compiz Fusion
The Compiz Fusion in portage installs without a hitch. The Zoom Desktop plugin works well for small details on web pages... etc
Later releases of Compiz Fusion may be found in the desktop-effects overlay.
evdev
Switching to the evdev driver for keyboard and mouse input may be useful if:
- the keyboard mapping is incorrect
- the X server does not respond to the keyboard or touchpad after a suspend/resume cycle
| File: /etc/X11/xorg.conf |
Section "ServerFlags"
Option "AllowMouseOpenFail" "true"
Option "AutoAddDevices" "no"
...
Section "InputDevice"
Identifier "Keyboard"
Driver "evdev"
Option "Device" "/dev/input/event4"
Option "XkbRules" "xorg"
Option "XkbModel" "evdev"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Touchpad"
Driver "evdev"
Option "Device" "/dev/input/event6"
EndSection
|
Setting AutoAddDevices set to no:
- stops the X server from trying to add the devices again after the explicit entries in xorg.conf have already claimed them.
- disables hotplugging, and so unfortunately also stops the X server adding a bluetooth mouse on-the-fly.
- seems to improve the chances of the devices being available after a suspend/resume cycle.
The file /proc/bus/input/devices can be used to map from device description to the eventN device file.
Networking
Both wired and wireless interfaces can be brought up against the current gentoo-sources kernel (2.6.25-gentoo-r7) using the out-of-tree drivers.
The ethernet driver (atl1e/eth0) works out of the box, while the wireless driver (rt2860sta/ra0) requires more work if you want WPA (at least).
Ethernet
The device looks like this to lspci:
# lspci -vs 03:00.0
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
There are at least three kernels which can be considered to host the ethernet device/driver:
- 2.6.24-gentoo-r5 livecd kernel
- The livecd does not install sources and 2.6.24-gentoo-r5 is no longer in portage (2.6.24-r8 is). It is not known if the ASUS atl1e driver builds or works with this kernel version.
- 2.6.25-gentoo-r7 stable gentoo sources
- The ASUS P5KPL-CM motherboard atl1e driver builds and works well against this kernel.
- 2.6.27 vanilla sources
- An atl1e driver is present in the 2.6.27 rc series (rc4, released 20 Aug 2008, mentions it in the patches).
ASUS P5KPL-CM motherboard atl1e driver
Asus makes available a GPL-2 atl1e driver on Asus.com. The P5KPL-CM motherboard happens to have the same ethernet adapter as the EEE PC 901.
Copying this unzip'd and unrar'd source directory along with a 2.6.25-gentoo-r7 stable gentoo sources tree to a USB key and doing a local build on the EEE PC 901 is a fast and relatively painless way of getting a new machine up on the network. It has the additional advantage that it is known to work.
- Download the drivers for the P5KPL-CM motherboard from Asus.
- Unpack it (both unzip and unrar required).
- Enter the L1e_Lan/src directory and type KBUILD_NOPEDANTIC=1 make install & modprobe atl1e
- Configure the interface as normal as eth0.
Wireless
There may be a mainline driver ready for 2.6.28 or more likely 2.6.29 - in the meantime the out-of-tree driver works well.
# lspci -vs 01:00.0
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
If you find that going in and out of wifi coverage causes sshd to exit with messages like this:
# grep sshd /var/log/auth.log |grep termin .... sshd[6751]: Received signal 15; terminating.
then consider installing monit from portage and configure an sshd service test.
WPA Support
This sequence of steps are required for WPA support:
- Download and unpack the driver.
- Edit .../os/linux/config.mk to select WPA support and disable the flood of debug messages:
- set: HAS_WPA_SUPPLICANT=y
- set: HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
- remove –DDBG from WFLAGS
- make the driver - watch out for it copying to the module to (the probably non-existent) /tftpboot directory. Install the module manually (if necessary).
- Configure the interface for WPA and bring it up.
This patch was posted to the Arch Linux forum - it covers a lot of the configuration changes, and more.
wpa_supplicant
If wpa_supplicant (stable version 0.5.7 in portage) fails to associate with the AP and raises either of these errors:
- an error on startup echoed to the console: ioctl/AUTH call param 4 failed
- an error seen when wpa_supplicant is run manually with debugging selected: wpa_parse_wpa_ie_wpa: malformed ie or unknown version - run this from /etc/wpa_supplicant to look for this problem: wpa_supplicant -c wpa_supplicant.conf -Dwext -ira0 -d
Then one or both of these fixes may help:
- unmask version 0.6.4 of wpa_supplicant (its both keyworded and hard masked) and emerge =wpa_supplicant-0.6.4
- select ap_scan=2 (note the requirements for ap_scan=2) to have the driver take care of scanning, AP selection, and IEEE 802.11 association parameters.
| File: /etc/wpa_supplicant/wpa_supplicant.conf |
... ap_scan=2 ... |
Power Management
The official gentoo documentation has a lot of information on configuring a machine for minimising power usage and sleep modes.
GUI Front Ends
User friendly front ends to the EEE hardware include:
- kpowersave
- (the latest version 0.7.3, is ~x86 keyworded in portage) is generally useful to manage power usage.
- eee-control
- is a python/gtk GUI front end to the knobs (hardware, hotkeys, performance levels) exposed by ACPI and EEE specific kernel modules (the in-tree ACPI eeepc_laptop in 2.6.27+ and eeepc-linux).
Suspend to RAM
- 2.6.26-gentoo-r1 gentoo sources (~x86 keyworded)
- the 2.6.26 kernel comes with an ACPI eeepc-laptop driver to query and control EEE hardware (wifi, camera, screen, fan... Bluetooth is a notable absentee). A one line patch is required to the wireless driver in order to get it to compile with this kernel version (in .../os/linux/rt_main_dev.c replace:
device = dev_get_by_name(dev->nd_net, slot_name);
with
device = dev_get_by_name(dev_net(dev), slot_name);
- sys-power/suspend (for /usr/sbin/s2ram)
- s2ram provides a wrapper around: echo -n "mem" > /sys/power/state
From a root terminal and selecting the s3_mode ACPI video flag:
# sync # s2ram -f -a 2 Switching from vt7 to vt1 <machine is suspended at this point> switching back to vt7 #
And syslog records:
| File: /var/log/messages |
... ... kernel: PM: Syncing filesystems ... done. ... kernel: Freezing user space processes ... (elapsed 0.00 seconds) done. ... kernel: Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done. ... kernel: Suspending console(s) ... kernel: ACPI: PCI interrupt for device 0000:00:02.0 disabled ... kernel: sd 1:0:1:0: [sdb] Stopping disk ... kernel: sd 1:0:0:0: [sda] Stopping disk ... wpa_cli: interface ra0 DISCONNECTED ... |
The machine shuts down - screen and fan are turned off, the wifi LED is turned off and the power and power-button LEDs blink. Note that sdc was not stopped (the SD card holding the root file system in this case).
The machine is restarted by briefly pressing the power button. The screen turns on, the wifi connection reconnects and so does a bluetooth mouse. The camera works after a restart - having the camera in use may cause suspend to fail - it may need to be forced off via the eeepc-laptop ACPI interface.
Syslog shows the internal SSD's, the camera and bluetooth being reconnected.
The SD card reader holding the root file system survives the suspend (the persist flag having been set - see the example /etc/conf.d/local.start).
The suspend to RAM option of the kpowersave menu does not work out-of-the-box. It may need pm-utils installed and configured to talk to hal. hal in turn has the useflag laptop that Adds support for power management scripts (sys-power/pm-utils).
Suspend Problems
The s2ram documentation is a useful reference for working through suspend-specific problems.
The 901 is not known to s2ram (sys-power/suspend-0.8):
# s2ram Machine is unknown. This machine can be identified by: sys_vendor = "ASUSTeK Computer INC." sys_product = "901" sys_version = "x.x" bios_version = "1101 "
With further experience white listing will be an option.
ACPI Sleep S3 Mode
The s3_mode (s2ram -f -a 2) has the best results seen so far. In one sequence of ten suspend/resume cycles:
- the machine recovered each time:
- wifi comes back and remote network connections are fine
- sound works
- camera works
- a bluetooth mouse continued to work after resume - however kde bluetooth/KbluetoothD popped up a warning dialog after each resume complaining about either:
- no SDP server running
- or more cryptically from deep in the bluetooth stack: kbtobexsrv ... might require a modified class number for your bluetooth adapter. kbluetoothd thinks that the class is set to 0x0 when in reality it is 0x3e0100.
- on the 7th resume of the 10 cycle test, a warning popped up complaining that hal wasn't running. Checking with /etc/init.d/hald status and ps -aef confirmed this. It was restarted manually and no other problems were seen.
# grep hal messages ... kernel: hald[5327]: segfault at 95 ip 080556a7 sp bfbdbdac error 4 in hald[8048000+49000]
ACPI Sleep S3 BIOS Mode
With s3_bios selected (s2ram -f -a 1), a remote terminal will sometimes record this type of trace leading to a complete machine lockup:
dal kernel: ------------[ cut here ]------------ dal kernel: c1815a40 f72f4700 00203046 f761e95c f75772c0 f7c015c0 00203246 000004d0 dal kernel: invalid opcode: 0000 [#1] PREEMPT SMP dal kernel: Stack: c011b879 f7c03364 f7c5e068 000004d0 f7c015c0 f7c08400 f7c03340 c0118ad2 dal kernel: Process X (pid: 10526, ti=f71ce000 task=f776c780 task.ti=f71ce000) dal kernel: c01721af f75772c0 00000040 000004d0 f7c817c0 c037a3a3 00000000 e44e0740 dal kernel: Call Trace: dal kernel: [hrtick_start_fair+217/368] hrtick_start_fair+0xd9/0x170 dal kernel: [<c011b879>] hrtick_start_fair+0xd9/0x170 dal kernel: [enqueue_task+18/48] enqueue_task+0x12/0x30 dal kernel: [<c0118ad2>] enqueue_task+0x12/0x30 dal kernel: [__kmalloc+207/224] __kmalloc+0xcf/0xe0 dal kernel: [<c01721af>] __kmalloc+0xcf/0xe0 dal kernel: [__alloc_skb+83/272] __alloc_skb+0x53/0x110 dal kernel: [<c037a3a3>] __alloc_skb+0x53/0x110 dal kernel: [sock_alloc_send_skb+362/448] sock_alloc_send_skb+0x16a/0x1c0 dal kernel: [<c03761ba>] sock_alloc_send_skb+0x16a/0x1c0 dal kernel: [_spin_unlock_irqrestore+14/48] _spin_unlock_irqrestore+0xe/0x30 dal kernel: [<c040fe3e>] _spin_unlock_irqrestore+0xe/0x30 dal kernel: [unix_stream_sendmsg+533/800] unix_stream_sendmsg+0x215/0x320 dal kernel: [<c03dd705>] unix_stream_sendmsg+0x215/0x320 dal kernel: [sock_aio_write+226/256] sock_aio_write+0xe2/0x100 dal kernel: [<c0372d82>] sock_aio_write+0xe2/0x100 dal kernel: [core_sys_select+531/768] core_sys_select+0x213/0x300 dal kernel: [<c01827e3>] core_sys_select+0x213/0x300 dal kernel: [<c0372ca0>] sock_aio_write+0x0/0x100 dal kernel: [do_sync_readv_writev+192/256] do_sync_readv_writev+0xc0/0x100 dal kernel: [sock_aio_write+0/256] sock_aio_write+0x0/0x100 dal kernel: [autoremove_wake_function+0/80] autoremove_wake_function+0x0/0x50 dal kernel: [<c0174fd0>] do_sync_readv_writev+0xc0/0x100 dal kernel: [rw_copy_check_uvector+126/256] rw_copy_check_uvector+0x7e/0x100 dal kernel: [<c0137800>] autoremove_wake_function+0x0/0x50
And the X server installed originated from the livecd:
# equery belongs `which X` [ Searching for file(s) /usr/bin/X in *... ] x11-base/xorg-server-1.3.0.0-r6 (/usr/bin/X -> Xorg)
Sound
For full support including integrated microphone and speakers you need alsa version 1.0.17, which is supposed to be in kernel in 2.6.27. For details see: bugreport, diff.
After configuring the system for intel hda audio running alsaconf as root sets up the sound system correctly (you may have to unmute the front speakers).
The 3.5mm microphone jack and headphone works well with Skype.
Installing new alsa-driver
Until alsa 1.0.17 is merged in kernel, you may want to emerge media-sound/alsa-driver or later. Note that you need to disable alsa in kernel first.
# echo '=media-sound/alsa-driver-1.0.17 ~x86' >>/etc/portage/package.keywords # echo '=media-sound/alsa-headers-1.0.17 ~x86' >>/etc/portage/package.keywords # emerge alsa-driver
Bluetooth
The bluetooth device sits on the USB bus:
# lsusb -v Bus 005 Device 002: ID 0b05:b700 ASUSTek Computer, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 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 ...
Bluetooth requires both kernel and userland configuration.
Disabling/enabling the transmitter may require patching and/or hardware hacking.
Bluetooth Mouse
With the Bluez stack installed and configured (bluez-utils-2.25-r1, bluez-libs-2.25), a Logitech V470 works well.
# hidd --show 00:07:4C:FA:AB:48 Logitech Bluetooth Mouse [046d:b008] connected
You might have to manually modprobe or autoload the hci_usb module if it is not loaded automatically.
WebCam
The hardware is the same as on the EEE PC 1000:
# lsusb -vd 04f2:b071
Bus 001 Device 004: ID 04f2:b071 Chicony Electronics Co., Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x04f2 Chicony Electronics Co., Ltd
idProduct 0xb071
bcdDevice 15.18
iManufacturer 2 Chicony Electronics Co., Ltd.
iProduct 1 CNF7129
...
Interface Association:
...
bFunctionClass 14 Video
...
iFunction 5 USB2.0 1.3M UVC WebCam
Unmask and emerge linux-uvc as per the EEE PC 1000 instructions.
After a modprobe uvcvideo you can try mplayer (as per the above instructions) if you have that installed or emerge luvcview. For luvcview the yuv format must be specified, as in luvcview -f yuv.
Skype allows you to select the new video device under the options configuration menu.
Sensors
ACPI appears to provide the only temperature sensor reading (from /proc/acpi/thermal_zone/TZ00/temperature). This is available when either the current asus-laptop or the old asus_acpi driver is selected (probably means that the driver variety is irrelevant for this item).
# cat /proc/acpi/thermal_zone/TZ00/temperature temperature: 50 C
gkrellm can be used to watch this discrete/instantaneous temperature (be patient it starts off at 0 C and remains that way for a couple of seconds).
Note that however:
# cat /proc/acpi/thermal_zone/TZ00/polling_frequency polling frequency: 30 seconds
lm_sensors
The lm_sensors sensors-detect script produces a Sorry, no sensors were detected. message.
And the version in the lm_sensors SVN repository produces the same result.
Clock
If you experience intermittent hangs on boot when hwclock is called to set the system clock from the hardware clock, then experiment with setting:
| File: /etc/conf.d/clock |
... # note that directisa is inherently racey and may cause problems of its own CLOCK_OPTS="--directisa" ... |
This behavior has been seen with this kernel configuration:
# egrep 'RTC|TICK|HPET|TIMER|HZ' .config |egrep -v 'SND|is not set'|sort CONFIG_HIGH_RES_TIMERS=y CONFIG_HPET_EMULATE_RTC=y CONFIG_HPET_TIMER=y CONFIG_HZ=1000 CONFIG_HZ_1000=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_NO_HZ=y CONFIG_RTC=y CONFIG_SCHED_HRTICK=y CONFIG_TICK_ONESHOT=y CONFIG_TIMERFD=y CONFIG_TIMER_STATS=y CONFIG_X86_PM_TIMER=y # dmesg|egrep -i 'hpet|clock|tsc' ACPI: HPET 3F7A5820, 0038 (r1 A_M_I_ OEMHPET 7000811 MSFT 97) ACPI: HPET id: 0xffffffff base: 0xfed00000 hpet clockevent registered checking TSC synchronization [CPU#0 -> CPU#1]: passed. Real Time Clock Driver v1.12ac Marking TSC unstable due to: TSC halts in idle. Clocksource tsc unstable (delta = -166628435 ns)
hwclock hanging or timing out appears to be a common enough problem.
Configuration Files
Here are some example configuration files used to bring up gentoo on a EEE PC 901.
the way a gentoo linux box works. At the very least some of them will increase your risk of data loss.
Kernel Config
Here are some known working kernel config files:
- 2.6.24-gentoo-r5 livecd kernel
- This is the kernel config from the 2008.0 livecd which served to bring up gentoo on the 901 (no ethernet or wireless support).
- 2.6.25-gentoo-r7 stable gentoo sources
- This is the latest stable sys-kernel/gentoo-sources in portage.
- 2.6.26-gentoo-r1
- This is the latest unstable sys-kernel/gentoo-sources in portage. It is configured with the Elantech touchpad driver for the 901 (after patching).
modules autoload
| File: /etc/modules.autoload.d/kernel-2.6 |
# uncomment intel-agp if built as a module #intel-agp atl1e rt2860sta uvcvideo hci_usb |
fstab tmpfs filesystems
Adding a couple of tmpfs file systems may be useful in some circumstances (a little faster/a little less wear on the flash drive). If you have the memory it is generally good to have portage (/var/tmp or /var/tmp/portage) as a tmpfs or as a symbolic link to /dev/shm for example.
| File: /etc/fstab |
... # your mileage will vary with these - don't use unless you are sure of what you are doing none /dev/shm tmpfs defaults 0 0 none /tmp tmpfs size=128M 0 0 none /var/log tmpfs size=20M 0 0 none /var/run tmpfs size=2M 0 0 ... |
svcdir tmpfs filesystem
In the same manner, configuring a svcdir as a tmpfs may be a good idea:
| File: /etc/conf.d/rc |
... # Should we mount $svcdir in a ram disk for some speed increase # for slower machines, or for the more extreme setups ? svcmount="yes" ... |
local.start
Some users may find these settings useful. Do not use unless you are sure you understand the consequences. Your mileage will vary.
| File: /etc/conf.d/local.start |
... # default is 40% - raise it here to try and give # write combining a chance, and hence reduce disk i/o's echo 60 > /proc/sys/vm/dirty_ratio # default is 10; max % of pages that can be dirty before pdflush begins # to write them echo 40 > /proc/sys/vm/dirty_background_ratio # powertop: This wakes the disk up less frequenty for background VM activity echo 1500 > /proc/sys/vm/dirty_writeback_centisecs # 001 Device 002: ID 058f:6335 Alcor Micro Corp. dev=`grep -n 058F6335 /sys/bus/usb/devices/*/serial | cut -d / -f 1-6` if [ -f $dev/power/persist ] ; then
echo 1 > $dev/power/persist
echo "Alcor Mass Storage $dev, persist=`cat $dev/power/persist`"
else
echo "storage device not found"
fi
# FIXME: needs to run after the tmpfs is mounted & before daemons start
cd /var/log && (
mkdir -p cups gdm news portage/elog sandbox
for f in lastlog cups/.keep_net-print_cups-0 news/.keep \
gdm/.keep_gnome-base_gdm-0 sandbox/.keep_sys-apps_sandbox-0; do
if [ ! -f $f ] ; then touch $f; fi
done
)
cd /var/run && mkdir -p hald/hald-runner hald/hald-local wpa_supplicant \
ddclient sepermit cups cups/certs openldap dbus
|
local.stop
| File: /etc/conf.d/local.stop |
...
[ ! -d /var/oldlog ] && mkdir -p /var/oldlog
tar -C /var/log -cf - . | bzip2 -9 >/var/oldlog/`date '+%Y%m%d%H%M'`.tar.bz2
# limit the buildup of tarballs in /var/oldlog
cd /var/oldlog && \
while [ `ls *.bz2 | wc -l` -ge 5 ] ; do rm -f `ls -rt|head -1`; done
...
|
make.conf
| File: /etc/make.conf |
# # also consider -Os - cache is a reasonable 32KB iL1/24KB dL1/512KB L2 but space may get tight on an SD card # CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" CHOST="i686-pc-linux-gnu" # ## local additions # SYNC="..." GENTOO_MIRRORS="..." # AUTOCLEAN="yes" MAKEOPTS="-j2" LINGUAS="en" PORTAGE_NICENESS="19" PORTAGE_TMPFS="/dev/shm" # INPUT_DEVICES="evdev synaptics" VIDEO_CARDS="i810 vga" USE="a52 ffmpeg -gpm hal -ipv6 kde -kerberos -ldap -ogg -oss qt4 symlink -snmp -theora -vorbis xulrunner" # |
See also
This blog details how to get networking running under Ubuntu; I don't see any reason it wouldn't work with your own install of Gentoo as long as you have the kernel source (the LiveCD doesn't, but your final install will).
- Debian: Debian EEE 901
- Debian: Debian SD card install
- Fedora: EEE PC
- Fedora: EeePC 1000 Fedora 9 (via an eee owner)
- Ubuntu: EEE PC 901
- Asus: Eee PC 901/Linux Forum
- Arch: Eee PC 901
- Arch: Asus Eee PC
- OpenSUSE: OpenSUSE on the EeePC
- Xandros: USB boot Xandros
- Linux USB: Wait for the root partition to show up
- Atom CFLAGS: Safe CFLAGS Wiki entry on the Atom
- SSD Performance: zdnet Geek Sheet: A Tweaker’s Guide to Solid State Drives (SSDs) and Linux
- EEE Fast Init: reimplementation of ASUS Fastinit
Created by NickStallman.net, Luxury Homes Australia
Real estate agents should be using interactive floor plans.
New! Real Estate SMS for properties.
