Search:  
Gentoo Wiki

Asus_Z33A

This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

Introduction

This article should help you get Linux working on an ASUS Z33A laptop. Note that the Z33A/Z33AE (the E version is identical except for ram, having a base 512MB instead of 256MB) is the name Asus uses for the North American market, in the rest of the world Asus uses the official name M5A (the M5A is a refresh of the earlier M5N using the newer 915GM chipset). The name change for North America is likely related to Asus phasing out the S5N/S5A (an even lighter version of the M5N/M5A with external optical drive) in the North American market in favor of promoting the W5 series. The BIOS of the Z33A is unchanged from the original, identifying itself as the M5A, and components such as batteries listed as being for the "M5A" will work with both the Z33A and Z33AE.

This guide is aimed at Gentoo Linux, but if you are visiting from another Linux distribution, you may still find some useful information here. Note that some of the hardware on the Z33A is still fairly new (as of March 2006). Because of this, the "stable" versions of some packages do not have appropriate drivers, and it is necessary to use "testing" versions.

This is not a step-by-step guide to installing Gentoo from scratch on the Z33A. The aim of this document is to document special steps or "tricks" that are not mentioned in the standard documentation (the official Gentoo documentation or other Gentoo-Wiki articles). This article should be used as a companion to those other sources.

Hardware Overview

The following table summarizes which components I have or have not been able to get working. See the related sections below for details.

Component Model Status
LAN Realtek RTL-8139 works
WLAN Intel PRO/Wireless 2915ABG works (inclding WPA, WPA2)
Sound Intel High Definition Audio works
Graphics Intel Mobile 915GM/GMS/910GML Express works (including acceleration)
DVD/CD-RW Matshita UJDA765 DVD/CDRW works
PC Card Ricoh RL5C476 II works
USB 2.0 Intel 82801FB/FBM USB2 EHCI works
Firewire Ricoh R5C552 IEEE 1394 works
ACPI (Using acpi4asus and swsusp2 sources) works (including software suspend 2 and suspend-to-RAM)
Modem HDAUDIO SoftV92 Data Fax Modem with SmartCP (Conexant chipset) does not work (yet)
Card Reader Ricoh R5C822 SD/SDIO/MMC/MS/MSPro does not work


Code: lspci output
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04)
01:03.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
01:03.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
01:03.2 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
01:03.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)
01:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:05.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05)

Linux Kernel

I am currently using a 2.6.15 kernel with swsusp2 patches (sys-kernel/suspend2-sources-2.6.15-r6). The standard gentoo kernel (sys-kernel/gentoo-sources) also works. It is probably not necessary to use a 2.6.15 kernel; however, you do need a fairly recent 2.6 kernel. Drivers for some hardware components are not available in many older versions.

LAN

I had no problems with the Realtek 8139 network card (except when dual-booting Windows). It works with the "8139too" driver. You can compile it in-kernel or as a module. The driver has some sub-options. I left those at their default settings.

Linux Kernel Configuration: Network
Device Drivers  --->
    Network device support  --->
        Ethernet (10 or 100Mbit)  --->
            <M> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support


Tip: net-misc/dhcpcd only supports one network interface at a time. If you want to use DHCP for the wired and wireless network adaptors simultaneously, try dhclient from net-misc/dhcp instead.

WLAN

See this guide. (There are also a few things to watch out for when dual-booting Windows.)

Sound

In order to use this soundcard, you need ALSA drivers v1.0.10 or greater. Drivers for some Intel High Definition Audio (HDA) soundcards are included in older versions of ALSA, but they do not work on this laptop. (The module loads without errors, but no sound is produced.) The in-kernel drivers are currently too old (as of March 2006), so you must use the media-sound/alsa-driver package from portage. See the Gentoo Linux ALSA Guide for details on how to install ALSA. In thise case, you want to add this line to /etc/make.conf:

File: /etc/make.conf
 ALSA_CARDS="hda-intel"

and then emerge alsa-driver. Remember to re-emerge the driver whenever you upgrade your kernel.

Setting up /etc/modprobe.d/alsa is done as for any other ALSA soundcard. However, you also need to pass an option to the snd-hda-intel module. The default file from the ebuild already contains most of the settings you need. Add the following lines:

File: /etc/modprobe.d/alsa
alias snd-card-0 snd-hda-intel
alias snd-slot-0 snd-card-0
options snd-hda-intel position_fix=1

Afterwards run update-modules.

The first two lines are the normal way to set up a soundcard under ALSA. The third line passes the "position-fix=1" option to the module when it is loaded. If you omit this, you will probably get "clicks" or skipping in the sound output. If 'position_fix=1' does not work, the other values you can try are 0, 2, and 3. Read /usr/src/linux/Documentation/sound/alsa/ALSA-Configuration.txt for details on what they mean.

