Summary

This page describes how to install (Gentoo) Linux on the Asus W2W laptop. Due to software updates and possibly additional devices and features that I manage to configure successfully over time, this page will be subject to continuous change. Please refer to the modification history on the main page to see what has changed.

Versioning

It is described to how configure Gentoo Linux with kernel 2.6.23-gentoo-r3. I used the Gentoo 2007.0 version of the live CD to bootstrap the system. My former 2005.1 version would not want to recognize the harddisk (!), so it is advised you use the 2007.0 version or higher.

Status

ATI Radeon HD 2600 Working (with Compiz fusion)
Sound Working
Wireless Working
Network Working
USB Working (tested with USB stick)
ACPI Did not look at hibernation and suspend yet
CPU frequency scaling Working
Bluetooth Working (with included wireless mouse)
Infrared Did not try
Webcam Did not try
Radio Did not try, but seems difficult at least
TV Did not try, but seems difficult at least

System & Kernel

Preparation

Most users probably won't want to erase the pre-installed Windows Vista. Although the original Vista installation CD's are not included (!?!), the machine arrives with the harddisk partitioned in three partitions, one of which is a mysterious 8 Gig hidden windows partition. Of course, a new partitioning scheme was needed badly:

  
  Disk /dev/sda: 300.0 GB, 300069052416 bytes
  251 heads, 63 sectors/track, 37062 cylinders
  Units = cylinders of 15813 * 512 = 8096256 bytes

     Device Boot      Start         End      Blocks   Id  System
     /dev/sda1               1        1037     8192000   1c  Hidden W95 FAT32 (LBA)
     /dev/sda2   *        1037       19568   146518016    7  HPFS/NTFS
     /dev/sda3           19568       24509    39069368+   c  W95 FAT32 (LBA)
     /dev/sda4           24510       37062    99250294+   5  Extended
     /dev/sda5           24510       24763     2008219+  82  Linux swap / Solaris
     /dev/sda6           24764       24827      505984+  83  Linux
     /dev/sda7           24828       37062    96735996   83  Linux
  

Note that the drive shows up as sda instead of hda. I chose to have a 40 Megs share between Linux and Vista (/dev/sda3), a 2 Gigs swap (/dev/sda5), a 500Mb /boot (/dev/sda6) and the leave the remainder for the root partition (/dev/sda7). With this partition scheme, the Grub bootloader was installed with:

  
  default=0
  timeout=10
  splashimage=(hd0,5)/grub/splash.xpm.gz

  title Linux (2.6.22)
      root (hd0,5)
      kernel /vmlinuz-2.6.23-gentoo-r3 real_root=/dev/sda7
      initrd /initramfs-genkernel-x86-2.6.23-gentoo-r3 real_root=/dev/sda7
  title Windows Vista
      rootnoverify (hd0,1)
      chainloader +1
  

Kernel configuration

You may download my complete .config file here. This may not (yet) be the perfect configuration, it certainly comprises a smoothly working kernel that supports most features. Please feel free to mail any modifications to me (see contact section in my home page).

Gentoo configuration

My current /etc/make.conf is reproduced below.
Caveat:the SYNC variable is specific to my configuration at home, as is the GENTOO_MIRRORS variable.

  
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-O2 -march=nocona -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
# This should not be changed unless you know exactly what you are doing.  You
# should probably be using a different stage, instead.
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j3"
VIDEO_CARDS="fglrx radeon"

SYNC="rsync://prometheus/gentoo-portage"
GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://mirror.scarlet-internet.nl/pub/gentoo ftp://mirror.nutsmaas.nl/gentoo/"
USE="-ipv6 -oss -kde -gnome -cups acpi java X alsa usb dvd xvmc mmx mmxext sse sse2 ssse3 mp3 mp2 aac opengl sdl xv win32codecs radio vorbis real quicktime jpeg gif nsplugin png"
  

Power management (ACPI)

