W1N

Gentoo Linux on the ASUS W1000N Laptop & W1N Forum

Here you can find information on how to install and run Gentoo on an Asus W1000N. A W1N forum, and a gallery with some pictures and clips from my W1000N are also available.

Contents

News

08/02/2004
Bernjuer found a resolution for the sound problem, yeeha!

07/04/2004
New BIOS version 0203A released by ASUS. No changes recognizable.

06/21/2004
More info on sound problem added
ASUS W1N Linux Sound Fix Petition added

06/14/2004
SpeedStep support added

06/08/2004
News on ndiswrapper added

05/24/2004
Added notes on modem and IrDA
Documentation on WXGA framebuffer console added

05/19/2004
I've written a detailed review of the W1N. Check it out!

05/18/2004
Notes on Synaptics Touchpad added
gtk+ seems to have problems with -msse2 too, so I decided to remove it from my CFLAGS

05/16/2004
Documentation on WLAN added
Notes on cardreader, PCMCIA and firewire added

05/13/2004
Recompiling kdelibs without -msse2 did the trick for me. I will put it back into my CFLAGS, as this seems to be an isolated incident.

05/13/2004
My CFLAGS seem to be too aggressive, because the KDE file browser does not work. I found a Thread on the Gentoo forums that suggests to turn off -msse2.

05/12/2004
This is the first edition of this page. Nothing much here, yet.

Model Info

lspci

This is the lspci output (on a 2.6.5 kernel)

	0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 21)
	0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 21)
	0000:00:1d.0 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #1 (rev 03)
	0000:00:1d.1 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #2 (rev 03)
	0000:00:1d.2 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #3 (rev 03)
	0000:00:1d.7 USB Controller: Intel Corp. 82801DB (ICH4) USB2 EHCI Controller (rev 03)
	0000:00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 83)
	0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 03)
	0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 03)
	0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 03)
	0000:00:1f.6 Modem: Intel Corp. 82801DB (ICH4) AC'97 Modem Controller (rev 03)
	0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
	0000:02:00.0 Ethernet controller: Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Adapter (rev 13)
	0000:02:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ac)
	0000:02:01.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ac)
	0000:02:01.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 04)
	0000:02:03.0 Network controller: Intel Corp. Intel(R) PRO/Wireless 2200BG (rev 05)

You can view the whole output of "lspci -v" here.

cpuinfo

I have a W1726N with a 1,5GHz Pentium-M CPU, the "smallest" model from ASUS' W1 series. This is the output of "cat /proc/cpuinfo"

	processor       : 0
	vendor_id       : GenuineIntel
	cpu family      : 6
	model           : 9
	model name      : Intel(R) Pentium(R) M processor 1500MHz
	stepping        : 5
	cpu MHz         : 1495.731
	cache size      : 1024 KB
	fdiv_bug        : no
	hlt_bug         : no
	f00f_bug        : no
	coma_bug        : no
	fpu             : yes
	fpu_exception   : yes
	cpuid level     : 2
	wp              : yes
	flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe tm2 est
	bogomips        : 2949.12
	

You can find the complete output of "lshw" here. As you can see my W1N doesn't have a TV-tuner, so it also lacks the remote control and the small display on the front. If you have information on that, feel free to share it using my forum.

Base Installation

Getting started using Knoppix

I tried booting the Notebook with Knoppix 3.4, using the 2.6.5 Kernel, it hung first, so I booted it with deactivated SCSI support using knoppix26 noscsi.

Knoppix booted fine, but didn't load the module for my network card. After a modprobe sk98lin and a reconfiguration of /etc/network/interfaces, I was able to activate the card with a "ifup eth0".

The drive was formatted with 3 partitions, one 2GB recovery-partition and two 30GB FAT32 partitions. I decided to start from scratch and recreated my partition table witch cfdisk.

Compilation tipps

I chose to start with a stage2 tarball and went for the one with pentium3-support, because a Pentium M is closer to a Pentium III then to a Pentium IV.

For the same reason I chose to use -march=pentium3. I found some useful information in several threads on the Gentoo Forums. Based on that, my CFLAGS are

CFLAGS="-O3 -march=pentium3 -pipe -frename-registers -fomit-frame-pointer \
        -fforce-addr -s -falign-functions=64 -fprefetch-loop-arrays"

BEWARE: I don't recommend using -msse2, because it causes problems with kdelibs-3.2.2 and gtk+

My personal USE-flags are:

