I got it for $225+40 on Ebay!
Tried to install Ubuntu Feisty Fawn, but Ubuntu took a ½ hour to boot, and the installer... well, after two hours of thrashing the CD-ROM it still hadn't finished painting its initial screen. So I got a 256 MB RAM module for it and tried again. Boot time was then decent, but the controls for telling Ubuntu to ignore the wired Ethernet port and use my wireless connection instead didn't seem to "take", so I couldn't get the installer to work.
So I installed Debian Etch. Debian claims to be the Linux
that "just works". Ha ha ha ha ha! Well, it works *now*, after I spent over
50 hours beating it into shape.
![]() |
I highly recommend ThinkWiki's page about the T23! |
It was so much effort to make this thing work properly that I'm thinking about making up a DVD install disk: "Debian Etch tuned for a ThinkPad T23" and selling it on eBay.
See also my notes for RedHat 8 on a ThinkPad 600E.
Table of ContentsHardware
Central Processing Unit
Type: | Pentium IIIm |
Speed: | 733 MHz or 1133 MHz |
SpeedStep: | v2.1 |
Status: | Works! |
Problem: The CPU speed cannot be adjusted.
Fix:
1. | Add these lines to file /etc/modules:
acpi-cpufreq cpufreq-ondemand cpufreq-powersave |
2. | Reboot. |
3. | In panel applet "CPU Frequency Scaling Monitor", right-click to "Preferences", change Frequency Selector to "governors". |
4. | Left-click on the applet to show governors 'performance', 'ondemand', and 'powersave'. More info. |
Problem: Selecting the 'ondemand' governor using the applet
does not stick; governor reverts to 'performance' after reboot.
Fix: Add this line (before "exit 0", if present) to /etc/rc.local:
Problem: The 'ondemand' governor goes to high-power mode when the
screensaver runs.
Fix: Turn off the screensaver: Select menu "Desktop ⇒
Preferences ⇒ Screensaver", uncheck the box "Activate
screensaver when session is idle". (Use "Desktop ⇒ Preferences
⇒ Power Management" to have the LCD turn off instead.)
Cosmetic Problem: My T23's keyboard has a sticker on it that
says "Intel Inside—Pentium III", but the CPU type is actually
IIIm. This unit was "refurbished" and may have a front-plate that
originally came from some other kind of ThinkPad. My daughter's T23
has no sticker at all.
Reader-submitted note: Victor O. writes, "All new T23 (at least most
of them) got the black sticker. I bought mine on 2001".
Workaround: Live with it or scrape off the sticker.
Treat it as an artifact of historical interest.
RAM
Type: | PC-133, 144 pins |
Size: | 256 MB, upgraded to 384 MB. |
Status: | Works okay. I plan to upgrade to 640 MB. |
Problem: Many Linux distros still claim that they can run in 256
MB, but these days very few of them actually work well with so little.
Fix: Buy a RAM upgrade.
Ebay Express
is much cheaper than CompUSA!
Hard Drive
Type: | Fujitsu, IDE, ATA-5, 9mm form factor |
Size: | 30 GB |
Status: | Works, but too much activity. |
Problem: Hard drive makes an annoying click every 2-3 seconds.
To Fix: (Open issue)
Test Result: Running "hdparm -t /dev/hda" shows a transfer
speed of 19 MB/sec, using the UltraDMA protocol. (My old ThinkPad
600E can only do 6 MB/sec.)
Note: The driver automatically chooses the best I/O settings for this
drive. I added option 'interrupt_unmask' in /etc/hdparm.conf and
it is now enabled, but it doesn't seem to help anything. All the other
options seem to just slow it down.
Doc Problem: ThinkWiki's page doesn't mention that the T23's
hard drive is a different shape from the one used in the 600E. I
was disappointed to learn that I couldn't swap the drives back and
forth.
Fix: Changed wiki page to say that T23 requires a hard drive that's 9mm
tall while the 600 and 600E use 12mm drives.
Graphics Processing Unit
Type: | S3 SuperSavage IX/C |
Size: | 14.1 inches, 16 MB of video RAM |
Geometry: | 1024×768 pixels, 16-bit color |
Status: | Works, with glitch. S-video jack not tested. |
Problem: No graphics acceleration. Anything that requires
animation (such as the "tuxkart" game) is horribly slow.
Fix: This one was nasty! It turns out that both Feisty Fawn and Etch
were released with a
defective driver for the savage GPU.
For now, fixing this bug requires recompiling the affected modules
(see Appendix A for gory details).
Test Result: "glxgears -printfps" now generates 2500 frames in
five seconds! Tuxkart now looks good, as do YouTube videos.
Problem: Sometimes gets into a mode where moving the cursor around
leaves a trail of garbage (looks like random data from another video
page). Usually happens immediately after boot or resume. At one point I
consistently saw this problem when starting "gdmflexiserver" for switching
user logins—exiting from gdmflexiserver made the program go away, so
clearly the driver is capable of getting back out of this mode!
Fix: (Open issue)
Non-problem: Some
sources say that this display supports 24-bit color. But then glxgears
produces only 1200 frames in 5 seconds, and most websites look exactly the
same as in 16-bit mode (a few rare images that have noticable banding at
16 look better at 24), and tuxkart causes a system hang in the third
lap.
Workaround: Stick with the 16-bit mode selected by Debian installer.
Note: The FN+F7 key-combo selects "VGA port", "VGA+LCD", then "LCD only". When not using the VGA port, this amounts to "LCD off", "LCD on (wasting extra power)", then "LCD on (efficient)".
Keyboard and Mouse
Type: | PS/2 |
Status: | Works! |
Problem: The ThinkPad button doesn't do anything.
Fix:
1. | Install Debian package "tpb" (which uninstalls package "hotkey-setup"). |
2. | Add "nvram" to file /etc/modules. |
3. | Uncomment the THINKPAD line in file /etc/tpbrc and change it to "THINKPAD /usr/bin/gdmflexiserver". |
5. | Reboot. |
Problem: Various "hotkey-setup not found" messages are displayed during boot, suspend, resume, etc.
Fix: Select menu "Desktop ⇒ Administration ⇒ Synaptic Package Manager". Click on "Not installed (residual config)", then right-click on the square next to "hotkey-setup" and select "Mark for complete removal". Click on "Apply".
Note: The right ALT key works properly! On my 600E it did nothing (was using RedHat 8, then Fedora Core 2). Apparently Feisty Fawn still disables this key.
Note: No problems with TrackPoint or mouse buttons. A mouse plugged into the mouse port "just works".
Non-problem: Need a PS/2 splitter cable to plug an external
keyboard into the "mouse" port. It seems the keyboard cable costs as much
as a keyboard!
Workaround: Pretend that the T23 doesn't support external keyboards.
Sound System
Type: | Cirrus Logic cs4299, Intel 82801CAM |
Status: | Works! Jacks not tested. |
(This was a problematic area. I tried lots of things that didn't work, plus these that did:)
Problem: No MIDI support. Application programs like "rosegarden" and "noteedit" produce no output.
Fix:
1. | Install Debian packages "timidity" and "freepats". |
2. | In /etc/defaults/timidity, uncomment the line "TIM_ALSASEQ=true" |
3. | Add "snd-seq" to /etc/modules. |
4. | Reboot. |
5. | In the application programs, select output device "Timidity, port 128:0" |
Problem: When other programs are running, MIDI starts to sound choppy.
Fix: Increase timidity's task priority. In file /etc/init.d/timidity, add "--nicelevel -5":
START="--nicelevel -5 --start --quiet --exec ${DAEMON} --pidfile ${PIDFILE} -- ${PARAMS}"
Problem: The cs4299 has only one (stereo) output channel. When the
computer is told to play two sounds at the same time, the second one
gets lost.
Fix: Add a software mixer. Create file /etc/asound.conf with the text from Appendix C.
Problem: When the cute "systems sounds" are enabled (menu "Desktop ⇒ Preferences ⇒ Sound"), Flash videos play silently.
Workaround: Do without system sounds. At Sound preference
panel, disable ESD (and therefore also system sounds). The fixes
described at Launchpad
do not work!
Fix: Tell ESD to let go of the sound channel after one second of inactivity. Change the "auto_spawn" and "spawn_options" values in file /etc/esound/esd.conf to:
auto_spawn=1
spawn_options=-terminate -nobeeps -as 1
Grump: A chirp is sometimes heard when ESD lets go.
Note: The cute sound files are in Debian package "gnome-audio". Cute sounds are another thing that never worked on my 600E.
Problem: The "Sound Recorder" application records nothing but silence.
Fix:
1. | Select menu "Applications ⇒ Sound&Video ⇒ Volume Control". |
2. | Within the Volume Control, select menu "Edit ⇒ Preferences", put checkmarks in the options for "Capture" and "Microphone Capture", click on "Close". |
3. | In the Capture tab, click on the × to unmute and raise the slider to max. |
4. | In the Switches tab, click on "Microphone capture". |
5. | Close Volume Control and select menu "Desktop ⇒ Preferences ⇒ Multimedia Systems Selector". Change "Input" to "OSS - Open Sound System". |
Note: The default installation includes MP3 support! Double-click on an MP3 file to play it using totem.
Doc Problem: The 82801 is a multifunctional "South bridge"
chip. ThinkWiki's category page for the
T23 calls
it an "audio controller", but on
its own page
they call it an "I/O controller".
Fix: Edit the Wiki.
DVD-ROM Drive
Type: | Hitachi GDR-8081N, UltraBay 2000 |
Modes: | CD-ROM (24×), DVD-ROM (8×) |
Status: | Mostly works, but commercial movies not good enough. |
Non-problem: Don't really need this drive very often.
To Fix: Swap it out and replace with a second battery.
Problem: Ejecting drive from UltraBay causes system crash.
Fix: Install debian package "hotswap", which is then accessed via menu "Applications ⇒ Debian ⇒ Apps ⇒ System ⇒ xhotswap" or via line-mode command "hotswap".
Grump: The hotswap program complains about a missing file /etc/hotswaprc. The minimum contents for that file are "<hotswap></hotswap>".
Grump: The hotswap command does not turn off power to the UltraBay. For that, use "echo eject >/proc/acpi/ibm/bay".
Problem: Commercial DVD movies do not play, due to lack of libdvdcss library. Debian "unofficial" has the library, but apt-get can't seem to find it.
Fix: Download the file manually, then use "dpkg -i" command to install it manually.
Test Result: The default movie player is "totem", which displays garbage except in full-screen mode. The movie's on-screen controls for selecting bonus scenes, etc., don't seem to work. In full-screen mode the movie appears jerky, but the "System Monitor" applet says the CPU is less than 100% busy, so WTF? Result from "hdparm -t /dev/hdc" says the DVD drive is putting out 6 MB/sec.
To do: Might want to investigate alternative movie players to see whether Totem is the problem. (Open issue.)
Battery
Type: | Smart lithium-ion |
Status: | Works! |
Test Result: Run time for this 5 year old(?) battery is about 2
hours (original spec was 3½ hours). This is barely adequate for my
needs.
Potential Problem: As the battery gets older, it will eventually not
hold enough charge for me.
To Fix: Get an UltraBay-2000 battery from Ebay to extend the run
time. (Open issue)
CardBus
Type: | PCMCIA |
Modes: | Type II (16-bit), Type III (32-bit) |
Status: | Type II cards work, with glitch. Type III cards unclear. |
Problem: Type II wireless 802.11b networking card
(NetGear MA401) is recognized by Debian installer, but
"roaming" fails because my neighbor's signal is stronger than my own
and he uses WEP for pseudo-security.
Fix: After it fails, select "Reconfigure wireless settings" to
set the access point's name.
Big Problem: When the installed system boots, it fails to
access the MA401 properly, emitting messages about zeroes received
from the card when nonzero values were expected.
Workaround: Use wired Ethernet for initial software
installation, then insert card and let the installed system "discover"
it.
Problem: Hotplug doesn't work: ejecting card and reinserting it
does not automatically restart networking, like it did on 600E. The
'route' command hangs instead of displaying the "chadmin" default route.
Workaround: Use 'ifdown -a; ifup -a' after inserting card.
Problem: Sometimes hangs when trying to access the Debian
package repositories (I use "ftp.us.debian.org"). Manually
invoking "ftp ftp.us.debian.org" will hang at such times.
Workaround: Invoke "ftp ftp.debian.org", which doesn't hang. Use
Ctrl/C at the FTP login prompt. Then package-installation works again!
Weird. (Open issue)
Problem: Type III wireless networking card (MA521) is not
recognized.
Note: The MA521 contains a RealTek 8180 chip that was never
well supported and is now orphaned, while the MA401 contains a
Intersil PRISM chip (using Linux driver 'orinoco').
Workaround: Use the MA401 instead.
Universal Serial Bus
Type: | USB 1.1 |
Status: | Works! |
No problems!
Test Results: Digital camera "just works". MP3 player "just works".
Parallel Port
Type: | IEEE1284 |
Status: | Works! |
Problem: The program "Desktop ⇒ Administration ⇒ Printing ⇒ New Printer" doesn't actually add the printer.
Fix: Use "Applications ⇒ System Tools ⇒ Printers ⇒ Add" instead.
Problem: Changes to printer settings via
"Applications⇒SystemTools⇒Printers" don't seem to take effect, at least for pages printed from Iceweasel.
Fix: Use "Desktop⇒Administration⇒Printing" for printer settings.
Test Result: The HP LaserJet IIIp printer "just works".
Problem: The Canon i550 printer has no entry in the foomatic database.
Note: Last time I checked, the only Linux driver available for it
was direct from Canon with documentation only in Japanese (worked on
my 600E, though).
Workaround: Transfer the files to my wife's Windows machine and print
to the Canon using her driver. (Open Issue)
Serial Port
Type: | 16550A compatible |
Status: | Works? |
Problem: Serial port is disabled by default in the
Firmware.
Fix: Press F1 during boot to access Firmware. Select "Config
⇒ Serial Port". Change setting to "Enabled". Press F10 to save settings and exit.
Test Result: A Garmin eTrex Summit, with Interface
set to "Text Out" mode, spews GPS information that can be received
via the serial port (after installing Debian package "minicom").
Problem: Can't prove that transmission is working. Garmin
firmware update (running inside a WINE bottle) can't find any serial
ports!
Problem: An X10 Firecracker doesn't work.
Failed Fix: Install Debian package "wmx10", which is designed
specifically to control this home-automation device (which uses a wacky DSR/RTS protocol instead of sending normal bytes). The package
installer asks me for the name of the serial port, but then tries to
create /dev/firecracker directly (the /dev directory is
recreated on boot). Nothing happens when clicking on the program's buttons
(and the Firecracker has no ability to provide feedback.)
Note: Directory /sys/devices/platform/serial8250
doesn't mention ttyS0, only ttyS1 through
ttyS3 which don't exist. There's something funny going on
here.
Workaround: Don't use Firecracker with T23.
ThinkLight
Type: | IBM proprietary |
Status: | Works! |
Note: Use the FN+PgUp key-combo to turn the lamp on and off.
Lid-closing switch
Status: | Works! |
Problem: System doesn't suspend when lid is closed.
Fix: Select menu "Desktop ⇒
Preferences ⇒ Power Management", change item "When laptop lid is closed" to
"Suspend" for both Running on AC and Running on Battery tabs.
Revised Fix: In file /etc/acpi/event/lidbtn, change the
action to "/etc/acpi/sleep.sh", then either reboot or invoke "/etc/init.d/acpid restart". This bypasses the Power Management
preference. See "Suspend/Resume/Hibernate" below for
more info.
Cooling fan
Status: | Needs work |
Problem: Takes too long to turn on, leading to unconfortable
temperatures perceived on user's left thigh.
To Fix: See here for info.
(Open issue)
Infrared transceiver
Type: | Intel 82561ET |
Modes: | SIR (115 kbps), FIR (4 mbps) |
Status: | Untested |
Problem: Driver installed but no IP address assigned.
To Fix: See here
for more info. (Open issue)
Doc Problem: IrDA is not mentioned in ThinkWiki's list
of ports on a T23.
Fix: Edit the wiki.
Check: Can this thing act as a TV remote?
User-replaceable board: | Jack on rear panel: | |
![]() |
![]() |
Ethernet
Type: | Intel 82561ET |
Modes: | 10 or 100 megabits per second |
Status: | Works! |
No problems!
Test Result: Copying 3 GB of data from my 600E to an FTP server over an 11 Mbits/sec wireless link takes an hour and a half. Copying that data from the server to the T23 using a 100 Mbits/sec Ethernet link takes five minutes!
Modem
Type: | Ambit Winmodem |
Status: | Works! |
Problem: No driver is pre-loaded.
Fix:
1. | Download, compile, and install the martian driver. After "make install", Linux will automatically detect the modem and load the driver. |
2. | Add to /etc/rc.local: martian_modem --daemon |
UltraPort
Type: | USB 1.1 |
Status: | Untested. |
Problem: It just sits there, begging me to find a use for it.
Potential Fix: Could get a stereo microphone
or micro webcam
for it, but I don't have much need.
Docking Port
Type: | IBM proprietary |
Status: | Untested. |
Problem: Useless without a dock to connect it to.
Workaround: Ignore it.
Trusted Platform Module
Type: | v1.0, which does not match TCG specs. |
Status: | Untested. |
Problem: Seems to be useless. For signing emails, the CPU is
faster.  With current firmware this module cannot be used to prevent
booting of non-Microsoft operating systems.
More info.
Workaround: Ignore it. This is typical of what happens when
politics overrules engineering.
(Non-T23 Hardware)
The Debian installer erroneously includes support for some hardware that I don't have.
Bluetooth: Uninstall Debian packages "bluetooth", "libbluetooth2", "bluez-gnome", and "bluez-utils". This eliminates three useless daemon processes.
Synaptics Touchpad: Remove section "Synaptics Touchpad" and line 'InputDevice "Synaptics touchpad"' from file /etc/X11/xorg.conf.
A recent Hewlett-Packard printer: I have an older HP printer, so I could uninstall Debian packages "hplip" and "hplip-data". This would eliminate two daemon processes that I don't need, shaving a second off the boot-up time.
Firmware
Communication with Linux kernel
Status: | Works! |
The T23 supports both APM and ACPI as ways for the firmware to talk to the operating system. On some ThinkPads, such as the T20, ACPI is unreliable and should be disabled, but it's fine on the T23.
Problem: Some
sources claim that kernel parameter "acpi=off" is needed for a
T23. Don't you believe it! Also, the Debian installer
specifically mentions "acpi=off" on its F2 and F3 help screens as an option
you might want to try. But any kernel option given to the installer
is silently copied to the installed system. With ACPI turned off, the
battery applet says the battery is always empty, the suspend/resume
functions doesn't work right, etc.
Fix: Remove "acpi=off" from the "kernel" command
in /boot/grub/menu.lst, or reinstall Debian without specifying any
kernel options.
Suspend/Resume/Hibernate
Status: | Seems to be working. Needs more testing to ensure that no glitches remain. |
I had a *lot* of problems with suspend! I tried many fixes that didn't work. Here are the ones that did:
Problem: When in text mode, the LCD displays garbage when
returning from suspend.
Fix: Add "acpi_sleep=s3_bios,s3_mode" to "kernel" command
in /boot/grub/menu.lst. More info.
Grump: Fills the LCD with useless system messages, which looks
unclean.
Problem: The crescent moon indicator does not blink during
suspend/resume.
Fix:
1. | Uninstall Debian package "uswsusp". Reboot. |
2. | In file /etc/acpi/events/ibm-sleepbtn, change the action from "/etc/acpi/sleepbtn.sh" to "/etc/acpi/sleep.sh". Otherwise the sleep.sh script doesn't run? |
3. | In file /etc/acpi/sleep.sh, comment out these lines: # If gnome-power-manager or klaptodaemon are running, let them handle policy if [ x$1 != xforce ] && [ x$1 != xsleep ] && [`CheckPolicy` = 0 ]; then exit; fi Otherwise sleep.sh just exits and ¿some other program? does the suspend wrongly. |
4. | Add line "ibm-acpi" to file /etc/modules. This enables the code
that's already in the "acpi-support" package to blink the crescent moon indicator. |
Problem: The "hibernate" button, FN+F12,
doesn't do anything.
Fix: In file /etc/acpi/events/ibm-hibernatebtn, change the
action from "/etc/acpi/hibernatebtn.sh" to "/etc/acpi/hibernate.sh".
Problem: After resuming from suspend or hibernate, the wireless
networking card is not properly reconfigured (ESSID is back to default, no
routing-table info).
Fix: Create file /etc/acpi/resume.d/97-cardreset.sh
containing the lines
ifdown -a
ifup -a
Give the file 'executable' permissions.
Problem: When the computer suspends itself due to
inactivity, it uses the wrong method (HAL?) and so the crescent moon
doesn't blink, the GPU crashes on resume, etc.
Fix: Select menu "Applications ⇒ System Tools ⇒
Configuration Editor", then select "apps ⇒
gnome-power-manager", then uncheck the boxes for "can_suspend" and
"can_hibernate". Hopefully this will teach GNOME to stay out of the
suspend process and let package acpi-support handle it as above.
Grump: Now there's no suspend-on-inactive function.
Problem: When in "suspend" mode, the T23 uses 25% of its battery
power in 10 hours. At this rate it would drain itself in 1½ days.
Fix: See "BIOS Update" below.
Test Result: Battery usage after 10 hours of suspend is reduced
to 10%, so estimated maximum suspend-time is now increased
from 40 hours to 100.
BIOS Update
BIOS: | 1.02 (5 Feb 2002), updated to 1.20 (18 Oct 2006) |
Embedded controller: | 1.03a, updated to 1.06a |
Status: | Works! |
Problem: BIOS is old. More recent versions include "improved
battery management". For the 600E this made a big difference in battery
life.
Fix: Update the BIOS.
Problem: The BIOS updates provided by IBM require either a floppy
drive or Microsoft Windows. I have neither.
Fix: Transmute the Windows updates into bootable CD-ROMs. See
my Appendix B for details.
Problem: The BIOS splash screen just says "IBM ThinkPad",
with no penguin logo.
Failed Fix: ThinkWiki says you can replace the logo,
using program prepare.exe found in cab file 1yu****.exe,
but I can't find that file.
Workaround: Live with the standard BIOS splash screen.
Big Problem: After BIOS update, suspend no longer works — get
a white screen on resume.
Small Fix: After trying lots of stuff that didn't work, this did: In
file /etc/defaults/acpi-support, comment out the line "USE_DPMS=true".
Software
The Desktop
Status: | Works. Not sure if NTP clock-update is working. |
Problem: The "Network Manager" notifier-applet can't find
the wireless networking card, so it says the computer is off-line even
when it's on-line.
Fix: Replace "Network Manager" with "Network Monitor":
1. | Select menu "Desktop ⇒ Preferences ⇒ Sessions", go to Startup Programs tab, click on "nm-applet --sm-disable", click on "Delete", click on "Close". |
2. | Right-click on the top-panel, select "Add to Panel", click on "Network Monitor", "Add", "Close". |
Problem: Subpixel smoothing is not enabled by default. Text does not look its best on an LCD.
Fix: Select menu "Desktop ⇒ Preferences ⇒ Font",
click on "Subpixel Smoothing", then "Details", then "VRGB". Since very few fonts support subpixel
smoothing, set the Application, Document, and Desktop fonts to
"Bitstream Charter 11".
Problem: Local clock does not automatically synchronize itself to a government clock.
Fix: Install Debian package "ntp". Right-click on clock and
select "Adjust Date & Time". Click on "Synchronize clock with
Internet servers". Click on "Select Servers" and choose someplace nearby.
Problem: There's no easy way to eject CD-ROM's and USB devices.
Fix: Add panel applet "Disk Mounter".
Web Browsing
Status: | Works! |
Problem: Java plugin does not self-install.
Fix:
1. | Download Linux (self-extracting file) to Desktop. |
2. | Make downloaded file be executable: chmod +x ~/Desktop/jre-6u1-linux-i586.bin |
3. | Uncompress the files: mkdir /usr/java; cd /usr/java; ~/Desktop/jre-6u1-linux-i586.bin |
4. | Connect the plugin: cd /usr/lib/iceweasel/plugins; ln -s /usr/java/jre1.6.0_01/plugin/i386/ns7/libjavaplugin_oji.so |
5. | Repeat step 4 for other browsers: cd /usr/lib/iceape/plugins, etc. |
Problem: Java plugin does not function.
Fix: Install Debian package "libstdc++5". I think this is a bug; only libdeploy.so within Java wants this old version.
Test Result: Works!
Problem: Flash plugin does not self-install.
Fix:
1. | Download Linux (x86) .tar.gz file to Desktop. |
2. | Uncompress the installer: cd /tmp; tar zxvf ~/Desktop/install_flash_player_9_linux.tar.gz |
3. | Invoke the installer: cd install_flash_player_9_linux; ./flashplayer-installer |
4. | Enter the target directory when requested: /usr/lib/iceweasel |
5. | Repeat steps 3-4 for other browsers. |
Problem: Shockwave-Director plugin is not available for Linux. This is "must-have" software for my daughter.
Fix:
1. | Download and execute Crossover Office. I used /usr/cxoffice as the installation directory. |
2. | Invoke /usr/cxoffice/bin/cxsetup. On plugins tab, change system software locations to /usr/lib/iceweasel and /usr/lib/iceape. |
3. | Invoke /usr/cxoffice/bin/cxinstallwizard, select "Shockwave Player 8.5" as the desired software. |
Backup/restore
Status: | Needs work. |
Problem: Can't do a "full" backup at a decent speed over a 500 KB/s wireless link.
Fix: Install Debian package "dump", which provides utilities
dump and restore. These programs honor the 'd' file
attribute provided by the ext3 filesystem, which is used to mark files
that should not be backed up (because they are caches, reloadable from
packages, etc.)
Problem: No files are marked with the 'd' attribute.
Fix:
1. | Use the script in Appendix D to put the 'd' attribute on all files already loaded from packages. This removes 2.2 GB from the backup! |
2. | Set the 'd' attribute on large groups of files not marked above: find / -name '*.pyc' -type f -print0 | xargs -0 chattr +d find / -name '*.xml' -type f -print0 | xargs -0 chattr +d find /boot /usr/share/ppd/gutenprint/5.0/en -type f -print0 | xargs -0 chattr +d |
3. | Set the 'd' attribute on large static redownloadable things other than packages. Examples: find /usr/java -type f -print0 | xargs -0 chattr +d find /usr/src/linux-source-2.6.18 -type f -print0 | xargs -0 chattr +d find /usr/lib -name 'libflashplayer.so' | xargs chattr +d |
4. | Remove the 'd' attribute from standard files that I overrode before doing all this chattr stuff. These need to be backed up! chattr -d /lib/modules/2.6.18-4-686/kernel/drivers/char/drm/{savage,drm}.ko |
5. | Set the 'd' attribute on temp, cache and backup directories, to skip backup for temp files: chattr +d /tmp /var/tmp /var/backups /var/cache ~/.Trash ~/.mozilla/*/Cache ~/.mozilla/firefox/*/Cache ~/.gimp-2.2/tmp |
Problem: What about packages installed in the future?
Fix: Create files /etc/apt/apt.conf.d/99nodump and /usr/local/bin/pkg-no-dump (listings in Appendix E) to ensure that packages loaded in future will also get 'd' attributes on their files.
Problem: How exactly do you do backups with 'dump' over a wireless network?
Fix: Use my ftpbackup script (see Appendix F). Use "ftpbackup 0" for a full backup, or "ftpbackup 1" for an incremental backup of files changed since last full.
Problem: The ftpbackup script prints "cannot seek on data source" and hangs for 30 seconds after backing up each partition.
Fix: Upgrade Debian package "lftp" to the "unstable" version, which is here.
Problem: How exactly do you do a full restore, e.g. after a hard-drive crash? The "rescue" feature of Debian's install disk doesn't include the restore program!
To Fix: If I actually end up making that DVD for sale, I'll include restore in its "rescue" feature. (Open issue)
Check: Can version 0.4b32 of program restore (which
is on my FSF membership card) deal with backups created by version
0.4b41 of program dump (installed from Debian package)?
Conclusions
This was *not* as easy as I had expected! What was this guy smoking? Or did he just not care about wireless networking, lack of graphics acceleration, etc?
Suspend/resume still needs work, although hibernation is much better than with distros from four years ago.
MIDI works now! But the sound-sharing system could still use more improvement.
USB support is much improved!
Winmodem support is improved, although I don't really need it.
Backup situation is worse—restore program is no longer on Debian rescue disk! Just because Linus Torvalds hates dump and restore doesn't mean that they're bad programs!
Appendices
A. Recompiling the savage driver to enable graphics acceleration:
B. Updating the firmware:
Doc Problem: ThinkWiki says the reason why you have
to mention *.IMG twice is because "some versions of mkisofs get
confused about why you would want to create an iso with no contents".
Actually the reason why is because the -b option must refer to one of the
other parameters; if you use
touch empty
mkisofs -b *.IMG -o name.iso empty
then you get the error message "Uh oh, I cant find the boot image".
Fix: Update the wiki.
C. Telling ALSA to use its software mixer:
Create /etc/asound.conf containing this code, which I got from ALSA's wiki.
pcm.amix { type dmix ipc_key 50557 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 8192 } bindings { 0 0 1 1 } } # route ALSA software through pcm.amix pcm.!default { type plug slave.pcm "amix" }
D. Adding 'no-dump' flag to all files pre-loaded from packages:
We avoid marking config-files, although that's probably not harmful since editing those will create new files without 'd' flags. We avoid marking directories because 'd' on a directory means "don't backup *anything* inside this dir".
E. Adding 'no-dump' for packages installed in future:
This code (which I wrote) is a hack to get around the lack of suitable options for program apt. What I really want is "call me whenever you create a new file", but all they offer is "call me before installing a package" and "call me after doing anything". In particular, *reinstalls* don't get the no-dump attribute on their files. Oh well.
Create file /etc/apt/apt.conf.d/99nodump, which passes the filenames for newly-installed packages to program pkg-no-dump:
DPkg { Pre-Install-Pkgs { "cat - >>/tmp/pkg-no-dump.input" }; Post-Invoke { "if [ -s /tmp/pkg-no-dump.input ]; then /usr/local/bin/pkg-no-dump `cat /tmp/pkg-no-dump.input`; fi"; "rm -f /tmp/pkg-no-dump.input"; }; };
Create file /usr/local/bin/pkg-no-dump and mark it with the 'executable' attribute:
#!/bin/sh # # pkg-no-dump -- Mark package files with ext3 'nodump' flag. # # parameters - package names for name in $* do pkginfo=/var/lib/dpkg/info/`dpkg-deb -f $name package` # Skip config files, if package has them if [ -s ${pkginfo}.conffiles ] then sort -u -o /tmp/pkg-no-dump.list ${pkginfo}.list sort -u -o /tmp/pkg-no-dump.conffiles ${pkginfo}.conffiles comm -23 /tmp/pkg-no-dump.list /tmp/pkg-no-dump.conffiles >/tmp/pkg-no-dump.nonconfig FILES=/tmp/pkg-no-dump.nonconfig else FILES=${pkginfo}.list fi # Mark non-directories with ext3 'd' flag exec 3<${FILES} while read -u 3 do if [ -d ${REPLY} ] then continue fi chattr +d "${REPLY}" done # Clean up rm -f /tmp/pkg-no-dump.{list,conffiles,nonconfig} done
F. The "ftpbackup" script:
I wrote this script. The items in italics need to be customized for your particulars.
#! /bin/sh FTPNODE="the name or IP address of the machine to receive the backups" FTPUSER="your FTP login,your FTP password" FTPDIR="subdirectory where backup files should be placed" PARTITIONS="/ /usr /home" for part in $PARTITIONS do echo "Partition $part" PARTNAME=backup_`hostname`_level${1:-0}_`date +%F``echo $part | sed -e 's=/$=/root=' -e 's=/=_=g'`.dump echo $PARTNAME mknod /tmp/backup.pipe.$$ p dump -${1:-0} -h 0 -f /tmp/backup.pipe.$$ -q -u $part & while [ "`pstree -p $! | tr -cd ')'`" = ")" ] do # Wait for subprocess to start sleep 3 done if [ "`pstree -p $! | tr -cd ')'`" != "))" ] then echo "Abort" exit 1 fi lftp -u $FTPUSER -e "cd $FTPDIR; put /tmp/backup.pipe.$$ -o $PARTNAME; quit" $FTPNODE rm /tmp/backup.pipe.$$ done