This still needs to be configured properly. For now, I activated

  
  [*] Power Management support
  [ ]   Legacy Power Management API (DEPRECATED)
  [ ]   Power Management Debug Support
  [ ] Suspend to RAM and standby
  [ ] Hibernation (aka 'suspend to disk')
  [*]   ACPI (Advanced Configuration and Power Interface) Support --->
      [ ]  Deprecated /proc/acpi files
      [*]  Deprecated /proc/acpi/event support
      <*>  AC Adapter
      <*>  Battery
      <*>  Button
      <M>  Video
      <*>  Fan
      < >  Dock
      <*>  Processor
      <*>    Thermal Zone
      <*>  ASUS/Medion Laptop Extras
      < >  Toshiba Laptop Extras
      ...

  < >   APM (Advanced Power Management) BIOS support  --->
      CPU Frequency scaling
  
  

With hibernation I'll play in the near future.

CPU frequency scaling

Frequency scaling can be fully automated by using the proper kernel settings and installation of the cpufrequtils package, see the Gentoo HOWTO CPU Frequency Scaling page.

Activate the following settings and the following settings only:

  
CPU Frequency scaling --> 
 Power management options (ACPI, APM) --->
  [*] CPU Frequency scaling
  [ ]   Enable CPUfreq debugging
  <*>   CPU frequency translation statistics details
      Default CPUFreq governor (userspace) --->
  < > 'performance' governor
  < > 'powersave' governor
  --- 'userspace' governor for userspace frequency scaling
  <*> 'ondemand' cpufreq policy governor
  < > 'conservative' cpufreq governor
  --- CPUFreq processor drivers
  <*> ACPI Processor P-States driver
  
  

Using Xfce4 as my window manager, I installed the xfce4-cpu-freq plug-in to keep an eye on the current CPU frequency.

Graphics card

Introduction

