Home Linux stuff

Adventures with an IBM T41 laptop and linux

Summary status: Its running, Fedora Core 2 + Linux 2.6.15.

Spec is 1400x1050 screen, 1.7G processor, 1G ram, 1G ethernet, 60G HDD, drive-bay CD-RW/DVD-R or battery option. I use fvwm2, so I have no idea how well gnome and all that stuff will work. If I wanted a horrible GUI desktop system, I'd use the bundled microsoft one.
X at 1400x1050
(single head)
Works
X dual headWorks with a suitable config file
Ultradev/touchpad/mouseWorks
EthernetWorks
SoundWorks
ModemWorks with slmodem, but there is a GPL license problem
WirelessWorks and does WEP/104 with the right s/w loaded! I think it will do WPA when I get organised
Special Function keysWork pretty well with the right software
IRdAWorks
APMWorks
Dual battery monitor in APMWorks with patch
Hot swap of DVD/BatteryDoes not work - I would appreciate any help
ACPINot happy on 2.6.5, not tested on 2.6.15
USB 2.0Broken (probably a generic IBM hardware problem)

Other things I've used/tried.
Loopback secure filesystem
(not the IBM chip)
Works
OpenswanWorks (with patch for freeS/Wan compatibility in 2.6.5)
Ratoc CB31 Ultra-SCSI CardbusWorks (with patch for autoload)
USB to RS232 adaptorsWorks

Latest updates come from updating kernel. This is getting to be an ever more painful exercise! I was on 2.6.5. (old notes). The change was motivated because I wanted the WPA Supplicant stuff on the ipw2100, which wont work on 2.6.5.. Sadly I spent so much time on the upgrade, that I have not actually tested it yet..

I'm not sure whats hapening in the linux kernel team, but from an outside perspective, in the 2.6 kernel tree there seems be be a gratuitous amount of interface changing going on. In a development kernel (ie 2.5/2.7) that would seem a reasonable thing to expect, but in a supposedly stable kernel it only serves to make support problems bigger and drive people away.

Getting back to where I started, took me about a week and a lot of work to track down the subtle things that moved in the kernel API.

At the end of the day, there are answers to all the questions (even if it means sitting down and debugging the problem in the source), its just some seem to take rather longer that you would like to find sme of them. Its so frustrating when stuff that worked, stops working. In trying to solve one minis issue, I created 6 more.

The things I need to re-build when time I change kernel are

I also need to re-apply the dual battery patch (tbd)

VMWARE

I was running a modified 2.6.5 kernel and vware 4.5.2 no problem. Upgrading to a newer kernel was painful, but in the end the answers were simple. In the process I installed the 4.5.3 vmware version too, though this didn't help.

The stock vmware-config.pl script fails (at least on 2.6.15).

Don't bother to look for a downloadable update or new build on the vmware site.. It ain't there.

The required answer is to find the updated vmmon/vmnet tar files elsewhere. The current (jan2006) update is vmware-any-any-update96.tar.gz. It is available at http://platan.vc.cvut.cz/ftp/pub/vmware/ and supposedly at http://knihovny.cvut.cz/ftp/pub/vmware/ and http://ftp.cvut.cz/vmware/

Application is easy

	tar -xzf vmware-any-any-update96.tar.gz
	cd 
	./runme.pl

It will patch and sort out your build. After that it builds fine and it all works fine.

Ultradev/touchpad/mouse

Oddly, changing kernel enabled taps on the touchpad. After about 1 hour of using the laptop I nearly threw it out the window. With taps enabled its just totally lethal. Every time you touch the touchpad to move the mouse, something unexpected happens (random weblinks clicked, things getting dragged and dropped and lost). How anyone lives with this is a total mystery to me!

tpconfig no longer seems to work for me. It used to be OK on my old Dell but it wont spot the touchpad on the T41.

What does work though is the X11 synaptics driver. I grabbed synaptics-0.14.4. Its dead easy to build and install. Then hack a few lines of magic into the /etc/X11/xorg.conf and sanity returns.

The minimum magic I needed to stop taps is

	Option "MaxTapTime" "0" 

Modem

A bit of a problem with slmodem... It works great, except there is a licensing problem. I did end up patching it a bit.

Sound

Sound stopped working or sound doesn't work. There seem to be quite a few reports of this on the net, but few clear answers.

