This is a rough guide for installing Gentoo Linux on an Acer Travelmate 8104 WLMi, a laptop/notebook from Acer's 8100 range. It is derived from a set of notes I took whilst attempting the installation myself, hence the reason it's written in the first person.
I am confident the process is repeatable but I have not actually followed the guide myself (it was derived from my written notes) so do so at your own risk!
I strongly recommend you read an entire section before attempting anything with your own system, because I describe my mistakes as well as my successes. Also, the local copies of some articles will show exactly what versions I followed - some articles, particularly the Gentoo WIKI ones, change frequently.
Very important: Make sure you back up anything you change. I created backups of all application config, kernel config, kernel and initramfs files before making a change. I also added options to /boot/grub.conf for each new kernel that I tried, so that I could easily revert to the previous config if there was a problem (as indicated by my bloated grub.conf file).
Contents | Go to top
- Preparing the hard drive
- Installing Gentoo 2005.0
- Internet access with a Speedtouch USB modem
- Updating Gentoo packages
- Graphical environment (X Org)
- CD and DVD writing
- Synaptics touchpad
- PCMCIA (PC card, smartcard and 4-in-1 card reader)
- Appendix: Hardware details and configuration
- Appendix: Link dump
Specification | Go to top
Note that whilst the Acer spec says that it has a 5-in-1 card reader, Linux reports the device as a 4-in-1 card reader.
Status | Go to top
|Hard disk - SATA||Good.|
|Speedtouch USB modem||Good.|
|X||Good for my purposes. I've not set up any kind of 3D acceleration or direct rendering.|
|ACPI||Good. Buttons, power management of hardware and CPU frequency scaling all work well.|
|CDR, DVDR, DVDRW||Good. Audio and data only - i.e. not tried writing a DVD movie. CDRW not tested but probably functional.|
|Synaptics touchpad||Good. Button and double-button events, multifinger taps, vertical scrolling.|
|PCMCIA - PC card, smartcard, 4-in-1 card reader||Moderate but untested. My PC card is recognised but I've not actually configured and used it. I've not tested the smartcard but expect it to work. The 4-in-1 card reader is not yet supported.|
I haven't tried configuring the Fast InfraRed (FIR) or firewire (IEEE 1394) ports.
Preparing the hard drive | Go to top
The laptop came preinstalled with Windows XP and so the hard disk was already partitioned for Windows. I opted to keep XP and set up a dual boot system, mainly because it's not guaranteed that all hardware will work with Linux (hardware manufacturers still tend towards releasing device drivers for Windows and leaving Linux in the lurch).
To resize the partitions I used a Gentoo Linux based rescue CD called SystemRescueCd. It contains a number of useful tools including fdisk and QtParted.
I had to boot the CD with gentoo nodetect to prevent autodetection of hardware that caused the system to hang. Once booted, run-qtparted showed the hard disk partitioned as follows:
I used QtParted to keep all existing partitions but resize them so that Linux could fit with plenty of space. I also added a small 10 gig partition for sharing data between Linux and Windows.
Note: I kept the Acer rescue partition called PQSERVICE because I wasn't too sure whether it was needed by Windows. It isn't. I later found that it was only used by an Acer recovery tool which would completely wipe the hard disk when invoked, so I won't be using it. Besides, it was rendered useless by the resizing process ;-)
After resizing, fdisk /dev/sda shows the hard disk partitioned as follows:
|/dev/sda2||*||384||2341||15727635||c||W95 FAT32 (LBA)|
|/dev/sda3||2342||3646||10482412+||c||W95 FAT32 (LBA)|
|/dev/sda4||3647||12161||68396737+||f||W95 FAT32 (LBA)|
|/dev/sda6||3655||3915||2096451||82||Linux swap / Solaris|
Installing Gentoo 2005.0 | Go to top
I had to boot with gentoo *** to prevent it hanging at boot.
Note: Rather optimistically I set set the CFLAGS (in /etc/make.conf) to CFLAGS="-O3 -march=pentium-m -mtune=pentium-m -pipe -ftracer -fomit-frame-pointer -ffast-math -momit-leaf-frame-pointers", according to the Gentoo forums [HOWTO] Flying with gentoo (local copy here). This allowed the kernel sources to be emerged and the kernel built, but the emerge of syslog-ng failed. Using the more conservative flags of CFLAGS="-O3 -march=i686 -pipe -fomit-frame-pointer" allowed me to emerge syslog-ng and continue (after re-emerging the kernel sources and recompiling the kernel).
I did not have network access, so the emerge of hotplug failed with the message Temporary failure in name resolution. The full message showed the URL of the desired file and the location in the portage tree that it tried to download it too. Since I still had Windows I rebooted into it, downloaded the file, copied it to the shared partition, rebooted into the Gentoo install CD, mounted the neccessary partitions, chrooted into my new system, added the shared partition to /etc/fstab, mounted the shared partition and copied the file to it's desired location in the portage tree. After doing this I could emerge hotplug and set it to start in the default runlevel.
localhost ~ # emerge -av hotplug localhost ~ # rc-update add hotplug default
After successfully completing the steps in the installation guide and rebooting I got various Spurious ACK on isa0060/serio0 messages before the system hung with Block device /dev/sda7 is not a valid block device. The first message was stopped by adding acpi=off as a boot parameter.
To allow /dev/sda7 to be recognised properly I recompiled the kernel with SATA support for all devices and SCSI disabled. On reboot lspci | grep -i sata showed that I had an Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 04), which meant that I only had to compile in support for the Intel PIIX/ICH device.
Device drivers -> SCSI Device support -> <*> SCSI disk support SCSI low-level drivers -> [*] Serial ATA (SATA) support [*] Intel PIIX/ICH SATA Support
Internet access with a Speedtouch USB modem | Go to top
To continue with the installation I needed network access and the only means of getting it was using a Speedtouch USB modem to access my broadband connection. I followed the The Linux Kernel Speedtouch Driver on Gentoo guide (local copy here).
After plugging in the modem, cat /proc/bus/usb/devices | grep USB showed that I needed to enable UHCI and EHCI.
S: Product=Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (...) S: Product=Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB EHCI Controller
My ISP, Zen, uses PPPoA. Looking at the kernel config, I already had many of the desired options set as modules, so I changed these to be compiled into the kernel and added whatever other options were needed for UHCI, EHCI and PPPoA.
Note: The names of the menu options differed slightly to those listed in the guide. For example, the options that the guide listed as "USB DSL modem support" and "Speedtouch modem support" were called "USB ATM/DSL drivers" and "Alcatel Speedtouch USB support" respectively.
Again, because I didn't have a network I had to log into Windows in order to download the linux-atm-2.4.1.tar.gz file then copy it to the portage tree in order to successfully emerge net-dialup/ppp. Before doing so I opted to add atm as a USE flag in /etc/make.conf rather than adding it to /etc/portage/package.use.
I also used Windows to download the required firmware. Once the firmware zip file was downloaded, cat /proc/bus/usb/devices | grep -B 1 THOMSON showed that my modem was a Thomson one, which meant I needed to use the ZZZL_2.012 firmware from the zip file. Of course, in order to unzip the file I had to emerge -av unzip first.
Update Gentoo packages | Go to top
Now that the broadband connection is working, I updated the portage tree before updating all installed packages.
localhost ~ # emerge --sync localhost ~ # emerge -av --update --deep --newuse world
etc-update wanted to replace 80+ config/init files, all of which I allowed except for the net.ppp0 ones. The new file for /etc/conf.d/net.ppp0 would have replaced some new config added when I installed the modem and was the same as the original file, so I deleted the new one. The new file for /etc/init.d/ppp0 didn't replace anything that had been added during the modem installation, so I replaced the existing one.
I'd previously read somewhere that it's recommended to rebuild the dependencies after updating the system, so I emerged gentookit and ran revdep-rebuild, which showed nothing was broken.
On reboot, the system hung when it attempted to bring up ppp.
Plugin pppoatm.so loaded. Connect(0.38): Resource temporarily unavailable Oop: 0000 [#1] (...) (lots of debugging messages)
After rebooting into the Gentoo installation CD and chrooting to my installation, running /usr/bin/pppd call speedtch failed.
Plugin pppoatm.so loaded. /usr/bin/pppd: pppd is unable to open the /dev/ppp device. You need to create a ppp device node (...)
dmesg | less showed that the speedtouch firmware had failed to load properly, depsite the fact that speedtch-2.bin was in /lib/firmware/.
1-2: found stage 1 firmware speedtch-1.bin 1-2: no stage 2 firmware found!
After some searching it seemed that this was probably because the latest atm ebuild required the latest kernel. I followed the Gentoo Linux Kernel Upgrade Guide (local copy here) to upgrade from 2.6.11-gentoo-r3 to 2.6.12-gentoo-r10. This solved the problem - the firmware is found and net.ppp0 starts ok.
Note: Compiling the kernel resulted in the creation of an initramfs file rather than an initrd file in the /boot directory.
Graphical environment (X Org)| Go to top
After emerging xorg-x11, Xorg -configure failed and xorgconfig asked too many questions ;-)
Since I have an ATI graphics card, to get support for my graphics card I emerged the ati-drivers package, as mentioned in Gentoo's X Server Configuration HOWTO and also recommended by Gentoo Linux ATI FAQ (local copy here).
localhost ~ # ACCEPT_KEYWORDS="~x86" emerge -av ati-drivers
I couldn't use fglrxconfig (provided by ati-drivers) to generate the /etc/X11/xorg.conf file because it didn't list the video card. Instead, the config from Linux on an Acer Travelmate 8104WLMi - Part I (local copy here) worked a treat. X -config /etc/X11/xorg.conf worked, as did startx. A copy of my final xorg.conf file can be found at the end of this document in the Appendix: Hardware details and configuration.
Note: I hadn't emerged the x11-drm package, so I got the message "You have DRM enabled, direct rendering will not work" when I emerged ati-drivers. This I chose to ignore.
Note: At first, after copying the config into /etc/X11/xorg.conf.test, X -config /etc/X11/xorg.conf.test failed with a parse error. It turned out this was due to dodgy characters in the file. Make sure you get rid of any Windows line breaks with dos2unix /etc/X11/xorg.conf.test (you'll have to emerge it first). Also, I had to open the file, add and then remove a space character and save it again before it worked! Once the test config worked I copied it to /etc/X11/xorg.conf.
After starting X it became apparent that the keyboard mappings were wrong. Edit /etc/conf.d/keymaps to set KEYMAP="uk" and set the "XkbLayout" option in /etc/X11/xorg.conf to "gb" (provided you want a uk/gb keyboard that is).
ACPI| Go to top
Note: Before finding the Gentoo Power Management Guide I followed the TIP ACPI basic configuration (local copy here) guide from the Gentoo Wiki to install the acpi acpid package. This didn't work because I didn't have ACPI support compiled into the kernel. Next I followed the ACPI: Advanced Configuration and Power Interface (local copy here) guide from The Linux Documentation Project to configure the kernel for ACPI. However, the guide was for 2.4 kernels and so the menuconfig options differed for my 2.6 kernel. The Gentoo Power Management Guide is better than both these guides because it covers everything necessary to get power management working on a Laptop - including Kernel configuration - and it's specific to Gentoo on 2.6 kernels.
The first step was to configure the kernel for ACPI support. I initially compiled these as modules like the guide suggests, but later compiled everything into the kernel.
Power management options (ACPI, APM) ---> [*] Power Management support ACPI (Advanced Configuration and Power Interface) Support ---> [*] ACPI Support <*> AC Adapter <*> Battery <*> Button <*> Video <*> Fan <*> Processor <*> Thermal Zone (0) Disable ACPI for systems before Jan 1st this year [*] Power Management Timer Support APM (Advanced Power Management) BIOS support ---> < > APM (Advanced Power Management) BIOS support
On reboot, the system hung after unpacking the kernel (which occurred whether or not ACPI support was compiled into the kernel or as modules).
Fixing the DSDT
Note: After configuring my machine as per the description below, I later had to apply a custom DSDT in order to prevent continuous lid events that resulted in 100% CPU usage and a flickering screen after closing the lid. See How to apply a custom DSDT to fix continuous lid events for more information.
The Linux on an Acer Travelmate 8104WLMi - Part I (local copy here) guide said that it was necessary to patch the DSDT, and a comparison between my kernel config and the one in the guide revealed that he had the custom DSDT option set and I did not.
The Gentoo Wiki HOWTO Fix Common ACPI Problems (local copy here) has a very good description of what the DSDT is and how to patch it. The DSDT resource ACPI4Linux - DSDT: View had a DSDT for the Acer Travelmate 8104WLMi here (local copy here).
For my first attempt I applied the patch to my existing initramfs, according to section "2a. Initrd Override with Bootsplash". This didn't work properly, resulting in a kernel panic at boot. After patching the kernel to support an initramfs file (rather than initrd) according to ACPI DSDT in initrd (local copy here) I had partial ACPI support. Note that I got the following messages on boot, but I'm not sure whether this is normal at this stage or not.
ACPI: Subsystem revision 20050309 ACPI: Interpreter disabled (...) pnp: PnP ACPI: disabled
On reboot, pressing and holding the power button powers off the PC.
At this point I started installing power management features (see next subsection, Power management scripts). All worked fine except for the battery. Querying the battery status with cat /proc/acpi/battery/BAT1/state produced AC_NOT_FOUND errors. This, according to a number of posts on the Gentoo forums, is due to a buggy DSDT.
(...) ACPI_0352: *** Error: Looking up [Z00G] in namespace, AE_NOT_FOUND (...) search_node dfe4a160 return_node 00000000 (...) ACPI_1138: *** Error: Method execution failed [\_SB_.BAT1.BST] (Node dfe4af40), AE_NOT_FOUND
Note: I confirmed that it was the battery event causing problems by compiling the ACPI drivers as modules and then loading them one by one until the problem occurred. The module names were given in the ACPI: Advanced Configuration and Power Interface (local copy here) guide and are called button, battery, fan, ac, thermal and processor. You can load a module with modprobe [module name]. Once the problem was fixed I compiled them into the kernel, as shown above.
I tried updating the BIOS - because mine was version 3C19 and the DSDT I used was for 3C20 - using Windows and the Winphlash utility, downloaded from Acer - Utilities, software and tools. Then I tried to fix the DSDT according to Debugging the DSDT of Acer Aspire 1694WLMi, Bios 3C25 (local copy here) because the DSDT errors looked similar. Neither of these worked.
Eventually the problem was fixed by following section "3. Build-in Options for Kernel 2.6.9 and Later" in the HOWTO Fix Common ACPI Problems (local copy here) guide - something I should have done in the first place. DOH!
Note: Whilst adding kernel support for including a custom DSDT, I also disabled the "Read Custom DSDT from initrd" option.
Power management scripts | back to Fixing the DSDT
I installed acpid and powermgmt-base, created the battery runlevel, added the runlevel switch and added the event scripts, as per guide.
Note: There were already scripts present in /etc/acpi/ because I'd created them as part of the Gentoo Wiki TIP ACPI basic configuration (local copy here) guide. I left most of these in place because looking at them they didn't seem to conflict with any of the scripts added when following the Gentoo Power Management Guide (local copy here). One exception is the /etc/acpi/events/battery script, which I deleted because it didn't seem to do anything other than output a message and could potentially conflict with the pmg_battery event (added when following the Gentoo Power Management Guide).
Note: The actions directory mentioned in the guide didn't exist, so I had to create it with mkdir /etc/acpi/actions.
Note: A number of the scripts in /etc/acpi/ did not have executable permission, as indicated by access denied messages in /var/log/acpid. I gave them executable permission for user, group and others.
CPU frequency scaling
I already had support for CPU frequency scaling compiled into the kernel. My existing config had the 'performance' CPU frequency governer set as default, with it compiled into the kernel. As per the guide I changed the default to 'userspace' and added support for the other governers. I added these as modules because I wasn't sure at this stage which one I wanted to use.
I added support for all CPUFreq processor drivers as modules, with the intention of compiling support into the kernel when I'd later found which module worked.
The guide mentioned that I should not use "Intel Pentium 4 clock modulation" on a Pention M system because it could lead to strange results, so I disabled it.
Power management options (ACPI, APM) ---> CPU Frequency scaling ---> [*] CPU Frequency scaling [ ] Enable CPUfreq debugging <M> CPU frequency translation statistics [ ] CPU frequency translation statistics details Default CPUFreq governor (userspace) ---> <*> 'performance' governor <M> 'powersave' governor --- 'userspace' governor for userspace frequency scaling <M> 'ondemand' cpufreq policy governor <M> 'conservative' cpufreq governor --- CPUFreq processor drivers <M> ACPI Processor P-States driver <M> AMD Mobile K6-2/K6-3 PowerNow! <M> AMD Mobile Athlon/Duron PowerNow! <M> AMD Opteron/Athlon64 PowerNow! <M> Cyrix MediaGX/NatSemi Geode Suspend Modulation <M> Intel Enhanced SpeedStep [*] Use ACPI tables to decode valid frequency/voltage pairs [ ] Built-in tables for Banias CPUs <M> Intel Speedstep on ICH-M chipsets (ioport interface) <M> Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface) < > Intel Pentium 4 clock modulation <M> nVidia nForce2 FSB changing <M> Transmeta LongRun
When I came to set up CPU frequency scaling, after installing cpufrequtils, /sys/devices/system/cpu/cpu0/ remained empty and cpufreq-info returned an error message.
No or unknown cpufreq driver is active on this CPU.
This turned out to be because I'd compiled the CPUFreq governers as modules and I'd not loaded any of them! modprobe speedstep_centrino fixed the problem and populated /sys/devices/system/cpu/cpu0/ (as recommended by a Gentoo Forums post [Howto] Power Management for your laptop using ACPI (local copy here)). I made this permanent by adding speedstep_centrino to a line in /etc/modules.autoload/kernel-2.6.
The list of available CPU frequency scaling governers is given in the file /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors.
localhost ~ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors powersave ondemand userspace performance
Note: The use of userspace CPU frequency governers with Intel SpeedStep was mentioned in a lot of articles. One good article about Intel SpeedStep and the ondemand governer is Enhanced Intell SpeedStep Technology and Demand-Based Switching on Linux (local copy here).
Now that cpufreq-info was working properly I continued with the guide, installing and configuring cpufreqd.
Note: I had to install x86info with emerge -av x86info in order to monitor the CPU speed with watch x86info -mhz, because watch grep \"cpu MHz\" /proc/cpuinfo didn't update.
LCD power management
Configured as per guide, of course ignoring the IBM-specific instructions.
Disk power management
Because the laptop has SATA disks, I could not use hdparm because of it's limited support for SATA disks. Instead I installed cpudyn to spin down the disk after 120 seconds. Despite a potential conflict with cpufreqd, inspection of the CPU frequencies with watch x86info -mhz showed that they were still changing according to demand.
Note: I initially attempted to use hdparm, according to the Gentoo Wiki HOWTO Use hdparm to improve IDE device performance (local copy here), however hdparm -i /dev/sda failed with HDIO_GET_IDENTITY failed: Inappropriate ioctl for device. The troubleshooting section of the guide revealed that htparm has limited support for SATA drives but that querying basic info (and benchmarking) should work. It also states that SATA drives are generally set up automagically to use most of the decent settings. blktool is suggested as an alternative to hdparm, but it's ebuild is masked so I didn't install it.
Benchmarking the hard disk performance with hdparm revealed that the performance for cached reads was good (> 1000 MB/sec) but bad for buffered reads (< 50 MB/sec). I'll leave this for the time being because I'm not sure whether hdparm is a reliable tool for benchmarking SATA disks, particularly because of the HDIO_DRIVE_CMD errors it returns.
localhost ~ # hdparm -tT /dev/sda /dev/sda: Timing cached reads: 3804 MB in 2.00 seconds = 1901.34 MB/sec HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device Timing buffered disk reads: 108 MB in 3.03 seconds = 35.66 MB/sec HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device
Power Management for other devices
Followed the guide to make the wireless LAN card power off 3 seconds after traffic stops. In the scripts, I changed every occurrence of wlan0 to eth0 because my wireless card is eth0.
The script doesn't work properly when activating power management. wfconfig eth0 power on gives the same error but wfconfig eth0 power off doesn't!
Error for wireless request "Set Power Management" (8B2C) : SET failed on device eth0 ; Operation not supported.
Sleep states: sleep, standby, suspend to disk
I didn't configure any support for sleep states because it's still experimental.
CD and DVD writing | Go to top
Burning a CDR
cdrecord: Warning: Running on Linux-2.6.12-gentoo-r10 cdrecord: There are unsettled issues with Linux-2.5 and newer (...) Warning: Open by 'devname' is unintentional and not supported (...) (A few messages about not supporting DVD-R/DVDRW and installing cdrecord-ProDVD) (...) cdrecord: DMA speed too slow (OK for 8x). Cannot write at speed 24x. cdrecord: Max DMA data speed is 8. cdrecord: Try to use 'driveropts=burnfree'.
Trying again with the driveropts flag worked, but it wrote very slowly with a new message about the writing speed instead of the driveropts message.
localhost ~ # cdrecord dev=/dev/hdc /tmp/image.iso driveropts=burnfree (...) cdrecord: DMA speed too slow (OK for 8x). Cannot write at speed 24x. Starting to write CD/DVD at speed24x in real TAO mode for single session.
Burning a DVDR
To burn a DVD you could install dvdrtools, but because it is blocked by cdrtools I opted to use cdrecord-ProDVD. Install it with emerge -av cdrecord-prodvd.
cdrecord-ProDVD dev=/dev/hdc /tmp/image.iso fails with a message about support being limited without a key.
cdrecord: Warning. Running on Linux-2.6.12-gentoo-r10 cdrecord: There are unsettled issues with Linux-2.5 and newer. (...) Warning: Open by 'devname' is unintentional and not supported. (...) cdrecord-ProDVD: This version of cdrecord limits DVD-R/DVD-RW support to -dummy or 1GB real (...) (can get free keys from author). (...) Supported modes: Packet SAO cdrecord-ProDVD: Drive does not support TAO recording. cdrecord-ProDVD: Illegal write mode for this drive.
Using the -sao flag solved the problem and the DVD burnt ok. cdrecord-ProDVD -sao dev=/dev/hdc /tmp/image.iso driveropts=burnfree. Note that the driveropts flag is needed to prevent the previous errors (see above, the Burning a CDR section).
Note: You could use growisofs to burn DVDs instead of cdrecord-ProDVD (it's provided by the dvd+rw-tools package). This could be a better option because cdrecord-ProDVD is non-GPL and you've got to register it for full support.
Burning a DVDRW (data only) / Packet writing
Kernel 2.6 supports writing to a UDF file system if compiled in. Because I'd earlier configured the kernel according to the (see above note), my kernel had support for packet writing and the UDF file system.
Device Drivers ---> Block devices ---> <*> Packet writing on CD/DVD media (8) Freebuffers for data gathering [ ] Enable write caching File systems ---> CD-ROM/DVD Filesystems ---> <*> UDF file system support
As mentioned in the post, because mounting a DVD as writable costs a superblock and the DVD is useless when it's 1000 superblocks are gone, you should mount read only unless you're definately going to write data. To allow this I added 4 new lines to /etc/fstab and created the mount points as appropriate.
/dev/hdc /mnt/cdr auto noauto,noatime,ro,user 0 0 /dev/hdc /mnt/cdrw udf noauto,noatime,unhide,rw,user 0 0 /dev/hdc /mnt/dvd auto noauto,noatime,ro,user 0 0 /dev/hdc /mnt/dvdrw udf noauto,noatime,unhide,rw,user 0 0
GUI CD/DVD writing
I installed xcdroast with emerge -av xcdroast. When running the emerge I noticed the -dvdr flag, so I cancelled it and added dvdr to the USE flags in /etc/make.conf before emerging again.
Running xcdroast returned and error message because of a problem with cdrecord-ProDVD.
localhost ~ # xcdroast ** (xcdroast:11589): WARNING **: Invalid cdrecord-ProDVD version 2.01.01a01 found. Expecting at least version 2.01a11 Start xcdroast with the -n option to override (not recommended!)
According to information in the xcdroast web site, xcdroast won't accept the new cdrecord-ProDVD version numbering scheme. You can run it successfully using the -n flag to prevent it checking version numbers. Doing this, with xcdroast -n, started xcdroast successfully. It correctly detected the DVD drive.
Starting to scan for devices... [ATAPI:0,0,0] HL-DT-ST DVDRAM GMA-4080N 0H35 Scan finished.
Note: xcdroast gives a warning that using an ATAPI device is not recommended because it will effect performance. This I ignored because I don't care much about writing speed.
Note: According to the Gentoo WIKI HOWTO Packet Writing on CD-RW (local copy here), xcdroast can not be used as anyone but root if using kernel >= 2.6.10. I can not validate this because I've not yet attempted to burn a CD/DVD as a normal user.
Synaptics touchpad | Go to top
I increased the max speed, min speed and acceleration values to speed up the touchpad. I also tried configuring circular scrolling by adding a couple of options, but this didn't work (see this Gentoo WIKI Talk:HARDWARE Synaptics Touchpad (local copy here) for the available trigger values). The SHMConfig option is needed to use syndaemon to prevent the touchpad working when typing (see below).
Section "InputDevice" (...) Option "MinSpeed" "0.18" Option "MaxSpeed" "0.36" Option "AccelFactor" "0.0300" (...) Option "CircularScrolling" "1" Option "CircScrollTrigger" "8" Option "SHMConfig" "on" EndSection
To prevent the touchpad working when typing I had to run syndaemon, which is provided by the synaptics package. To get this to start when X starts I had to add the script to /etc/X11/xinit/xinitrc.d/syndaemon. The -d flag runs syndaemon as a daemon process and -i0.3 sets the timeout to 0.3 seconds.
localhost ~ # mkdir /etc/X11/xinit/xinitrc.d localhost ~ # echo "syndaemon -d -i0.3" > /etc/X11/xinit/xinitrc.d/syndaemon localhost ~ # chmod a+x /etc/X11/xinit/xinitrc.d/syndaemon
Bluetooth | Go to top
hcitool scan detected my mobile phone and l2ping [mac address] .
Note: Remember to press the bluetooth button on the front of the laptop before configuring bluetooth, otherwise the device will not be turned on. You'll have to restart bluetooth after doing so with /etc/init.d/bluetooth restart.
Since bluetooth was now working, I added bluetooth to the USE flags in /etc/make.conf.
I installed wammu so I could manage the content of my mobile phone (emerge -av wammu). At first it didn't start properly, with the message ImportError: No module named wx. Adding /usr/lib to the PYTHONPATH environment variable fixed the problem. This could be made permanent by adding the path to a Gentoo environment file in /etc/env.d.
localhost ~ # echo "PYTHONPATH=\"/usr/lib\"" > /etc/env.d/99pythonpath localhost ~ # etc-update Scanning Configuration files... Exiting: Nothing left to do; exiting. :) localhost ~ # source /etc/profile
Once the PYTHONPATH was set correctly, wammu ran without a problem, but I haven't figured out how to connect to the phone using bluetooth or even if it's possible!
Ethernet | Go to top
To create a network init script for the ethernet controller, I copied the net.eth0 script to net.eth1.
localhost ~ # cd /etc/init.d localhost ~ # cp net.eth0 net.eth1
Because there is no configuration for eth1 in /etc/conf.d it defaults to trying to configure itself using DHCP. So, because I've not installed DHCP yet, running /etc/init.d/net.eth1 start failed with the messages Cannot default to dhcp as there is no dhcp module loaded and No configuration for eth1.
I installed dhcp with emerge -av dhcp and, after connecting the laptop to my (wireless) router via an ethernet cable, running /etc/init.d/net.eth1 start assumed DHCP and successfully configured the connection.
Wireless | Go to top
The Gentoo WIKI HOWTO Wireless Configuration and Startup (local copy here) indicates that configuration is done using iwconfig. Linux on an Acer Travelmate 8104WLMi - Part I (local copy here) says that the ipw2200 package is needed, so I installed it with emerge -av ipw2200.
iwconfig will report no wireless extension for all network interfaces unless the ipw2200 module is loaded. You can load it with modprobe ipw2200 and make it permanent by adding it to /etc/modules.autoload.d/kernel-2.6 (note that I also added the led=1 switch as per Linux on an Acer Travelmate 8104WLMi - Part I (local copy here)).
With the ipw2200 module loaded, iwconfig recognises the wireless device as eth0. With the wireless button off, radio off is reported.
(...) eth0 radio off EESID:off/any (...) Bit Rate=0 kb/s Tx-Power=off (...)
With the radio button on and no wireless devices present, iwconfig shows eth0 as unassociated.
(...) eth0 unassociated EESID:off/any (...) Bit Rate=0 kb/s Tx-Power=20dBm (...)
With the radio button on and a wireless router present, iwconfig shows the details of the router.
(...) eth0 IEEE 802.11g EESID:"[router name]" Nickname:"[router name]" Mode:Managed Frequency:2.437 GHz Access Point: [mac address] Bit Rate=36 Mb/s Tx-Power=20 dBm (...)
Note: I didn't need to load the ieee80211 module, since lsmod showed it was already loaded.
Note: Remember to press the wireless button on the front of the laptop before configuring wireless, otherwise the device will not be turned on.
Once the wireless router was being properly detected, I removed all default configuration for iface_eth0 in /etc/conf.d/net. This will result in DHCP being used by default when eth0 is started.
Next I added the wirless configuration to /etc/conf.d/wireless as per the Gentoo WIKI HOWTO Wireless Configuration and Startup (local copy here). The extra essid_eth0 line prevents the interface scanning for available access points and picking up various neighbours unsecure ones.
essid_eth0="[router name]" key_[router name]="[wep key] enc open" preferred_aps=( "[router name]" )
Restarting eth0 with /etc/init.d/net.eth0 restart now connects to the router and defaults to configure everything using DHCP.
PCMCIA (PC card, smartcard and 4-in-1 card reader) | Go to top
PCMCIA support is needed for the PC card, the smartcard and I'd guess the 4-in-1 card reader too.
Probably the best resources to read are the Linux PCMCIA HOWTO from The Linux Documentation Project and the pcmcia-cs homepage on Sourceforge. I have not actually installed a smart card or PC card yet because the only one I've got is a NIC (Network Interface Controller) which I've no use for. However, I believe I've got the system sufficiently configured for when I come to use the functionality, with hopefully only loading an additional module or two required to get a PC card or smartcard working.
My kernel was already configured for PCMCIA support, with most of it compiled as modules.
Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> PCCARD (PCMCIA/CardBus) support ---> <*> PCCard (PCMCIA/CardBus) support
16-bit PCMCIA support [*] 32-bit CardBus support --- PC-card bridges CardBus yenta-compatible bridge support Cirrus PD6729 compatible bridge support i82092 compatible bridge support i82365 compatible bridge support Databook TCIC host bridge support
I installed the pcmcia-cs package with emerge -av pcmcia-cs. This provides the cardctl and cardmgr programs, used for querying and controlling the PCMCIA device.
Without the pcmcia module loaded, cardctl status returns no pcmcia driver in /proc/devices. After loading the pcmcia module (with modprobe pcmcia) cardctl status shows that there are 3 sockets, which I would guess are for the PC card, the smart card and the 4-in-1 card reader. Without any cards in the slots, cardctl status shows that a card is loaded in socket 2 despite the fact no cards are inserted (I even tried removing the plastic thingy that sits in the PC card slot, with no difference).
Socket 0: no card Socket 1: no card Socket 2: 5V 16-bit PC Card function 0: [ready]
With a PC card inserted, cardctl status shows the card in socket 0, so evidentally socket 2 isn't the PC card slot.
Socket 0: 3.3V CardBus card function 0: [ready] Socket 1: no card Socket 2: 5V 16-bit PC Card function 0: [ready]
The manual also suggests that the card residing in Socket 2 is the O2Micro Smartcardreader, which is not supported under Linux. Presumably it's talking about the 4-in-1 card reader, because the overall impression I got from a number of different resources was that the smartcard reader could be configured to work but that the 4-in-1 card reader could not.
PCMCIA network interface controller
I've not actually set up my PCMCIA NIC because the speed and proximity of my wireless network is such that I'd not get any benefit from doing so. However, for future reference the Gentoo WIKI seems to have a nice guide: HARDWARE PCMCIA NIC.
4-in-1 card reader
lspci shows that my card reader is made by O2 Micro.
(...) 0000:06:09.0 CardBus bridge: O2 Micro, Inc. OZ711M3/MC3 4-in-1 MemoryCardBus Controller 0000:06:09.1 CardBus bridge: O2 Micro, Inc. OZ711M3/MC3 4-in-1 MemoryCardBus Controller 0000:06:09.2 System peripheral: O2 Micro, Inc. OZ711Mx 4-in-1 MemoryCardBus Accelerator 0000:06:09.3 CardBus bridge: O2 Micro, Inc. OZ711M3/MC3 4-in-1 MemoryCardBus Controller (...)
Unfortunately, as far as I can determine, O2 Micro have not released the required firmware for Linux so you can't use it. This is said by the HARDWARE Gentoo Acer Travelmate 803LCi Manual (local copy here) and by the only other resource I could find with information about the O2 Micro 4-in-1 card reader: HARDWARE Gentoo Fujitsu Stylistic ST5010 Manual (local copy here).
Summary | Go to top
All in all I'm happy with the installation. I've got support for everything I need at the moment, except the 4-in-1 card reader. I'll just have to swallow my pride and periodically boot into Windows to back up the cards. At some point I'll try to get graphics acceleration going so I can see how good the card is and maybe try some games, but that can wait.
Appendix: Hardware details | Go to top
localhost ~ # fdisk -l /dev/sda Disk /dev/sda: 100.0 GB, 100030242816 bytes 255 heads, 63 sectors/track, 12161 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 383 3076416 12 Compaq diagnostics /dev/sda2 * 384 2341 15727635 c W95 FAT32 (LBA) /dev/sda3 2342 3646 10482412+ c W95 FAT32 (LBA) /dev/sda4 3647 12161 68396737+ f W95 Ext'd (LBA) /dev/sda5 3647 3654 64228+ 83 Linux /dev/sda6 3655 3915 2096451 82 Linux swap / Solaris /dev/sda7 3916 12161 66235963+ 83 Linux
Hardware - lshw
PCI - lspci
localhost ~ # lspci 0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03) 0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03) 0000:00:1b.0 Class 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04) 0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 04) 0000:00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 04) 0000:00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 04) 0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04) 0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04) 0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04) 0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04) 0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04) 0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4) 0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04) 0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 04) 0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04) 0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE) 0000:06:03.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05) 0000:06:06.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03) 0000:06:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) 0000:06:09.0 CardBus bridge: O2 Micro, Inc. OZ711M3/MC3 4-in-1 MemoryCardBus Controller 0000:06:09.1 CardBus bridge: O2 Micro, Inc. OZ711M3/MC3 4-in-1 MemoryCardBus Controller 0000:06:09.2 System peripheral: O2 Micro, Inc. OZ711Mx 4-in-1 MemoryCardBus Accelerator 0000:06:09.3 CardBus bridge: O2 Micro, Inc. OZ711M3/MC3 4-in-1 MemoryCardBus Controller
localhost ~ # lsmod Module Size Used by ipv6 263168 6 cpufreq_ondemand 6172 0 cpufreq_powersave 1728 1 snd_seq 55504 0 snd_seq_device 8716 1 snd_seq snd_pcm_oss 53728 0 snd_mixer_oss 19968 1 snd_pcm_oss parport_pc 41604 0 parport 38344 1 parport_pc rtc 9876 0 yenta_socket 23560 1 rsrc_nonstatic 13568 1 yenta_socket tg3 101316 0 i2c_i801 8780 0 i2c_core 22544 1 i2c_i801 intel_agp 23452 1 agpgart 36552 1 intel_agp joydev 9792 0 ipw2200 182408 0 ieee80211 49156 1 ipw2200 ieee80211_crypt 6856 2 ipw2200,ieee80211 speedstep_centrino 6036 1 freq_table 4484 1 speedstep_centrino dm_mirror 23764 0 dm_mod 60604 1 dm_mirror sbp2 24968 0 ohci1394 36468 0 ieee1394 106360 2 sbp2,ohci1394 sl811_hcd 13888 0 usb_storage 76416 0 usbhid 46304 0 ehci_hcd 33800 0
Appendix: Link dump | Go to top
A dump of *most* resources I read, in no real order. For my future reference apart from anything else.
- ACPI: Advanced Configuration and Power Interface
- Battery Powered Linux Mini-HOWTO
- ACPI - Gentoo Linux Wiki
- ACPI for Laptops (battery status...)
- HOWTO: Fix Common ACPI Problems (DSDT, ECDT, etc.)
- ACPI DSDT in initrd
- Linux on an Acer Travelmate 8104WLMi - Part I
- Gentoo Linux Use Variable Descriptions
- ACPI woes
- ACPI works in Knoppix but not in Gentoo [SOLVED]
- n00b!: help with kernel configuration
- HOWTO Automatically turn off your monitor
- Battery Powered Linux Mini-HOWTO - 3. Power Management Methods
- How to make use of Dynamic Frequency Scaling
- How to make use of Dynamic Frequency Scaling - Using Frequency Scaling Governors
- HARDWARE Gentoo Acer Travelmate 803LCi Manual - Compiler Flags
- HARDWARE Gentoo Acer Travelmate 803LCi Manual - Hardware Sensors
- Gentoo Linux Documentation - Power Management Guide
- CpuFreq not working
- Enhanced Intell SpeedStep Technology and Demand-Based Switching on Linux
- Acer TravelMate 4001WLMi
- How to prolong lithium-based batteries
- The DELL Latitude D610 Thread
- Another Cool&Quiet question
- HARDWARE Synaptics Touchpad
- [Howto] Power Management for your laptop using ACPI
- BalaBIT IT - syslog-ng
- HOWTO Fix Common ACPI Problems
- ACPI4Linux - DSDT: Overview
- Acer TravelMate 8100 Series
- Acer Utilities, software and tools - BIOS Update Tools
- Bugzilla Bug 161892 \u2013 Noisy ACPI: Z00G
- Debugging the DSDT of Acer Aspire 1694WLMi, Bios 3C25
- Intel® PRO/Wireless 2200BG Driver for Linux
- HOWTO Packet Writing on CD-RW
- Authoring a DVD with menus
- DVDRTOOLS - DVDRECORD
- DVD+RW/+R/-R[W] for Linux
- HOWTO Create a DVD:Filesystem
- HOWTO Create a DVD:Burn
- TIP Gentoolkit
- X-CD-Roast 0.98
- HOWTO ATAPI CD Burning
- Kernel SCSI emulation for CD burning - the truth
- Linux | CDRW Setup
- The definitive guide to CD writing on recent 2.6 kernels
- HOWTO: Easily make a full system backup (stage4)
- HOWTO Backup
- DVD+/-RW writing without packet writing
- DVD Formats Explained
- DVD+/-RW writing without packet writing
- burning DVD's
- The X Window User HOWTO - 3. Running X
- gdm - Configuration
- Gentoo Linux Bluetooth Guide
- HARDWARE Gentoo Fujitsu Stylistic ST5010 Manual
- HARDWARE Gentoo Acer Travelmate 803LCi Manual
- Gentoo Linux on a Dell Latitude D500 - PCMCIA
- Gentoo Linux on the Dell Inspiron 5150
- Debian GNU/Linux on the Acer Ferrari 3400 LMi - (10) Card Reader
- Using a USB Card Reader in Linux
- Gentoo Linux USB Guide
- Gentoo GNU/Linux x86/amd64 on an Acer Aspire 1522WLMi
- TIP Linux Colors in Aterm/rxvt
- How to use the Winbond W83L518D or W83L519D based builtin cardreader in some Laptop models with your Linux
- MUSCLE - Linux Smart Card Development
- [linux-laptop] About Card Reader O2 Micro
- HOWTO Use hdparm to improve IDE device performance
- Synaptics TouchPad driver for XOrg/XFree86
- HOWTO Wireless Configuration and Startup
- Gentoo Linux ALSA Guide
- HOWTO Gentoo on laptops - Infrared port
- Linux Infrared HOWTO
- Gammu phone database
- [HOWTO] Install bluetooth +Nokia 6230
- [HOWTO] Install bluetooth +Nokia 6230