SuSE 8.0 installs well on the T30, however, there are a few problems. Because some of them are interrelated, I strongly recommend that you read this entire document before making changes.
Note that I have a T30 model number 2366-92G. Depending on the exact model you have, your mileage may vary.
The biggest problem initially is that after an apparently flawless install, the machine will not boot the installed kernel! The message "Loading linux" appears, then a row of dots, then - nothing. The reason is APM (Advanced Power Management). The installed kernel tries to enable power management at boot time, and this apparently causes the lockup. This is easy to fix by using a new kernel; until then, simply boot the "failsafe" kernel. If you don't want APM, you could just edit /etc/lilo.conf and swap the "failsafe" and "linux" stanzas, so that the failsafe system will boot by default. Remember to run "lilo -v" after editing lilo.conf!
Alternatively, recompile and install a new kernel, making sure you set "Enable Advanced Power Management" to on and "Enable APM at boot time" to off. Put this line in the lilo stanza for the new kernel:
append="acpismp=force"
make install
" in the ALSA drivers directory after each kernel "make modules_install
", because the latter clears out all non-kernel modules.
You can get quick and dirty sound, with no ALSA support, by editing /etc/modules.conf. Locate the line mentioning snd-intel8x0. Comment out the two options lines immediately above it. Add this line after it:
alias snd-intel8x0 i810_audio
Then run "depmod -a".
First make sure that apmd (APM monitor daemon) is running. This may be possible using YAST, but I just created appropriate links to the startup script in /etc/rc.d.
Edit /etc/sysconfig/powermanagement and set the value of the variable APMD_STOP_SOUND_BEFORE_SUSPEND to "alsa". Then edit the file called /usr/sbin/apmd_proxy. Look for the above variable and comment out the two lines in the "alsa" case just below it. Look for the next occurrence of the variable and comment out the command in the "alsa" case, adding instead these two lines:
/usr/sbin/alsactl power off 0
/usr/sbin/alsactl power on 0
To get suspend to disk working again, you will need a disk partition as large as your available RAM plus your video RAM. This may mean repartitioning your hard disk and/or reinstalling Linux :-(. Then obtain Andrew Tridgell's program tphdisk.c from http://www.samba.org/tridge, and compile it:
cc tphdisk.c
mv a.out tphdisk
Read the source or run the program with no arguments for further instructions. Once you have set up the disk partition as per Andrew's instructions (it's really very simple), the Fn-F12 key-combination will work, and your T30 will suspend to disk.
rm /dev/cdrom
ln -s /dev/scd0 /dev/cdrom
Burning CDs using KcreateCD worked fine after this too. If you burn as non-root you may need to set the permissions approriately on /dev/scd0.
Otherwise, get the hostap package from http://hostap.epitest.fi/releases and compile it. I used the 2002-12-10 release. Put the resulting modules in the directory /lib/modules/<build>/net
. Add these lines to /etc/modules.conf:
alias eth1 hostap_pci
post-install eth1 ip link set wlan0 name eth1
Then run "depmod -a".
The Cisco VPN client (version 3.7 at time of writing) expects interface names starting with "eth" or "ppp", and doesn't understand interface names that start with "wlan". The hostap driver creates interfaces that start with "wlan". That's why the post-install line is needed in /etc/modules.conf. Thanks to Cyrus Behroozi (behroozi@fas.harvard.edu) for the reason, and Vladimir Ivaschenko (hazard@hazard.maks.net) for the fix. If you are not using the Cisco VPN client, you don't really need the post-install command.
An alternative, if for some reason you dont want to use the hostap drivers, is the Orinoco driver. All versions before 0.13b have problems with suspend/resume, but so far 0.13b seems to be working well. The Orinoco drivers register interface names that start with "eth". so the Cisco VPN client has no problem with them. SuSE 8.1 installs the Orinoco drivers by default, but an earlier version than 0.13b. I've had no problems with the hostap stuff, and several oddities with the Orinoco stuff, so I recommend using hostap.
You will need to create a configuration file for the wireless interface:
cd /etc/sysconfig/network
cp ifcfg.eth0 ifcfg.eth1
Then edit ifcfg-eth1 so it looks like this for DHCP:
BOOTPROTO="dhcp"
WIRELESS="yes"
STARTMODE="onboot"
WIRELESS_MODE="managed"
WIRELESS_ESSID="xxxx"
WIRELESS_KEY="yyyy"
or like this for a fixed address:
BOOTPROTO="static"
WIRELESS="yes"
STARTMODE="onboot"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.2"
BROADCAST="192.168.1.255"
WIRELESS_MODE="managed"
WIRELESS_ESSID="xxxx"
WIRELESS_KEY="yyyy"
Substitute appropriate IP information for the numbers shown here. Substitute the appropriate SSID for "xxxx" or leave it blank. Substitute your WEB key for "yyyy", or leave the line out altogether if you're not using WEP.
It is highly recommended that you configure at least 40-bit WEP, and preferably something better. Then tunnel everything over a VPN or ssh. Here's how to do it with ssh.
The simplest solution is to do a suspend/resume cycle to restore the screen, but this is very slow. Alternatively, compile and install a new kernel, setting Advanced Power Management Support to "on" and "Enable console blanking using APM" to "off". Note that less power will be saved - normal X blanking routines don't stop the screen using power, they just stop it displaying anything. While this does partly work, I notice that my T30 sometimes blanks the screen anyway! Still, it's no more than a minor irritation.
mount -t msdos /dev/sda /mnt
", it worked first time :-)
I have also successfully attached a USB Microsoft Optimouse and a Sony Handycam (DCR-PC120E) via USB ("mount -t vfat /dev/sda1 /mnt
"). It seems that USB works "out of the box", at least for some devices.
/etc/sysconfig/powermanagement
i and let me know how you go :-) There are also newer and better drivers out there than the default e100 driver - they may give better results.
network stop <interface>
", "ifconfig <interface> down
" is needed as well. This is a minor irritant, as one is not usually changing interfaces that often.
To fix this after the install is complete, just add the "WIRELESS_xxx" stuff (mentioned above) to the file /etc/sysconfig/network/ifcfg-eth0.
The Orinoco drivers (up to 0.13e) seem to fail pretty consistently on big transfers; nothing short of stopping and downing he interface, removing the modules, then restarting the network interface will bring it back. I did not have this problem with 8.0, and have not had this problem with the HostAP drivers. So for SuSE 8.2, it seems the HostAP drivers are the way to go.
Note that the onboard wireless interface is detected as the first network interface, hence eth0. This is different to SuSE 8.0, which (because it doesn't detect the onboard wireless interface at all) configures the onboard ethernet as eth0.
make menuconfig
make dep
make clean
make bzImage
make modules
make modules_install
cp arch/i386/bzImage /boot/bzImage.mine
cp System.map /boot/System.map.mine
http://www.linuxcare.com/labs/certs/ibm/thinkpad/t30/index.epl
Linuxcare has some other reports on SuSE 8.1 and the latest Red Hat distributions.
The hostap home page has lots of information on the hostap driver specifically, but also lots of links to other stuff related to wireless networking. The answer to the Cisco VPN problem came out of the mailing list archives on this site.
SuSE Linux 8.2 on IBM T30 Thinkpad
Most of the above notes hold, with a couple of important exceptions.
Resources
I found the Linuxcare report on SuSE 8.0 and the T30 to be extremely useful, though not in itself enough to solve all these issues:
[Email me!]
Page last updated 2 August 2003.