It had always worked fine, out of the box on my old 2.6.5 kernel. However it was dead as a dodo in everything I tried I couldn't get a peep out of the speakers from any source. Sound is just another bit of linux thats obfuscated and hard to debug.

To get it working again, after many hours of frustration, turned out, as usual to be really simple

	amixer set 'Headphone Jack Sense' off
	amixer set 'Line Jack Sense' off
I got there playing with gamixer and a pair of headphones. Why changing the kernel did this I have no idea.

UA-3FX

I also have a nice little Edirol UA-3FX AD/DA USB device. It sorta works, mostly..

Useful tips, record from it with

    arecord -f cd -D plughw:1,0 -t wav file.wav
play to it with
    aplay -D plughw:1,0 file.wav
And set the switches on the back to "Advanced Driver: ON" Note that it needs plughw not hw. I have no idea why, or even how I managed to work that out..

xmms works fine Just go to the preferences window (mine appears in the menu as "Visualization plugins"), select the "Audio I/O Plugins" tab. Set the Output Plugin to "ALSA 1.2.10 output plugin [libALSA.so]", select configure and set the "Audio Device" to "plughw:1,0".
realplayer even plays to it if you get the right environment defines. Note that if the 3FX is your second audio device (ie plughw:1,0) then real will find it of you do

	export AUDIO=/dev/dsp1

I've not managed to persuade any version of audacity to play with it yet, but I recently heard from Aurelien Foret that to get audacity to work with plughw set
	$ export PA_ALSA_PLUG=1
before running audacity then just select hw:1,0 in the preferences dialogue. Apparently works for audacity>=1.3 compiled with port-audio-v19.

Wireless

Using the ipw2100 driver. The following set of components will work together

WEP works fine. I'm still working on WPA.

Scan mode is broken in the ipw2100 driver. I have a partial fix here. This will scan and not segfault anymore, but it seems to loose its wireless conection when it does. It will also not scan if its in WEP mode.

This patch also adds back in the ifname module parameter.

Note: The orinoco driver does not compile with the ieee80211 headers installed (heremes/orinoco/symbol) Also the atmel driver

Other, General Issues

USB 2.0 problem

My T41 had a problem with USB 2.0 devices. Its better since I got a new motherboard.

I get errors like

Jan  5 01:32:59 localhost kernel: usb 1-3: new high speed USB device using ehci_hcd and address 71
Jan  5 01:33:00 localhost kernel: usb 1-3: new high speed USB device using ehci_hcd and address 77
Jan  5 01:33:01 localhost kernel: usb 1-3: new high speed USB device using ehci_hcd and address 78
or in the older kernels
Dec 16 13:05:14 localhost kernel: usb 1-3: new high speed USB device using address 9
Dec 16 13:05:15 localhost kernel: usb 1-3: device not accepting address 9, error -71
Dec 16 13:33:57 localhost kernel: usb 1-3: new high speed USB device using address 10
Dec 16 13:33:58 localhost kernel: usb 1-3: device not accepting address 10, error -71
Simple answer
	modprobe -r ehci_hcd
They work fine with the 'slow' (uhci_usb) driver. There is a suggestion this is a hardware bug on a number of IBM systems.

X-windows dual-head

The thing you need to know is that the second display needs to be connected when X starts. A newer X-servier would probably help a lot.

Screen problems

There was a hardware fault on my T41. Turned out to be a motherboard problem. When things warmed up (ie after big compiles, or when there is a lot of network traffic), screen updates (eg scrolling an xterm) causes the display to break up. As soon as the uddate activity stops, the screen is OK again, so the data in memory is OK, its just the LCD display that breaks.

It is hard to describe the effect, but basically it all tears horizontally. Imagine that each line of the display is offset horizontally (about +/-32 pixels) randomly and the offset is different for each refresh cycle.. Sometimes the whole display will blank for a coule of seconds. Severity varies, sometimes its just a few lines, sometimes its the whole screen.

Ratoc CB31 Ultra-SCSI Cardbus card

More of a cardbus/FC2 issue than anyting else, but in case its of use to anyone else I put the info here.

You no longer need the special CB31 driver - so don't bother to port it! The card works fine with the advensys SCSI driver. If you insert the card it is not seen/registered but does show up in lspci output. Just

	modprobe advansys
and there it is..

So you don't want the bother of the modprobe.. Ok then just apply this patch to the advansys.c driver, rebuild and re-install all and it will auto load. Note: you do not need to change any pcmcia config files at all. See my Cardbus howto if you want to know why.