Difference between revisions of "Installing Debian 4.0 (Etch) on a ThinkPad T42"
Petermartin (Talk | contribs)  (Etch on a ThinkPad T42)  | 
				Petermartin (Talk | contribs)   (→Sleep and Hibernate)  | 
				||
| Line 46: | Line 46: | ||
==Sleep and Hibernate==  | ==Sleep and Hibernate==  | ||
| − | Immediately post-install, including reinstalling uswsusp, both sleep and hibernate worked fine from the command line.  As for the special buttons, sleep (Fn-F4) worked fine, but hibernate (Fn-F12) didn't do anything.  So, this is what I did, hope it helps.  First, installed [http://www.nongnu.org/tpb/ tpb]:  | + | Immediately post-install, including reinstalling uswsusp, both sleep and hibernate worked fine from the command line.  As for the special buttons, sleep (Fn-F4) worked fine, but hibernate (Fn-F12) didn't do anything.  So, this is what I did, hope it helps.  First, installed [http://www.nongnu.org/tpb/ tpb] and told it to load the ibm_acpi and nvram modules:  | 
    {{cmdroot|aptitude install tpb}}  |     {{cmdroot|aptitude install tpb}}  | ||
| + |    {{cmdroot|echo "ibm_acpi" >>/etc/modules}}  | ||
| + |    {{cmdroot|echo "nvram" >>/etc/modules}}  | ||
... at which point neither sleep nor hibernate did anything.  As others have found, this is because both {{path|/etc/acpi/events/ibm-sleepbtn}} and {{path|/etc/acpi/events/ibm-hibernatebtn}} use acpi_fakekey, which isn't set up to do anything.  The easy fix is to change {{path|/etc/acpi/events/ibm-sleepbtn}} to:  | ... at which point neither sleep nor hibernate did anything.  As others have found, this is because both {{path|/etc/acpi/events/ibm-sleepbtn}} and {{path|/etc/acpi/events/ibm-hibernatebtn}} use acpi_fakekey, which isn't set up to do anything.  The easy fix is to change {{path|/etc/acpi/events/ibm-sleepbtn}} to:  | ||
Revision as of 19:28, 11 July 2007
Contents
The machine
Got a used T42 from craigslist:
- Intel Pentium M 1.70GHz
 - 500M RAM
 - Fujitsu MHT 2040AH HD (35G)
 - 1024x768 LCD panel
 - CDRW/DVD combo: HL-DT-ST RW/DVD
 - ATI Mobility Radeon 7500
 - Intel PRO/Wireless 2200BG
 - BIOS version 3.23
 
Installation
I installed Debian Etch 4.0r0 from the netinst CD image (July 6, 2007 version). I had to do the install over ethernet, as the wireless driver needs some extra work(see below). It went very smoothly -- only had two answer two questions:
uswsusp didn't find active swap partition-> I told it not to continue, and did# aptitude reinstall uswsuspafter installation and it worked fine.GRUB install in MBR?-> yes.
Post-install, gnome automatically popped up an kernel update, which applied fine.
... and with this, most everything works! This is *much* easier than it used to be. There were enough remaining issues to consume some hours, though:
Wireless
Note that different T42 models have different wireless cards -- but mine, the Intel PRO/Wireless 2200BG need the ipw2200 driver, and the associated firmware. So:
   # aptitude install ipw2200-modules-2.6-686
Then I downloaded version 3.0 of the firmware from http://ipw2200.sourceforge.net/firmware.php and copied it to /lib/firmware -- crossing my fingers a bit, since nowhere could I find confirmation that the ipw2200 driver included in ipw2200-modules-2.6-686 is version 1.1.1 or newer.
NetworkManager, installed by default, is taking care of everything just fine. I added two files to make it work with sleep and hibernate:
in /etc/acpi/suspend.d/07-network-manager.sh:
#!/bin/sh /etc/dbus-1/event.d/25NetworkManager stop
and in /etc/acpi/suspend.d/63-network-manager.sh:
#!/bin/sh /etc/dbus-1/event.d/25NetworkManager start
| 
 TODO 
 | 
although I haven't tested if creating these files is necessary.  You could try without. 
 | 
Sleep and Hibernate
Immediately post-install, including reinstalling uswsusp, both sleep and hibernate worked fine from the command line. As for the special buttons, sleep (Fn-F4) worked fine, but hibernate (Fn-F12) didn't do anything. So, this is what I did, hope it helps. First, installed tpb and told it to load the ibm_acpi and nvram modules:
# aptitude install tpb# echo "ibm_acpi" >>/etc/modules# echo "nvram" >>/etc/modules
... at which point neither sleep nor hibernate did anything. As others have found, this is because both /etc/acpi/events/ibm-sleepbtn and /etc/acpi/events/ibm-hibernatebtn use acpi_fakekey, which isn't set up to do anything. The easy fix is to change /etc/acpi/events/ibm-sleepbtn to:
event=ibm/hotkey HKEY 00000080 00001004 action=/etc/acpi/sleep.sh force
and to change /etc/acpi/events/ibm-hibernatebtn to:
event=ibm/hotkey HKEY 00000080 00001004 action=/etc/acpi/hibernate.sh
The *force* option in ibm-sleepbtn is necessary on my distribution because otherwise the sleep script defers to gnome-power-manager, and does nothing.
Now the sleep button worked, and the hibernate button did something -- it induced a kernel panic.  After some investigation, it turned out that this was coming from the modules-unload script in /etc/acpi/suspend.d -- and, indeed, if I do # modprobe -r e1000, the machine *freezes*.  Indeed, {path|/etc/acpi/suspend.d/70-modules-unload.sh}} tries to unload e1000 and ipw2200, *even if they are added to MODULES_WHITELIST in /etc/default/acpi-support*.  
The best thing to do about this would be to compile a new kernel with the newest version of e1000...}} but instead, I just turned off the modules-unload script, since everything seems to work fine without unloading any modules, by doing this:
   # mv /etc/acpi/suspend.d/70-modules-unload.sh /etc/acpi/suspend.d/70-modules-unload.sh-off
Now the suspend and sleep hotkeys work, and everything seems to continue fine, afterwards.
The CRT/LCD hotkey and a Projector
Initially, the Fn-F7 key did nothing -- and neither did # echo -n 'video_switch' > /proc/acpi/ibm/video.  However, adding the line
Option "BIOSHotkeys" "on"
to the Device section of /etc/X11/xorg.conf seems to have done the trick -- after a hard reboot. I need to use this for a bit longer, but it seems like it'll keep working.
To get a projector to work, all I had to do was to plug it in, then put it to sleep and have it come back. It still wouldn't play video, though -- the window where the video was playing would be blank on the projected screen. To fix this, I did the easiest thing, which was to add the line
Option "MonitorLayout" "LVDS,NONE"
also to the Device section of /etc/X11/xorg.conf.