USE="acpi alsa artswrappersuid dvd java mmx ooo-kde qtmt radeon samba sse \
     usb -crypt -gnome cdr divx4linux encode fbcon -gtk imap jpeg gif \
     kde lirc truetype xvid mpeg msn ncurses pcmcia qt quicktime tiff \
     xfs wifi fam"

My current kernel .config for gentoo-dev-sources-2.6.5-r1 can be found here.

X Window System

I went for the new xorg ebuild, which was masked, so I had to build it with

ACCEPT_KEYWORDS="~x86" emerge xorg-x11

Some applications think, they need the original xfree, but a short emerge inject x11-base/xfree-4.3.0-r5 should take care of that.

I also installed the version 3.7.6 of ati-drivers (3.9.0 causes problems when switching from X to console) using

ACCEPT_KEYWORDS="~x86" emerge =media-video/ati-drivers-3.7.6-r1 =media-video/ati-drivers-3.7.6
After you installed qt, you can also ACCEPT_KEYWORDS="~x86" emerge ati-drivers-extra to get some additional tools. I used /opt/ati/bin/fglrxinfo to create a xorg.conf and got a working modline for 1280x800@60Hz from Mike Hardy's website. You can find my xorg.conf here.

The special functions of the Synaptics touchpad, like scrolling, are a also supported, simply

ACCEPT_KEYWORDS="~x86" emerge synaptics

and use this in your xorg.conf:
Section "InputDevice"
     Identifier  "Touchpad"
     Driver "synaptics"
     Option "Protocol"   "auto-dev"
     Option "Device"     "/dev/psaux"
     Option "Emulate3Buttons"
EndSection

Sound

The sound card works with the ALSA driver snd_intel8x0, but you need a small workaround.

I simply compiled in my kernel with ALSA-Support for snd-intel8x0 and emerged alsa-lib and alsa-utils.

Afterwards I modified /etc/modules.d/alsa to have alias snd-card-0 snd-intel8x0 in the ALSA portion. Then I ran update-modules and rc-update add alsasound default.

As forum user bernjuer has found here you have to manually set a few registers to activate the internal speakers.
To do that you need these kernel options (then recompile, install, reboot):
     CONFIG_SND_DEBUG=y
     CONFIG_SND_DEBUG_MEMORY=y
     CONFIG_SND_DEBUG_DETECT=y
This way you can change alsa registers manually:
     echo -n "26 000F" > /proc/asound/card0/codec97#0/ac97#0-0+regs
     echo -n "36 0000" > /proc/asound/card0/codec97#0/ac97#0-0+regs
     echo -n "64 7110" > /proc/asound/card0/codec97#0/ac97#0-0+regs
Simply add the above lines to /etc/conf.d/local.start to make the changes automatically at every boot.

The built-in sound chip (C-Media CMI9739) doesn't have a PCM volume control, so you can't control the volume with alsamixer or kmix.

The guys at ALSA rejected a patch that added a software mixer for this driver, so right now I simply use the aRts daemon. XMMS supports aRts with the aRts output plugin. Mplayer has its own volume control, use it with

gmplayer -monitoraspect 16:10 -ao alsa -af volume movie.avi
or change the settings in /etc/mplayer.conf (add af=volume).

WLAN

The notebooks of ASUS W1000 Series incorporate the new Intel Centrino WLAN Module with 802.11g standard (54MBit/s). As of now there is no native linux driver for the 2200BG. There is a non-functional test module developed by the ipw2200 project, which looks quite promising.

I went for the next best thing (GPL-wise) and installed ndiswrapper, a wrapper for Windows-drivers, which (almost) works with a little trick. Here is what I did:

The new Centrino 802.11BG-chip is claimed to be supported by the most recent ndiswrapper 0.7, but there is no ebuild for it, yet. There is also a problem with notebooks which can't switch off the WLAN card with a hardware-button. Pre-version 0.8-rc2 works with a tiny patch. If you don't apply this patch you will get this error:

ndiswrapper version 0.8-rc2 loaded
ndiswrapper adding w22n51.sys
wlan0: ndiswrapper ethernet device 00:0f:15:12:ac:c2 using driver w22n51.sys
wlan0: getting configuration failed (C0000001)

As Maurits found out in this thread you have to comment out doreset(handle); in the file driver/wrapper.c. Thank you for pointing this out to me, Maurits and Martin.
I didn't want to create an ebuild, so I followed the directions in the INSTALL file to build the driver with make install.