Support for the ATI Radeon HD 2000 family including the ATI Mobility Radeon HD 2600 of the W2W, has (finally) become available since November 21, 2007. As of this writing, I'm running the ATI drivers version 8.43.2 that support DRI and AIGLX.

  1. Configure the kernel properly:
    
    Loadable Module Support --->
     [*] Enable loadable module support
     [*]   Module unloading 
    
     Processor type and features  --->
     [*]  MTRR (Memory Type Range Register) support
    
     Device Drivers --->
       Character Devices ---> 
         <M> /dev/agpgart (AGP Support)  
         < > ALI chipset support
         <M> ATI chipset support
         < > AMD Irongate, 761, and 762 chipset support
         ...
    
         < > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
    
     Graphics support --->
       < >  Support for framebuffer devices
    
    
  2. Install xorg-server with emerge -av xorg-server. I'm currently running
    
    [ebuild   R   ] x11-base/xorg-server-1.3.0.0-r2  USE="dri nptl xorg -3dfx -debug -dmx -ipv6 -kdrive -minimal -sdl -xprint" INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse -void -wacom" VIDEO_CARDS="fglrx radeon -apm -ark -chips -cirrus -cyrix -dummy -epson -fbdev -glint -i128 -i740 -i810 (-impact) -imstt -mach64 -mga -neomagic (-newport) -nsc -nv -nvidia -r128 -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB 
    
    
    Higher (experimental) versions are currently discouraged.
  3. Make sure you get the most recent ATI drivers by adding x11-drivers/ati-drivers ~x86 to your /etc/portage/package.keywords.
  4. Install the drivers: emerge -av ati-drivers. Enable OpenGL by invocation of eselect opengl set ati
  5. Configure the /etc/X11/xorg.conf:
    
    Section "ServerLayout"
    	Identifier     "Simple Layout"
    	Screen      0  "LaptopScreen0" 0 0
    	InputDevice    "Mouse1" "CorePointer"
    	InputDevice    "Keyboard1" "CoreKeyboard"
    EndSection
    
    Section "Files"
    	FontPath     "/usr/share/fonts/misc/"
    	FontPath     "/usr/share/fonts/100dpi/"
    	FontPath     "/usr/share/fonts/75dpi/"
    EndSection
    
    Section "Module"
    # This loads the DBE extension module.
    # This loads the miscellaneous extensions module, and disables
    # initialisation of the XFree86-DGA extension within that module.
    # This loads the font modules
    #    Load        "type1"
    # This loads the GLX module
    #    Load       "glx"
    # This loads the DRI module
    #    Load       "dri"
    	Load  "dbe"  	# Double buffer extension
    	SubSection "extmod"
    		Option	    "omit xfree86-dga"   # don't initialise the DGA extension
    	EndSubSection
    	Load  "freetype"
    #    Load        "xtt"
    EndSection
    
    Section "InputDevice"
    	Identifier  "Keyboard1"
    	Driver      "kbd"
    	Option	    "AutoRepeat" "500 30"
    # Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
    	Option	    "XkbRules" "xorg"
    	Option	    "XkbModel" "pc101"
    	Option	    "XkbLayout" "us"
    EndSection
    
    Section "InputDevice"
    	Identifier  "Mouse1"
    	Driver      "mouse"
    	Option	    "Protocol" "Auto"	# Auto detect
    	Option	    "Device" "/dev/input/mice"
    # When using XQUEUE, comment out the above two lines, and uncomment
    	Option	    "ZAxisMapping" "4 5 6 7"
    # Emulate3Buttons is an option for 2-button mice
    	Option	    "Emulate3Buttons"
    #    Option "Emulate3Timeout"    "50"
    # ChordMiddle is an option for some 3-button Logitech mice
    #    Option "ChordMiddle"
    EndSection
    
    Section "Monitor"
    	Identifier   "LaptopScreen"
    	HorizSync    31.5 - 82.0
    	VertRefresh  60.0 - 60.0
    EndSection
    
    Section "Monitor"
    	Identifier   "LaptopDisplay0"
    	Option	    "VendorName" "ATI Proprietary Driver"
    	Option	    "ModelName" "Generic Autodetecting Monitor"
    	Option	    "DPMS" "true"
    EndSection
    
    Section "Extensions"
    	Option "Composite" "Enable"
    EndSection
    
    Section "DRI"
       Mode 0666
    EndSection
    
    Section "Device"
    	Identifier  "AtiRadeonHd2600"
    	Driver      "fglrx"
    EndSection
    
    Section "Screen"
    	Identifier "LaptopScreen0"
    	Device     "AtiRadeonHd2600"
    	Monitor    "LaptopDisplay0"
    	DefaultDepth     24
    	SubSection "Display"
    		Viewport   0 0
    		Depth     24
    	EndSubSection
    EndSection
    
    
  6. Start X. In case of problems, it may be necessary to issue the following command:
    # ln -s /usr/lib/libGL.so /usr/lib/libGL.so.1
    
  7. Install your favourite window manager. For most people this will be KDE or Gnome. Personally, I prefer something more lightweight: Xfce4. To this extent, I put the following line in my /etc/rc.conf:
    XSESSION="Xfce4"
    
  8. For installation of Compiz fusion, see the HOWTO compiz-fusion from Gentoo.
  9. Finally, I had to tweak the start procedure a bit, in order to get Compiz and the associated window manager started properly. I ended up adding the following script to the list of programs that are automatically started once Xfce4 boots:
    COMPIZ_OPTIONS="--replace --sm-disable ccp"
    export LIBGL_ALWAYS_INDIRECT=1
    
    compiz $COMPIZ_OPTIONS gconf move resize minimize place decoration wobbly fade cube rotate scale switcher zoom dbus &
    sleep 5
    emerald --replace &
    

Finally some links:

Network

Interfaces

The output of lspci shows us two network interfaces:

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

The wired ehternet controller shows up as eth0 and the wireless network controller shows up as eth1.

Wired network