You should also emerge alsa-utils so that you can run alsamixer to change the volume level. Most ALSA soundcards have a 'Master' channel; this one has a 'Front' channel instead. You will want to unmute and turn up the volume on 'Front' and 'PCM' to get digital sound output. The 'Surround', 'Center', and 'LFE' (low freqency effects) channels are for surround-sound, which is supported by this chipset, but useless on a laptop that only has stereo speakers and a stereo headphone output.

This soundcard does not have a built-in MIDI synthisizer, so you will have to use a software one like media-sound/timidity++. See the Gentoo Linux ALSA Guide, Section 4 (under "Virtual Synthesizers") for instructions on setting that up. This soundcard also does not support hardware mixing, so you will either need to use a sound daemon that does that for you (such as esd or arts) or the ALSA dmix plugin. Remember to add 'alsasound' and 'timidity' to your default runlevel. See the ACPI section for enabling the multimedia keys Fn+F10 - Fn+F12.

Graphics Card

See this HowTo.

X Composite

X Composite is used to enable transparency effects. Follow the instructions at Xorg X11 and Transparency. Note that not all programs support X Composite. Some will exhibit display corruption or may even crash on start-up. This is an issue with the programs themselves, not with the i915 chipset. See Xorg X11 and Transparency#Troubleshooting and especially Xorg X11 and Transparency#Mozilla_.28Firefox.29_crash_Issue_with_Flash (which is a workaround that applies to many X11 programs, not just Firefox). I recommend you set up X11 without transparency first, make sure everything works properly, and then add transparency.

DVD/CD-RW

This is a fairly generic IDE DVD-ROM/CD-RW combo drive. Nothing unusual is required here.

PC Card

See this guide.

USB 2.0

This laptop has three USB 2.0 ports. The EHCI driver in the kernel provides USB 2.0 support. If you want to use any USB 1 devices, then you also need the UHCI driver. Enable the following kernel options:

Linux Kernel Configuration: USB
Device Drivers  --->
    USB support  --->
        <*> Support for Host-side USB
        <M>   EHCI HCD (USB 2.0) support
        <M>   UHCI HCD (most Intel and VIA) support

You can compile these in-kernel or as modules. Look through the other options under "USB support" to see if any perhipherals you have require additional drivers.

Note: You may encounter problems with some USB 2 devices if you connect them through a USB 2 hub. This has to do with USB 2 drivers under Linux in general. It is not specific to this laptop. Some details about USB 2 support under Linux are availble here: http://www.linux-usb.org/usb2.html (That page apparently has not been updated since November 29, 2004, so it is likely out of date now (March 2006).) If you search for the words "Has partial support for" near the end of the page, you will see that USB 2.0 hubs are not fully supported, so some devices may not work through one. (For example, I had problems with a Logitech QuickCam Pro 4000.) So, if you are using an external USB 2.0 hub and you are having problems with a USB 2.0 device, try plugging it directly into the laptop.

Firewire

Firewire works with the kernel IEEE1394 modules. You will need to install whatever modules or drivers are necessary for the firewire devices you want to use. I have tested this with a PointGrey FireFly camera and a generic external harddrive enclosure.

ACPI

Basic Setup

Note:

I strongly recommend you install CPU frequency scaling. If you run this laptop at full CPU speed all the time it will drain your battery quickly and can get very hot.

Set the following kernel options:

Linux Kernel Configuration: ACPI Settings
Power management options (ACPI, APM)  --->
    ACPI (Advanced Configuration and Power Interface) Support  --->
        [*] ACPI Support
        [*]   Sleep States
        <*>   AC Adapter
        <*>   Battery             
        <*>   Button
        <*>   Video
        <*>   Fan         
        <*>   Processor               
        <*>     Thermal Zone
        <*>   ASUS/Medion Laptop Extras
    CPU Frequency scaling  --->
    [*] CPU Frequency scaling
          Default CPUFreq governor (userspace)  --->
    <*>   'performance' governor
    ---   'userspace' governor for userspace frequency scaling
    <*>   'ondemand' cpufreq policy governor
    <*>   'conservative' cpufreq governor
    <*>   ACPI Processor P-States driver
    <*>   Intel Enhanced SpeedStep
    [*]     Use ACPI tables to decode valid frequency/voltage pairs

