Table of Contents
List of Tables
This document describes my efforts to install a Gentoo Linux on my Acer Travelmate 6003LCi Laptop.
My normal computer is running a SuSE Linux 9.0, and so the Gentoo is my first "hand-compiled" system. It took me 3 weeks to get the base system running for everyday use - but remember, it was my first gentoo. In this time, I've learned a lot about the linux system in general and in-depth looks into a number of applications and tools.
As I'm using the 2.6.7 kernel, all settings refer to this one.
The offical specs can be found at the Acer page.
Table 2.1. "Working hardware" sheet
CPU + speedstep | working |
Display (15"@1400x1050) | working (except framebuffer) |
Second display | working |
TV-Out | NOT working |
DVI output | untested |
DVD/CD-Recorder | working |
Gigabit Ethernet | working |
Wireless lan | working |
Modem | working |
Firewire | working |
USB 2.0 | working |
IrDA | working |
LIRC | NOT working |
Sound | working |
Keyboard | working |
Touchpad | working |
Smartcard reader | working |
PCMCIA | working |
4-in-1 card reader | NOT working |
Here the output of some programs:
lspci
0000:00:00.0 Host bridge: Intel Corp.: Unknown device 3580 (rev 02) 0000:00:00.1 System peripheral: Intel Corp.: Unknown device 3584 (rev 02) 0000:00:00.3 System peripheral: Intel Corp.: Unknown device 3585 (rev 02) 0000:00:02.0 VGA compatible controller: Intel Corp.: Unknown device 3582 (rev 02) 0000:00:02.1 Display controller: Intel Corp.: Unknown device 3582 (rev 02) 0000:00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 03) 0000:00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 03) 0000:00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 03) 0000:00:1d.7 USB Controller: Intel Corp. 82801DB USB 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.: Unknown device 24cc (rev 03) 0000:00:1f.1 IDE interface: Intel Corp.: Unknown device 24ca (rev 03) 0000:00:1f.3 SMBus: Intel Corp. 82801DB SMBus (rev 03) 0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio (rev 03) 0000:00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem (rev 03) 0000:02:02.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705 Gigabit Ethernet (rev 03) 0000:02:04.0 Network controller: Intel Corp.: Unknown device 4220 (rev 05) 0000:02:06.0 CardBus bridge: O2 Micro, Inc.: Unknown device 7223 0000:02:06.1 CardBus bridge: O2 Micro, Inc.: Unknown device 7223 0000:02:06.2 System peripheral: O2 Micro, Inc.: Unknown device 7110 0000:02:06.3 CardBus bridge: O2 Micro, Inc.: Unknown device 7223 0000:02:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
lshw (I cut some unnecessary things):
bogo description: Computer product: TravelMate 6000 vendor: Acer version: Rev 1 capabilities: smbios-2.31 dmi-2.31 *-core description: Motherboard product: TravelMate 6000 vendor: Acer *-firmware description: BIOS vendor: ACER version: 3A14 (04/20/2004) size: 107KB capacity: 448KB capabilities: isa pci pcmcia pnp apm upgrade shadowing escd cdboot int13floppy720 int5printscreen int9keyboard int14serial int17printer acpi usb agp smartbattery biosbootspecification *-cpu description: CPU product: Intel(R) Pentium(R) M processor 1600MHz vendor: Intel Corp. version: 6.9.5 size: 1600MHz capacity: 1600MHz clock: 400MHz capabilities: fpu fpu_exception wp vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe tm2 est *-cache:0 description: L1 cache slot: L1 Cache size: 32KB capacity: 32KB capabilities: asynchronous internal write-back *-cache:1 description: L2 cache slot: L2 Cache size: 1MB capacity: 1MB capabilities: burst external write-back *-memory description: System Memory slot: System board or motherboard size: 512MB capacity: 3GB *-bank:0 description: DIMM SRAM Synchronous 333 MHz (3.0 ns) size: 256MB clock: 333MHz (3.003ns) *-bank:1 description: DIMM SRAM Synchronous 333 MHz (3.0 ns) size: 256MB clock: 333MHz (3.003ns) *-pci description: Host bridge product: 82852/855GM Host Bridge vendor: Intel Corp. clock: 33MHz *-system:0 UNCLAIMED description: System peripheral product: 855GM/GME GMCH Memory I/O Control Registers vendor: Intel Corp. capabilities: bus_master *-system:1 UNCLAIMED description: System peripheral product: 855GM/GME GMCH Configuration Process Registers vendor: Intel Corp. capabilities: bus_master *-display:0 description: VGA compatible controller (VGA) product: 82852/855GM Integrated Graphics Device vendor: Intel Corp. logical name: /dev/fb0 size: 128MB clock: 33MHz capabilities: vga bus_master cap_list fb configuration: depth=8 frequency=76.65Hz mode=1280x1024 visual=pseudocolor xres=1280 yres=1024 *-display:1 UNCLAIMED description: Display controller product: 82852/855GM Integrated Graphics Device size: 128MB clock: 33MHz capabilities: bus_master cap_list *-usb:0 description: USB Controller (UHCI) product: 82801DB USB (Hub #1) vendor: Intel Corp. capabilities: uhci bus_master configuration: driver=uhci_hcd *-usb:1 description: USB Controller (UHCI) product: 82801DB USB (Hub #2) *-usb:2 description: USB Controller (UHCI) product: 82801DB USB (Hub #3) *-usb:3 description: USB Controller (EHCI) product: 82801DB USB EHCI Controller vendor: Intel Corp. clock: 33MHz capabilities: ehci bus_master cap_list configuration: driver=ehci_hcd *-pci description: PCI bridge (Normal decode) product: 82801BAM/CAM PCI Bridge vendor: Intel Corp. physical id: 1e clock: 33MHz capabilities: pci normal_decode bus_master *-network:0 DISABLED description: Ethernet controller product: NetXtreme BCM5705 Gigabit Ethernet vendor: Broadcom Corporation logical name: eth0 clock: 66MHz capabilities: bus_master cap_list mii autonegotiation 100bt-fd 100bt 10bt-fd 10bt ethernet physical configuration: broadcast=yes driver=tg3 driverversion=3.6 link=no multicast=yes *-network:1 description: Network controller product: Intel Corp. capabilities: bus_master cap_list configuration: driver=w22n51.sys *-pcmcia:0 UNCLAIMED description: CardBus bridge product: O2 Micro, Inc. vendor: O2 Micro, Inc. capabilities: pcmcia bus_master cap_list *-pcmcia:1 UNCLAIMED description: CardBus bridge product: O2 Micro, Inc. vendor: O2 Micro, Inc. capabilities: pcmcia bus_master cap_list *-pcmcia:2 UNCLAIMED description: CardBus bridge product: O2 Micro, Inc. vendor: O2 Micro, Inc. capabilities: pcmcia cap_list *-system UNCLAIMED description: System peripheral product: O2 Micro, Inc. vendor: O2 Micro, Inc. capabilities: cap_list *-firewire UNCLAIMED description: FireWire (IEEE 1394) (OHCI) product: TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) vendor: Texas Instruments capabilities: ohci bus_master cap_list *-isa UNCLAIMED description: ISA bridge product: 82801DBM LPC Interface Controller vendor: Intel Corp. capabilities: isa bus_master *-ide description: IDE interface product: 82801DBM (ICH4) Ultra ATA Storage Controller vendor: Intel Corp. configuration: driver=PIIX IDE *-ide:0 *-disk description: ATA Disk product: IC25N040ATMR04-0 vendor: Hitachi bus info: ide@0:master logical name: /dev/hda version: MO2OAD4A size: 37GB capacity: 37GB capabilities: ata dma lba iordy smart security pm apm configuration: apm=off mode=udma5 smart=on *-ide:1 description: Channel 1 logical name: ide1 *-cdrom description: DVD reader product: QSI CD-RW/DVD-ROM SBW242C logical name: /dev/hdc capabilities: atapi cdrom removable nonmagnetic dma lba iordy audio cd-r cd-rw dvd configuration: mode=udma2 *-serial UNCLAIMED description: SMBus product: 82801DB SMBus vendor: Intel Corp. *-multimedia description: Multimedia audio controller product: 82801DB AC'97 Audio vendor: Intel Corp. capabilities: bus_master cap_list configuration: driver=Intel ICH *-communication description: Modem (Generic) product: 82801DB AC'97 Modem vendor: Intel Corp. capabilities: generic bus_master cap_list configuration: driver=Intel ICH Modem *-network description: Ethernet interface logical name: wlan0 capabilities: ethernet physical configuration: broadcast=yes ip=xxx.xxx.xxx.xxx multicast=yes
The pentium mobile supports "speedstepping" which means that you can throttle it to save power. To activate it, just enable the following options:
Power management options (ACPI, APM) ---> CPU Frequency scaling ---> CPU Frequency scaling Default CPUFreq governor (userspace) 'performance' governor 'powersave' governor CPU frequency table helpers Intel Enhanced SpeedStep
Now you can control the speed of your cpu like this:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
sets the processor to the minimum of 600MHz and
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo 1600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
sets it to the maximum of 1.6GHz.
Together with ACPI it is a real power saver: If my laptop is on battery, it runs with 600MHz, and as I plug in the cable, it instantly switches to 1.6GHz. For this I wrote some small scripts:
In /etc/acpi/default.sh
I defined the action
for the battery switch:
battery) /scripts/switchspeed ;;
with the /scripts/switchspeed
being the
following:
#!/bin/sh batstate="`/scripts/battery-cable`" if [ $batstate == "cable" ] ; then /scripts/cpumax echo "CPU@performance - we're on cable" logger "CPU@performance - we're on cable" else /scripts/cpumin echo "CPU@minimum - we're on battery" logger "CPU@minimum - we're on battery" fi
The /scripts/battery-cable
checks if we are on
cable or on battery:
#!/bin/sh echo `cat /proc/acpi/ac_adapter/ACAD/state | sed s/^.*off.*$/battery/ | sed s/^.*on.*$/cable/`
I know that there is a predefined battery-script in
/etc/acpi
, but I noticed that too late... ;)
Now my laptop runs approx. 5 hours on battery, and the longest time (I forgot to plug in the cable over night) at university was 4 whole lectures (6 hours), but with closing the lid everytime there was nothing to write... And without wlan and such things.
Table of Contents
The biggest problem with the graphics display is that the BIOS lacks the information that it can display 1400x1050 - only 1280x1024 and 1600x1200 is there. That's the reason the framebuffer can't be run with the native resolution and the BIOS has to be patched with 855resolution before starting X.
I contacted Acer on 2004-11-20, complaining about that problem and asking them to provide a fully functional BIOS. Two weeks later the answer is there; Acer refuses to provide a new BIOS because the pre-installed operating system (Windows) works ok with it. That's all, they won't support non-ms people.
The display supports a SXGA+ resolution of 1400x1050 pixels. I've spent a time trying to run the framebuffer at this resolution, but failed - now it runs at 1280x1024.
The grub setting for this resolution is just a
vga=775
so that the grub conf looks like this:
default 1 timeout 1 title=Gentoo kernel 2.6.4 root (hd0,0) kernel /kernel-2.6.4-gentoo root=/dev/hda3 vga=775 title=Gentoo kernel 2.6.7 root (hd0,0) kernel /kernel-2.6.7-gentoo root=/dev/hda3 vga=775
That was a very hard one: The BIOS says that 1400x1050 is not supported, so XFree doesn't recognize this as a possible resolution. The solution came with a tool called 855resolution, wich can be found at http://perso.wanadoo.fr/apoirier/. This patches the BIOS everytime the X display manager is started (patch is not permanent). All you need to do is:
855resolution 5a 1400 1050
and all works. I embedded this in the xdm start script at
/etc/init.d/xdm
:
start() { setup_dm # run 855-script for intel graphics card in full 1400x1050 /scripts/855 # set the cpu to the right speed /scripts/switchspeed ...
The /scripts/855
just contains the
855resolution call. Another thing you see
here is the switchspeed script which changes
sets the CPU speed for battery and cable differently on boot.
Parts of my /etc/X11/XF86Config
looks like
this:
Section "InputDevice" Identifier "Keyboard1" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbRules" "xfree86" Option "XkbModel" "pc104" Option "XkbLayout" "de" Option "XkbVariant" "nodeadkeys" EndSection Section "InputDevice" Identifier "Touchpad" Driver "synaptics" Option "Protocol" "ImPS/2" Option "Device" "/dev/psaux" Option "LeftEdge" "1700" Option "RightEdge" "5300" Option "TopEdge" "1700" Option "BottomEdge" "4200" Option "FingerLow" "25" Option "FingerHigh" "30" Option "MaxTapTime" "180" Option "MaxTapMove" "220" Option "VertScrollData" "100" Option "MinSpeed" "0.06" Option "MaxSpeed" "0.12" Option "AccelFactor" "0.0010" Option "SHMConfig" "on" EndSection # USB-Mouse Section "InputDevice" Identifier "USBMouse" Driver "mouse" Option "Device" "/dev/usbmouse"I Option "Protocol" "IMPS/2" Option "ZAxisMapping" "4 5" EndSection Section "Monitor" Identifier "Acer Travelmate 6003LCi" HorizSync 28-65 VertRefresh 60 EndSection Section "Device" Identifier "Acer Travelmate 6003LCi" Driver "i810" EndSection Section "Screen" Identifier "Screen 0" Device "Acer Travelmate 6003LCi" Monitor "Acer Travelmate 6003LCi" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection EndSection Section "ServerLayout" Identifier "Simple Layout" Screen "Screen 0" InputDevice "Touchpad" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" InputDevice "USBMouse" "AlwaysCore" EndSection Section "DRI" Mode 0666 EndSection
The XFree mentioned above has been replaced with an X.org 6.8.2 server. All future documentation will refer to this one.
X.org provides a driver for Intel based graphics chipsets, the
i810
. Unfortunately, glxgears is somehow slow
(around 600fps), and I wanted to replace the X.org driver (which are
generally built for stability) with the one Intel provides on its
website.
They have two files for the driver:
dri-I915-v1.1-20041217.i386.rpm
i915Graphics.tar.gz
The first one didn't install, but as I don't like rpms on a
Gentoo box, I tried the driver compilation via the
install.sh
script in the tar.gz driver package.
It has a menu which guides you through the installation process.
However, compilation failed with the message:
Compiling new agpgart module... Compiling DRM module... ERROR: Kernel modules did not compile
The dri.log
then contained the following
lines:
make -f Makefile.linux DRM_MODULES=gdg.ko modules make[1]: Entering directory `/data/download/intel855/dripkg/drm' make -C /lib/modules/2.6.13/build SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules make[2]: Entering directory `/usr/src/linux-2.6.13' CC [M] /data/download/intel855/dripkg/drm/gdg_drv.o In file included from /data/download/intel855/dripkg/drm/gdg_drv.c:17: /data/download/intel855/dripkg/drm/drm_agpsupport.h:47: error: syntax error before '*' token ... (usual stuff which follows the first error)
I wrote to Intel support asking for help or an updated driver. The answer came one day later:
“The support we provide for Linux* is limited to providing drivers. For assistance in other support topics, please contact your Linux* vendor.”
They are telling me that they provide drivers, and if they don't work it's my problem? If they really mean this seriously, Intel just lost a customer.
The second display works fine if you attach the vga adaptor before booting the laptop. I had some presentations with beamers at 1400x1050 resolution; works like a charm.
If you connect the external vga adaptor later, you can change the display used for output with Fn+F5. If you do this, the upper third (640x480), the upper fourth (800x600) or the upper fifth (1024x768) of the screen is scrambled and not usable. The rest of the screen is moved down, so that you won't see your kicker (task bar). Perhaps that wouldn't be soo bad, but the mouse cursor uses the whole screen, so that you've got to click 50px above the button to activate it. Very annoying.
The screen stays scrambled even if you are back to "LCD only"-mode. Switch to a console and switch back to X, and it's nice again. No need for restarting X.
When using the "auto" BIOS mode and the second device attached while booting, only the second display is used.
The usable solution comes when using the "both" BIOS mode. The screen contents are on both screens, but the borders (approx 30px) are cut off. You can switch the resolution with krandrtray or whatever, but even at 1024x768 the borders are missing. But this mode can be used for presentations; I already did it.
If you are in "both" mode, DON'T use the Fn+F5 switch.
A notable thing is that you can drive your LCD at 1400x1050, for the second display it is downscaled. But that doesn't look nice.
There are two tools written for the i855 chipsets which allow switching the second crt on and off:
Connect the external vga before booting
This is a universal tool for all chipsets based on the i810 one, and the i855 belongs to that group. With the simple call
i810switch crt on
the second display gets active and displays even the 1400x1050 resolution (if the monitor supports it). Now it's pretty unusable as the picture flickers really bad. Try the next tool:
This program does the same as i810switch, but only for 855GM chipsets and with a different technique. Do a simple
./i855crt on 1024x768@85
and the second display works fine. 60Hz and 85Hz seem to be supported in every resolution, 70Hz not. Alas the 1400x1050 resolution does not work...
But with Ctrl+Alt+(plus|minus on
keypad)
you can shrink the resolution, but have the
virtual screen still on 1400x1050, meaning that you can scroll
your screen. The scrolling does not work on the second display;
the scroll position of the time the script has been executed is
kept.
The laptop has a DVI-D socket, which means that you can connect digital display only and have to use the second vga socket for analog devices.
Not tested - I don't own a display with DVI input.
There is a S-Video out at the back of the notebook. I tested it the same way as the second display, but the BIOS setting has no influence on the output. The screen contents are not shown, even not when booting.
If I use the Fn+F5 key kombination, screen and TV are totally distorted. And it works only in 640x480 and 800x600, other resolutions give no picture on the TV.
Table of Contents
I got all the networking things working; and they work well. Just the gigabit ethernet wasn't tested for full gigabit speed, cause I've got no gigabit switches around ;)
You just have to activate
Device Drivers --> Networking support --> Ethernet (1000 Mbit) --> Broadcom Tigon3 support
and it works like a charm.
I'm using the ipw2200 version 1.0.3, intels official linux wlan driver. It works like a charm - except that the orange LED at the laptop front does not work.
Before ipw2200 was usable, I used the ndiswrapper to use the windows driver. This had the advantage that the LED worked, but also caused the laptop to hang once a two days (windows drivers..).
Here is my wlan-startup script as it is not started during boot:
/sbin/modprobe ipw2200 /etc/racoon/setkey.conf /usr/sbin/racoon /usr/sbin/iwconfig wlan0 mode Managed /usr/sbin/iwconfig wlan0 nickname "bogo" /usr/sbin/iwconfig wlan0 key restricted ######################## /usr/sbin/iwconfig wlan0 essid "####################" /sbin/ifconfig wlan0 xxx.xxx.xxx.xxx broadcast xxx.xxx.xxx.255 netmask 255.255.255.0 /sbin/ifconfig wlan0 up /sbin/route add default gw xxx.xxx.xxx.xxx
The racoon is just for secure networking at my university, an you probably won't need it.
To shut it down, just make a
rmmod ipw2200
or press the wlan-button at the laptop front - this works nice.
Normally I don't need it, because my SuSE acts as a gateway, but I had some free hours and got it working (thanks to the gentoo forum thread http://forums.gentoo.org/viewtopic.php?t=129853.
In kernel 2.6.7 (perhaps also earlier) there is the option
Device Drivers ---> Sound ---> Advanced Linux Sound Architecture ---> PCI devices ---> Intel i8x0/MX440; AMD768/8111 modems (EXPERIMENTAL)
which gives you the basic drivers. After compiling this as a module, I changed the /etc/modules.d/alsa the following way:
alias snd-card-0 snd-intel8x0 alias snd-card-1 snd-intel8x0m ... options snd cards_limit=2
(just added the second card and set up the card limit). To use it, modprobe it:
modprobe snd_intel8x0m
Now
you need the slmodem application which gives
you the modem as a usable device at /dev/ttySL0
(http://www.smlink.com).
First I compiled the slmodem with
alsa support and the slmodemd always told
me "ALSA support is not compiled in". I didn't read the readme
carfully enogh; they said "cd modem
" which I
forgot...
Now just set up wvdail and pppd (see the gentoo forum thread for this), don't forget to disable carrier detection with
Carrier Check = no
in /etc/wvdail.conf
and live happy.
I had some with name resolution and although the access rights to
/etc/resolv.conf
had been set correctly, only root
could make a ping to cweiske.de, normal users
not. The wvdail or
pppd change the
resolv.conf
when the connection is established, and
only root can access this file... do a chmod
after the connection in your script, and you're done..
If you use a route on e.g. eth0
, it is
wise to shut this interface down before calling
wvdail.
The ALSA-sound works out of the box if you activate it in the kernel. You should add a
ALSA_CARDS="snd-intel8x0"
in your /etc/make.conf
before emerging the alsa
things.
To be able to have multiple applications playing sounds, I changed
the ~/.asoundrc
:
#/home/cweiske/.asoundrc pcm.ossmix { type dmix ipc_key 1021 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 8192 rate 48000 } bindings { 0 0 1 1 } } pcm.!default { type plug slave.pcm "ossmix" } pcm.dsp0 { type plug slave.pcm "ossmix" } ctl.mixer0 { type hw card 0 }
It is just a normal keyboard with some extra keys: Email, "World"
orwhatever, "P1" and "P2" as well as some audio keys (Fn+Up/Down/F8). "P1"
and "P2" don't generate any scancode. The other ones can be added to your
personal .Xmodmap
:
keycode 176 = XF86AudioRaiseVolume keycode 174 = XF86AudioLowerVolume keycode 160 = XF86AudioMute keycode 236 = XF86Mail keycode 178 = XF86WWW
Some words towards Acer: Although it's a relly nice laptop with a nice keyboard, the "<"-Key left to the RIGHT shift is a pain!
There is a driver called acerhk which gives you and me access to the buttons which don't generate scancodes. You just have to load the module and execute the following:
setkeycodes e074 89 setkeycodes e073 90 setkeycodes e025 91 setkeycodes e026 92 setkeycodes e027 93 setkeycodes e056 94 setkeycodes e055 95 setkeycodes e057 120 setkeycodes e058 121
When you have done this, you can extend the
.Xmodmap
file:
keycode 123 = XF86Launch1 keycode 128 = XF86Launch2 keycode 127 = XF86Support keycode 129 = XF86Option keycode 120 = XF86Standby keycode 225 = XF86Sleep keycode 139 = XF86LaunchA keycode 134 = XF86LaunchB keycode 131 = XF86LaunchC keycode 229 = XF86LaunchD
I know that it looks weird that the keycodes don't match, but X somehow rewrites them. Note that the sleep button (Fn+F4) can't be used.
Table of Contents
Although the settings are described in the Video/XFree section I use this place to tell you that you have to enable PS/2 support in the kernel!
I deactivated it because there are no PS/2-Ports at the laptop, but the touchpad needs it... It took me 2 days to figure this out.
Even the scrolling works in vertical AND horizontal direction...
If you have problems getting this to work (it does definitely work in Opera), start xev in a terminal. Move your mouse above the window and press the horizonal scroll buttons. You should get "ButtonPress" and "ButtonRelease" events. The third line tells you which button is recognized: Perhaps button 8 and 9? If yes, that's the source of your problem.
Normally, vertical scroll wheel is buttons 4 and 5, and the horizontal is 6 and 7. You can check the physical-virtual button assignment by executing xmodmap -pp and change it via
xmodmap -e 'pointer = 1 2 3 4 5 8 9 6 7 10 11 12'
This command swaps the assignments of the buttons 8 and 9, making them be reported as virtual buttons 6 and 7 - what I needed to make it work here.
Table of Contents
I recently bought an external harddisk for backups, using FireWire to connect it - as USB is too unstable for me. To use it, I need the following modules:
ieee1394
ohci1394
sbp2
I had some problems getting the drive to work, because you have to do all in a certain order:
Don't connect the disk/cable!
Load the three modules listed above in the given order
Connect the cable now
Do a cat /proc/scsi/scsi to see if something happened, or a classical dmesg
Mount the harddisk
Whenever I attached the cable (with powered harddrive) before loading the modules, I never got the disk working.
I also had another problem: Copying from the disk was incredible slow, taking about 20 minutes for 50Mib. A dmesg showed me the following lines:
Nov 1 23:18:33 bogo ieee1394: sbp2: aborting sbp2 command Nov 1 23:18:33 bogo scsi0 : destination target 0, lun 0 Nov 1 23:18:33 bogo command: cdb[0]=0x2a: 2a 00 00 01 00 d1 00 00 06 00 Nov 1 23:19:03 bogo ieee1394: sbp2: aborting sbp2 command
Everywhere those "aborting sbp2 command
" lines.
Searching the web for that string unveiled the solution: I need an extra
module parameter, serialize_io=1
. I added it to
/etc/modules.conf
, had no time to test it and came
back two weeks later with the same problem. What happened? The file had
been re-generated by modules-update, and my changes
were gone. This time I did it correctly and created a new file
/etc/modules.d/sbp2
, filling it with the following
line:
options sbp2 serialize_io=1 max_speed=2
After that I run modules-update causing the
modules.conf
to be regenerated, and since then my
disk works fine. I doubt that the max_speed=2
parameter is necessary, but I have no means to change it as it works
:)
The Acer support told me that the IrDA functions are on the
motherboard's LPC chip. The chip is called SIO
LPC47N227
.
Although I don't need it, this gave me more success feelings than lirc. Much more.
The basic thing is to enable IrDA support in the kernel
Device Drivers ---> Networking support ---> IrDA (infrared) subsystem support ---> IrLAN protocol IrNET protocol IrCOMM protocol Ultra (connectionless) protocol Infrared-port device drivers ---> IrTTY (uses Linux serial driver) IrPORT (IrDA serial driver) NSC PC87108/PC87338
and here my irda-up script:
/bin/setserial /dev/ttyS1 uart none /sbin/modprobe nsc-ircc io=0x2f8 irq=3 dma=1 /usr/sbin/irattach irda0
It just doesn't want to work. I've spent 5 whole days with this, and still doesn't work.
The port is recognized at startup when IrDA is activated in the BIOS:
# dmesg | grep tty ttyS1 at I/O 0x2f8 (irq = 3) is a NS16550A
On the smsc.com website they say, that Customer IR is supported... I'll try the smsc kernel drivers.
The Travelmate has 4 USB 2.0 ports. I am regulary using an USB mouse, and my Canon LiDe 30 scanner as well as the Lexmark Z65 work without any problems on the ports. I was even able to get access to a digital camera which I connected via the USB cable.
Table of Contents
I tested it with a PCMCIA network card, and it works fine. The smartcard reader is also recognized as such a device.
You need to enable the following things in the kernel:
Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> PCMCIA/CardBus support ---> PCMCIA/CardBus support CardBus yenta-compatible bridge support
I made them both as modules, and so I do a
modprobe pcmcia_core modprobe ds modprobe yenta_socket
to activate them. I'm not sure if I need the pcmcia-cs package from sourceforge, because cardctl and cardmgr were there before I installed it.
The card reader is made by O2Micro, and finally (2005-10-17) there is a working open source driver for it!
If you do a cardctl ident
you will see the
following output:
Socket 0: no product info available Socket 1: no product info available Socket 2: product info: "O2Micro", "SmartCardBus Reader", "V1.0" manfid: 0xffff, 0x0001
The driver can be found at the MUSCLE driver
page. I have kernel 2.6.13 with version 2.0.3 of the driver
running nearly without problems. Get the driver, unpack it, do the
./configure-release. Then modprobe the
yenta_socket
and then the newly installed
ozscrlx
module. Install the
sys-apps/pcsc-lite
gentoo package. Now start the
pcmcia and the pcscd daemons. Run the pcsc_scan
program and insert a smartcard - you will see the card ATR and perhaps
even the name of it.
Next thing I need to figure out is how to get gpg to store the keys on the card, and how to automatically log in into kdm when the smartcard is inserted. And if kwallet can store the passwords on the card. Unfortunately, gpg doesn't recognize the card or the driver has a bug - but the reader is recognized.
There shall be a windows tool which allows you to create the key and make the BIOS to require it while booting. So this _should_ work if you use the preinstalled windows, create the key, set the bios config with the tool and install Linux after all this. But since my first action was to remove windows, I don't have any chance to test this.
Between christmas and new year 2004, I bought an energy counter. You plug it into the socket and attach the desired device to it - and it displays which voltage, amperage, power etc. it uses.
The first thing I tested was my Travelmate here are the results:
Table 13.1. Power consumption of my Travelmate
Device | State | Consumption in Watt |
---|---|---|
AC adaptor | not plugged into laptop | 6 W |
connected with off-state laptop, not loading | 0 W | |
Laptop | loading, 1.6GHz | 37 W |
loading, 600MHz | 37 W | |
loaded, 1.6GHz | 32 W | |
loaded, 600MHz | 27 W | |
loaded, LCD off, 1.6GHz | 27 W | |
loaded, LCD off, 600MHz | 22 W |
The "loading" states were mesured when the battery was loaded about 50%. With increasing percentage (from 85 or so) the laptop uses less power, even when loading.
It seems not to make a difference if the machine is idle or compiling something - it uses the same power.
All in all: I never thought the laptop would consume so few power. My desk light needs 20W, and with 600MHz and LCD off the notebook is nearly equal.
For those who wonder: In Germany we have a voltage of 250V.
Table of Contents
Here is my experience with some other pieces of hardware I use together with my notebook.
Summary: Getting things to work on Linux isn't problematic in the most cases. There is plenty of help in the form of mailing lists and forums out there, and many problems have already been solved.
A growing number (but still too few) hardware producers support Linux, some tell they will in the near future, and others (very bad example: Canon) tell they haven't any drivers, and won't produce some in the near future. Please avoid buying products of this vendors, or at least nerve them with emails asking for Linux support. They can't ignore us forever.
This tool is a printer convenient for printing normal text and photos as well. Main problem was to get the right driver, as Cups doesn't have it by default.
Lexmark's US website provides some drivers for SuSE/Redhat 7.x, but they aren't really helpful as they don't work. Maybe it has something to do with the POSIX change problem, but who cares.
All you need is the "Z65.ppd" which is packed in the installer.
After copying it from /tmp/...
while the
installation program is crashing, you can use the KDE printer manager to
import the file while doing a new printer install. That's all, works
without problems.
Before the Linux driver had been released I emailed the (german) Lexmark support: They should provide a driver or exchange the printer with a one which is supported on Linux. They agreed to exchange it; but (un?)fortunately I found the driver on their US website and didn't need to send the printer. Anyway, it was a honest offer.
I would not recommend to buy any printer from Lexmark. They are a pain in the Popo to set up and get them working. Take an Epson instead.
A small flatbed scanner, works without problems using SANE.
Apart from getting it working by myself, I emailed Canon if they have Linux drivers for it. They replied with a standard email telling me that they develop drivers exclusive for Windows and Mac only. There may be drivers for Linux on the internet, but Canon doesn't support them and doesn't recommend their use.
As I don't have an in-built bluetooth module (resp. Acer charges 300€ for it), I use the USB dongle to connect the laptop with my mobile (Sony Ericsson T 630). To get it working, you just need the bluetooth modules in the kernel.
I can use the mobile connection to make calls, read the SMS list and sync the addressbook with kabc using kmobiletools. A small app called "btcid" displays incoming calls on the notebook's LCD (with name and number).
My girlfriend got it christmas 2004, and so I needed to get it working with my Linux. The "Digikam" frontend for libgphoto (UPT mode) makes a nice job transferring the pictures, but deleting is a pain - only every second picture gets deleted, and so deleting it via the camera built-in function is a lot faster. But that seems to be a bug in libgphoto, or in the camera. We'll see.
Transferring the pictures takes about 2 second per picture; a friend of mine told me that the windows version is really faster, transferring multiple pictures per second. I'll contact the libgphoto mailing list for the two problems.
When asking Canon for drivers (again; I think they're getting nerved :)) for the camera (as Windows and Mac discs were delivered with the cam), they replied with the same standard mail I got last time. Just this time a list with links for printer driver web pages for Linux was appended. Does my camera need a printer driver???
With the help of "logitech_applet", I am able to set the resolution of the mouse from 400 to 800dpi. Since I don't want to do this everytime I plug in the mouse by hand, an udev-rule comes to help: Just create the file /etc/udev/rules.d/10-user.rules and put in the following line (yes, it's one single line):
SYSFS{manufacturer}=="Logitech", SYSFS{product}=="USB-PS/2 Optical Mouse", NAME="input/%k", MODE="0644", RUN+="/usr/sbin/logitech_applet -s 800"
I found this at the Gentoo udev wiki entry.
This document has been written by Christian Weiske and is available at www.cweiske.de
Table 15.1. Version list
1.0 | 13.07.2004 | initial version |
1.1 | 15.07.2004 | PCMCIA, second display, tv-out, links |
1.2 | 25.08.2004 | second display is working |
1.21 | 02.09.2004 | PCMCIA has been tested, USB, extra keys |
1.22 | 07.12.2004 | second display works perfect; acer email answer arrived; ipw2200 is usable |
1.3 | 10.01.2005 | power consumption, additional hardware |
1.31 | 17.10.2005 | smartcard reader works (nearly) |
1.39 | 06.11.2005 | Firewire text, got the IDs right (have to set the id attributes at the section tag, not the title) |
1.40 | 24.11.2005 | Intel doesn't fix their drivers. |
I want to say thanks to a number of people whose documents helped me a lot:
Bernd Wurst with his article on the TM 800 |
Jan De Luyck and Linux on Acer TM 800 |
Gentoo support forums |
TuxMobil.org |
xmlmind.com for the nice docbook editor with which I'm writing this document now |
This document is licensed under a Creative Commons license.