Installing Gentoo Linux (64-Bit) on an Asus Z81SP Laptop

General Hardware Specs:

Pentium 4 Processor, Model 640, EM64T Works Works I used the amd64 boot/install disks from gentoo.
WSXGA+ TFT Display Works Works Use fb code 0x348 to boot in widescreen
NVIDIA 6800 go MXM card Works Works, Plus Direct Rendering and Beryl Emerge nvidia-drivers
2gb DDR-2 RAM, 2DIMMs Works Works No special procedure required during installation
80 GB Ultra ATA Hard Drive Works Works, Plus DMA Follow instructions in the "ide controller" section
Integrated Network Card (Gigabit) Works Works Use the proper kernel driver (see my config)
Synaptics Touchpad Works Works, Incl. Scrollbar With the synaptics driver and a good x11 config
Internal 56k Modem Not Tested NOT TESTED I'm probably never going to test this.
Combo Drive CD/DVD-R(Ws), Dual-Layer Multi Works Works I haven't tested dual layer but it probably works.
Internal Asus wireless (zd1211) Works Works, plus WEP + 802.11g Follow the instructions in the "wireless" section
Intel HD Audio Card Works Works, See Notes Works with the right kernel config (2.6), See Notes
Multimedia Keys / ACPI Works Partial Support, See Notes Almost complete support

Installation

Installation was quite easy. Just follow the Handbook.
I Used the minimal-amd64 install CD's and the Network card was auto-detected. Just follow the handbook and you should be fine.

Tweaking

Graphics Card:

First off, to get the graphics card (6800 Go) working, and with direct rendering, you must install the nvidia kernel module and the glx library. Since I first published this how-to guide, the two packages that do this have been merged into one simple ebuild. You MUST also have pci-express support active in the kernel config.

emerge nvidia-drivers && eselect opengl set nvidia

I placed the nvidia module in /etc/modules.autoload.d/kernel-2.6, so it would load each boot.

Next, set up your /etc/xorg.conf to look something like mine (see the files section). Note that this file also enables the appropriate GL extensions for Beryl/Compiz.

Touchpad:

Compared to the headache that setting up touchpads on other laptops has been, this one was a snap. Just emerge the synaptics driver module and set up the /etc/xorg.conf. (see my files section for a nice config of all the options)

emerge x11-drivers/synaptics

The default settings I provided give you a nice fast pointer, complete with full scrollbar.

Wireless:

Open-source drivers exist for the laptop's built-in USB wireless stick. With wireless extensions in the kernel enabled (plus USB support), and wireless-tools emerged, emerge the driver with

emerge net-wireless/zd1211

Now add the "zd1211" module to /etc/modules.autoload.d/kernel-2.6 and set up your wifi with iwconfig (see other linux wireless guides for more info). The wireless card should now work fine, in 802.11g mode and WEP (I haven't tested WPA).

Update: there is now a new driver for the zd1211 chipset, called zd1211rw (rewrite). This driver has been merged into the mainstream linux kernel and is under

Device Drivers -> Netword Device Support -> Wireless LAN (non-hamradio)
<M>     ZyDAS ZD1211/ZD1211B USB-wireless support

You also need "Generic IEEE 802.11 Networking Stack" and "Software MAC add-on to the IEEE 802.11 networking stack" enabled. These can be found in the "Networking" section. After recompiling the kernel, install the firmware for the driver:

emerge net-wireless/zd1211-firmware

Just like the old method, add "zd1211rw" to /etc/modules.autoload.d/kernel-2.6

Sound Card:

Sound works fine, with alsa and the Intel HD Audio driver compiled into the kernel. The only issue that I had is that when wearing headphones, there is quite a lot of interference whenever the hard drive is accessed but I attribute this to a design flaw, and the linux driver works fine.

IDE Controller:

This one was a bit of a headache, with wierd results from amd64 drivers for the Intel drive controller. In the end, I managed to get it working with full DMA. In the kernel config, under

Device Drivers -> ATA/ATAPI/MFM/RLL support
<*>     Intel PIIXn chipsets support

make sure you have support for the generic as well as the PIIXn chipsets, plus have DMA enabled by default.

After a bit of fiddling, it just seemed to work with full DMA access to the drive, just play with hdparm to get it to work for you.

One last problem, running the IDE controller in 32-bit mode corrupted my data! DO NOT set the hdparm -c3 flag!!!!

Multimedia Keys / ACPI

Nearly complete ACPI Support for the z81sp was added in version 2.6.20 of the linux kernel. Enable it with:

Power management options ->. ACPI (Advanced Configuration and Power Interface) Support
<*>     ASUS/Medion Laptop Extras

This adds support for items such as the power button, the screen brightness and status indicators as well as the multimedia keys along the bottom of the keyboard. To use them, you need to configure acpid:

emerge sys-power/acpid && rc-update add acpid default

This will install acpid, which needs an events script to monitor the events that the acpi driver puts out. In addition to the script, we need a program called acpi_fakekey from the debian acpi-support package (this section is a bit of a hack, but works once it is in place. First, download the acpi-support package from here. Extract it somewhere and compile acpi_fakekey (these steps must be run as root):

tar -xzvf acpi-support_0.90.orig.tar.gz
cd acpi-support-0.90
make
cp acpi_fakekey /usr/local/bin

Now, replace the default files in /etc/acpi with the ones designed to work with the laptop. The files I have provided do not provide complete support for every button and switch, but do cover most of the buttons. Download default.sh and move it to /etc/acpi. Now, allow the program (which will be run as root) to connect to your X session (Note: this is actually a bit of a security problem, but is the easiest way to let the script work):

xhost +

Finally, set up an xmodmap file to interpret the keycodes being sent to the X server. To match with the codes being sent by default.sh, use my .xmodmaprc file. Place the file in your home directory, as a hidden file: ~/.xmodmaprc and then write a script that applies it every login by running xmodmap:

#!/bin/sh
xmodmap ~/.xmodmaprc

To run this file on each login, place it in KDE's autostart folder for instance (check your desktop environment's docmentation for other systems).

You should now have access to the different buttons (power, the 4 buttons adjacent to the power button, lid switch, screen brightness, multimedia keys, volume keys). These can be bound to applications like kmix or amarok to control them.

Files

Here's all the different files you may need to get your laptop running. My xorg.conf is especially clean, and fits this laptop perfectly.

http://linux.manjos.com/asus/files/

Contact Info

If you need help or have feedback for this page, feel free to drop me a line at:
matt (at) manjos (dot) com
I also use MSN. That address is matt (at) manjos (dot) com
The folks at irc.freenode.net in #gentoo are also a great help, and can probably sort out any problems you have.