Now emerge cpufrequtils acpid. Use rc-update to ensure both cpufrequtils and acpid run at startup. You can set the default frequency governor by editing /etc/conf.d/cpufrequtils. "ondemand" and "conservative" are the only two that do anything automatically. "ondemand" quickly sets the CPU speed to maximum when the system load increases and reduces it to minimum when it is idle. "conservative" raises and lowers the speed more slowly, and it may stop at an intermediate speed if your system load is light. "performance" and "powersave" fix the speed at the maximum or minimum, respectively.

Hotkeys

The above kernel settings enable "ASUS/Medion Laptop Extras" in the kernel. If you prefer, this is also available as app-laptop/acpi4asus. The current version supports many of the ACPI events, including the power and sleep buttons and the lid close event. See ACPI/Configuration for instructions on how to write scripts to handle the remaining hotkeys. Remember to run /etc/init.d/acpid restart after changing any scripts. The hotkeys which are not currently supported have the following values:

Key ACPI Event Value
PowerGear button ATKD 0000005c
WLAN (Fn+F2) ATKD 0000005d
email (Fn+F3) ATKD 00000050
internet (Fn+F4) ATKD 00000051
touch pad enable/disable (Fn+F9) ATKD 0000006b
volume mute (Fn+F10) ATKD 00000032
volume down (Fn+F11) ATKD 00000031
volume up (Fn+F12) ATKD 00000030

Example hotkey scripts

ACPI/Configuration shows you how to configure scripts to be run when various ACPI events are encountered. I modified /etc/acpi/powerbutton.sh to hibernate instead of powering off. I also created the following scripts to handle the volume controls, which I have listed below as examples to get you started. These scripts require amixer, for which you need to emerge alsa-utils. Remember to make the script files ending in .sh executable.

File: /etc/acpi/volume-change.sh
#!/bin/sh
/usr/bin/amixer -q set Front $1%$2 on
File: /etc/acpi/volume-mute.sh
#!/bin/sh
o=`/usr/bin/amixer get Front | awk '{ ORS=""; if ($6 == "[on]") print "on" }'`
if [ -z $o ]; then
        /usr/bin/amixer -q set Front on
else
        /usr/bin/amixer -q set Front off
fi
File: /etc/acpid/events/volume-down
event=hotkey ATKD 00000031
action=/etc/acpi/volume-change.sh 5 -
File: /etc/acpid/events/volume-up
event=hotkey ATKD 00000030
action=/etc/acpi/volume-change.sh 5 +
File: /etc/acpid/events/volume-mute
event=hotkey ATKD 00000032
action=/etc/acpi/volume-mute.sh

The result of all this pressing volume up/down will unmute the sound and increase/decrease the volume by 5%, and pressing the mute button will mute or unmute the sound.

KDE Bug Workaround

Warning: Read this if you use KDE!

There seems to be a problem with KDE and ACPI events on this laptop. If you are running KDE, you will get several warning messages a second in your system log unless you do something about it. The messages will contains "Asus ACPI: Error reading LCD status". Since acpid does not seem to provide a way to turn off warning messages, we need to do something else to get rid of them.

Workaround 1: Disable KMilo

The easiest way to get rid of the warning messages is to disable the KMilo service in KDE. From the Control Centre, choose KDE Components >> Service Manager. Stop KMilo and clear the checkbox beside it to prevent it from running on startup. Each user will hae to do this.

Workaround 2: Filter the syslog messages

Disabling KMilo is an easy way to fix the problem, but every user must go through the steps. Instead, we can prevent the warnings from being written to the system log file. If you are using app-admin/syslog-ng, add the following lines to /etc/syslog-ng/syslog-ng.conf:

File: /etc/syslog-ng/syslog-ng.conf
filter f_ignore_acpi_warn { (program(logger) or program(kernel)) and match("ACPI") and level(info,notice,warning,debug); };
log { source(src); filter(f_ignore_acpi_warn); };  # no destination

Also make sure your messages destination includes "flags(fallback);". If you do not know what any of this means, see man syslog-ng.conf before trying anything.

Software Suspend

Suspend-to-disk (hibernate) and suspend-to-RAM (sleep) both work using sys-kernel/suspend2-sources. See HOWTO Software Suspend v2 for the basics. A few configuration changes are necessary to get it working with this laptop.

We can set up the hotkeys so that the power button hibernates and the sleep key or lid close events suspend. Edit /etc/acpi/default.sh, and replace the lines from "power)" to the following ";;" with these:

File: /etc/acpi/default.sh fragment - "power" case
                        sleep)  /usr/sbin/hibernate-ram
                                ;;
                        lid)    /usr/sbin/hibernate-ram
                                ;;
                        power)  /usr/sbin/hibernate
                                ;;

Modem

This is a software modem. You can read more about those in general at: http://linmodems.org/