I copied all files from my Windows driver's PROW2200/WINXP/ directory to /usr/lib/hotplug/drivers/ and did a ndiswrapper -i /usr/lib/hotplug/drivers/w22n51.INF. After that I had to change/create some configuration files:

#/etc/modules.d/ndiswrapper
alias wlan0 ndiswrapper
install ndiswrapper /sbin/modprobe --ignore-install ndiswrapper && { loadndisdriver /etc/ndiswrapper/w22n51 ; }

I copied /etc/init.d/net.eth0 to /etc/init.d/net.wlan0 and added a few lines:

#/etc/init.d/net.wlan0
iface_start() {
        local IFACE=${1} i x
        checkconfig || return 1

# Start WLAN specific stuff added by FK
	/bin/echo 1 > /proc/acpi/asus/wled
        modprobe ${IFACE}
        wait
        /usr/sbin/iwconfig ${IFACE} mode Managed
        /usr/sbin/iwconfig ${IFACE} key open XXXXXXXXXXXXXXXXXXXXXXXXXX
        /usr/sbin/iwconfig ${IFACE} essid WhatEverIsYourSSID
# End WLAN

        if [[ ${ifconfig_IFACE} != dhcp ]]; then
After a update-modules and a /etc/init.d/net.wlan0 start everything looked fine, but then this error after loading the ndiswrapper module caught my eye:
ndiswrapper version 0.8-rc2 loaded
ndiswrapper adding w22n51.sys
wlan0: ndiswrapper ethernet device 00:0f:15:12:ac:c2 using driver w22n51.sys
Cannot add duplicate driver

I found out that the card got slower and slower after a few transferred MB and eventually got unusable until I rebooted.

UPDATE: If you use the CVS-version of ndiswrapper the connection seems stable. You can get the CVS-version by doing a

cvs -d:pserver:anonymous@cvs.sourceforge.net/cvsroot/ndiswrapper login
(if asked for a password simply press enter)
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net/cvsroot/ndiswrapper co ndiswrapper


Another option is Linuxant's commercial DriverLoader, which works fine (just follow the documentation on their site).

PCMCIA

Works fine with yenta_socket.

Firewire

Works fine with ieee1394, ohci1394 and sbp2.

Cardreader

The build-in CardReader seems to be attached to the PCMCIA-Bus. It is called RICOH Bay2Controller and according to this site there is no linux-driver for it.

Modem

The modem is supposed to work with the most recent slmodem driver. You can emerge it with
FEATURES="-sandbox" ACCEPT_KEYWORDS="~x86" emerge slmodem
I couldn't get it to work yet, because the insmod command hangs. As I don't need the modem I won't invest too much time in getting it to work.

WXGA framebuffer console

Simply enable these settings in your kernel-config:

Device Drivers  --->
  Graphics support  --->
    [*] Support for frame buffer devices
     [ ]   VESA VGA graphics support
     <*>   ATI Radeon display support
     [*]     DDC/I2C for ATI Radeon support (NEW)
and add this to your append-line in lilo.conf:
video=radeonfb:accel,mtrr

BTW: Bootsplash only works with VESA-FB, so you have to choose between a 1280x800 resolution or a background image for your console.

IrDA

This should work with irtty-sir.

SpeedStep

To use the Centrino SpeedStep feature you have to enable these settings in your kernel-config:

Power management options (ACPI, APM)  --->
  CPU Frequency scaling  --->
    [*] CPU Frequency scaling
    <*>   'powersave' governor
    <*>   'userspace' governor for userspace frequency scaling
    <*>   CPU frequency table helpers
    <*> Intel Enhanced SpeedStep

A demon is needed to automatically switch the CPU frequency. I chose cpudyn. Since version 0.99.0 the tool has support for the ASUS specific LEDs (mail-led for powersafe, wlan-led for full speed). Emerge cpudyn with ACCEPT_KEYWORDS="~x86" emerge cpudyn. Afterwards add this to /etc/conf.d/cpudyn:

#
# Include ASUS support.
#

ASUS=yes

And add this to /etc/init.d/cpudyn (inside the start() function):

if [ "$ASUS" == "yes" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -asus"; fi

To Do

hotkeys, TV-out, CIR, TV-tuner

Feedback

Please contribute to this page by using my forum, either in English or in German.

Links

created by Frederik Kunz (frederik at linux dot w1n slash forum dot net)

Valid HTML 4.01!