Getting the Gigabit ethernet NIC working, enable the following options in the kernel:

  
Device drivers --> 
 Network device support --->
  Ethernet (1000 Mbit) --->
   <*>   Realtek 8169 gigabit ethernet support
  

Futher configuration of the network is standard practice.

Wireless network

To get the wireless network adapter working, I followed the Hardware ipw3945 - Gentoo Linux Wiki:

 
  Networking --->
      Wireless -->
         <*>   Generic IEEE 802.11 Networking Stack 
         [ ]     Enable full debugging output
         <M>     IEEE 802.11 WEP encryption (802.1x)
         <M>     IEEE 802.11i CCMP support
         <M>     IEEE 802.11i TKIP encryption
	 < >     Software MAC add-on to the IEEE 802.11 networking stack
 

Sound

The output of lspci tells us the HD audio controller type:

00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)

This HDA (High-Definition Audio) Intel soundcard with Realtek ALC882 chipset is supported by the snd-hda-intel module. Since I almost always i want to have sound, I decided to compile it in the kernel, but you may decide for yourself, of course:


 Device Drivers --->
   Character Devices ---> 
     Sound --->
       <*> Sound card support
         Advanced Linux Sound Architecture --->
	   < > Sequences support
	   <*> OSS Mixer API
           ...

           PCI devices --->
	     <*> Intel HD Audio

Harddisk

As mentioned before, the harddisk shows up as /dev/sda. In the kernel, I activated the associated options like so:


 Device Drivers --->
   RSerial ATA (prod) and Parallel ATA (experimental) drivers ---> 
     <M> AHCI SATA support
     < > ServerWorks Frodo / Apple K2 SATA support
     ...

Luckily, the DMA is recoginzed as well, giving (IMHO) a very decent I/O performance of the 4200 RPM 300Gig harddisk:


apollo linux # hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   6888 MB in  2.00 seconds = 3447.79 MB/sec
 Timing buffered disk reads:  122 MB in  3.02 seconds =  40.35 MB/sec

Bluetooth

The W2W comes standard with a luxurious wireless bluetooth mouse. Although I was afraid this would never work under Linux, the opposite turned out to be true: I followed the instructions in the HOWTO use a bluetooth mouse. My kernel configuration options follow closely the Gentoo Linux Bluetooth Guide.


Networking --->

<*> Bluetooth subsystem support  --->

--- Bluetooth subsystem support
<M>   L2CAP protocol support
<M>   SCO links support
<M>   RFCOMM protocol support
[*]     RFCOMM TTY support
<M>   BNEP protocol support
[*]     Multicast filter support
[*]     Protocol filter support
<M>   HIDP protocol support

Bluetooth device drivers  --->
<M> HCI USB driver
[*]   SCO (voice) support
<M> HCI UART driver
[*]   UART (H4) protocol support
[*]   BCSP protocol support
[*]   Transmit CRC with every BCSP packet
<M> HCI BCM203x USB driver
<M> HCI BPA10x USB driver
<M> HCI BlueFRITZ! USB driver
(The four drivers below are for PCMCIA Bluetooth devices and will only
show up if you have also selected PCMCIA support in your kernel.)
< > HCI DTL1 (PC Card) driver
< > HCI BT3C (PC Card) driver
< > HCI BlueCard (PC Card) driver
< > HCI UART (PC Card) device driver
(The driver below is intended for HCI Emulation software.)
< > HCI VHCI (Virtual HCI device) driver

Finally, I had to change the following two lines in the /etc/conf.d/bluetooth as follows:

HIDD_ENABLE=true
HIDD_OPTIONS="--connect 01:23:45:67:89:ab"

USB

The output of lspci tells us the HD audio controller type:

00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)

Nothing special here, just see the section with my kernel configuration parameters.

TV and radio

The TV and radio are not yet operational

01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9581
01:00.1 Audio device: ATI Technologies Inc Unknown device aa08