Under Windows XP, the modem driver files are provided by Conexant Systems Inc. Modem diagnostics give the following output:

ATQ0V1E0 - OK
AT+GMM - +GMM: HDAUDIO SoftV92 Data Fax Modem with SmartCP
AT+FCLASS=? - 0,1
AT#CLS=? - COMMAND NOT SUPPORTED
AT+GCI? - +GCI: 20
AT+GCI=? - +GCI: (00,01,02,03,04,05,06,07,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,19,1A,1B,1C,1D,1E,1F,20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F,30,31,32,33,34,35,36,37,38,39,3A,3B,3C,3D,3E,40,41,42,43,44,45,46,47,48,49,4B,4C,4D,4E,4F,50,51,52,53,54,55,56,57,58,59,5A,5B,5C,5E,5F,60,61,62,63,64,65,66,67,68,69,6A,6B,6C,6D,6E,6F,70,71,72,73,74,75,76,77,78,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8D,8E,8F,90,92,93,94,96,97,98,99,9A,9B,9C,9D,9E,9F,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF,C1,C2,C3,C4,C5,C7,C8,C9,CA,CB,CC,CD,CE,CF,D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF,E0,E1,E2,E3,E4,E5,E6,E7,E8,EB,EC,ED,EE,EF,F0,F1,F2,F3,F4,F5,F7,F8,F9,FA,FB,FC,FE)
ATI1 - 255
ATI2 - OK
ATI3 - SoftK56V_B2.1_V7.17.00
ATI4 - HDAUDIO SoftV92 Data Fax Modem with SmartCP
ATI5 - 032
ATI6 - SoftK56 
       CModem Version 12
       Rksample Version 342
ATI7 - 255

This modem is not supported yet (March 2006), but it is likely it will be supported sometime soon. The scanModem tool does not detect the modem. Conexant [1] does not produce Linux drivers, but another company, Linuxant [2] does. (Linuxant has acquired a license from Conexant in order to do so. Their drivers are generally available in two versions: free ones which are limited to 14.4kbps, and commercial ones which run at full speed.) This modem runs through the Intel High Definition Audio (HDA) card. An announcement on the Linuxant webpage reads "Feb-07-2006 Linuxant releases enhanced HSF driver with Intel High Definition Audio (HDA) bus support!" However, the Linuxant HSF driver installer does not recognize the modem. I assume this means that the specific chipset used in the ASUS Z33A is too new, and that Linuxant has not yet gotten around to supporting it. Since I have no need of the modem at the moment, I have not investigated further.

Linuxant drivers

If you wish to try the Linuxant drivers for yourself, start by downloading the modem identification tool: http://www.linuxant.com/drivers/modemident.php

Download and untar the "ListModem Tool for Linux" to get listmodem.sh. This script does not work as it is; it requires changes to two lines. You must add a backslash (\) to the end of lines 174 and 183 (those numbers may change if the file is updated):

Code: listmodem.sh:174 correction
               else if ( (vendor ~ "8086" && ( \
Code: listmodem.sh:183 correction
                       device_id ~ "266D") ) || # Intel \

With those corrections, I get the following output:

Code: listmodem.sh output
=                  RESULT OF MODEM QUERY                    =

Card Reader

Linux drivers may never be available for this device. Ricoh only provides Windows XP drivers, and they have not released specs that would allow a third party to write drivers for another OS. The MultiMediaCard project is an effort to provide Linux drivers for MMC and SD card readers. If they manage to produce a driver, you will be able to read about it on their Ricoh page.

Dual-Booting Windows

My laptop shipped with Windows XP, and I chose to dual-boot that with Linux. I came across one problem which I have been unable to fix. If you shut down Windows and boot Linux, everything works. If you hibernate Windows and boot Linux, the ethernet card does not work. The driver modules load properly, and ifplugd can even detect whether or not the cable is plugged in, but any attempts to send or receive data just sit there until they time out. The result is that if you hibernate Windows and boot Linux, then Linux will hang for a while during the bootup process while it tries to initialize the network until it eventually gives up. (Note that if you are using DHCP to acquire a network address, the default timeout is several minutes!) One workaround is to remove net.eth0 from your startup scripts and use the wireless card instead. The only other option is always to remember to shut down Windows before booting into Linux. I suspect that Windows is somehow putting the ethernet device into a power-save mode that Linux is unable to wake it from. If anyone finds more information about this, please leave me a note and/or update this page.

Retrieved from "http://www.gentoo-wiki.info/Asus_Z33A"

Last modified: Sun, 24 Aug 2008 09:52:00 +0000 Hits: 14,445