Linux on the Fujitsu LifeBook P2020Apologies for the rubbish quality of the images. If you can spare the time for better ones, please edit this page. [ hardware | installation | X | sound | modem | DVD | development | power management ] hardware
The standard battery lasts 3 hours and the extended 6 hours at 633 MHz and full brightness extending to 10 hours at 300 MHz and minimum brightness. installationDebian "potato" was installed in an unusual way using the boot floppies without a floppy drive. "potato" was upgraded to "woody" and then "sarge" using the: apt-get dist-upgrade XXFree86 4.1.0 and Xorg 6.9 detect the display automatically, using the "ati" driver. At one point the X server was not delivering events to applications when the Windows keys were pressed. Now it is, but unfortunately I don't know what fixed it. The program xev shows events when the Windows keys are pressed. Like a fool, I used kbdrate -r 30 to change the keyboard delay before repeat, but a more permanent solution is using /etc/X11/XF86Config-4: Section "InputDevice" ... Option "AutoRepeat" "250 30" ... EndSection Rather than use KDE or GNOME, which run slowly on this machine, I use icewm, which consumes far less resources. chameleon may be used to set the wallpaper. DRIEdit /etc/apt/sources.list to include: deb http://people.debian.org/~daenzer/dri-mach64/ ./ and: $ sudo apt-get update $ sudo apt-get install xlibmesa-dev-dri-mach64 \ xlibmesa3-dri-mach64 \ xserver-xfree86-dri-mach64 If the machine is used for OpenGL development, the following packages must be hacked to avoid file clashes with the mach64 packages:
XFree86 complained that DRI could not allocate memory. The amount of memory it tries to allocate depends on the display resolution and colour depth. At 1280x600 with 24 bits per pixel it was trying to allocate 7500 kB. The solution is to use a display mode that consumes less memory and to switch to 16 bit colour depth. The new modes require mode lines: Section "Monitor" Identifier "Flat Panel" Modeline "1024x600@75" 62.78 1024 1056 1288 1320 600 611 619 631 Modeline "1024x512@75" 51.85 1024 1056 1248 1280 512 521 528 538 Modeline "960x600@75" 59.09 960 992 1216 1248 600 611 619 631 EndSection (the mode lines were provided by the xtiming project) The 1024x600 mode complains that insufficient texture memory could be allocated. The 1024x512 mode has square aspect but looks blurry and the 960x600 mode has wide aspect but doesn't look so blurry. The rest of the XF86Config-4: ... DefaultDepth 16 ... SubSection "Display" Depth 16 Modes "960x600@75" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "Native panel mode" "640x480" EndSubSection ... ..permits 1200x600 with 24 bit and xv acceleration to be started with: $ startx -- -depth 24 ..and 960x600 with 16 bit and DRI to be started with: $ startx soundPreviously, I couldn't get any sound out of Line Out. This works now. I think the upgrade to kernel 2.4.20 fixed it. modemThis laptop has a Lucent SoftModem AMR. It is possible to use this modem despite web pages to the contrary. The modem hides behind the sound card, which has PCI ID 10b9:5451 (M5451 PCI AC-Link). This thread was the motivation for trying to get the modem to work one more time. Some of these steps might not be necessary. I carried on fiddling until the modem worked. The files under /proc/asound/ looked like some software was already loaded for the modem, especially /proc/asound/card0/pcm1c/info. This is after loading the snd-ali5451 module on kernel 2.6.16. sl-modem-daemon 2.9.9d+e-pre2-6 from Debian "testing" and its dependent libasound2 1.0.12-1 were installed on Sarge. To get the packages to install, the dependencies must be edited from: libc6 (>= 2.3.6-6) ..to: libc6 (>= 2.3.2) This is part of /etc/chatscripts/provider: # turn off V90 apparently OK-AT-OK "AT+MS=22" # set high volume OK-AT-OK "ATL3" This was necessary to get the modem to listen to the phone line: setmixer phin 90 slmodemd was started like this: sudo slmodemd -d12 --alsa hw:0,1 --shortbuffer Using 115200 in /etc/ppp/peers/provider caused problems but 57600 works. Other packages I found useful were minicom and pppconfig. DVDI don't use this machine for DVD playback any more but MPlayer seems to be faster than Xine and even MPlayer can't cope with encrypted DVDs although unencrypted DVDs play without dropping any frames. developmentThe C compiler options (taken from a kernel compile with CONFIG_MCRUSOE set): -march=i686 -malign-functions=0 -malign-jumps=0 -malign-loops=0 -mcpu=pentiumpro power managementLinux kernel 2.4 doesn't support hibernation, but suspend works straight away as long as the kernel uses APM. To give you an idea of how long you can safely leave it suspended, the battery went from 100% in suspend mode to 11% over a period of exactly 7 days.The mixer seems to lose its settings after a suspend/resume, but is easy enough to cope with since you can hang your own scripts off the APM suspend and resume events, which can save and restore mixer settings. If you've got setmixer installed, this is as simple as: $ cat /etc/apm/suspend.d/mixer #!/bin/sh setmixer -V > /tmp/mixer_settings $ cat /etc/apm/resume.d/mixer #!/bin/sh perl -ne 'split;print `setmixer $_[0] $_[2]`' /tmp/mixer_settings ACPI S3 is not supported on kernel 2.4 but this: $ echo 5 > /proc/acpi/sleepturned the power off straight away, as expected. After installation, acpid listened to the power button and issued a halt command although the KDE session was lost. acpid didn't seem to come with any event scripts for making suspend work. Documentation/laptop-mode.txt in your kernel source directory describes laptop mode which helps keep the hard disc drive in standby mode for longer. I didn't configure this in the kernel, so I guess it's included automatically in 2.4.25. Enable it with this: $ echo "1" > /proc/sys/vm/laptop_mode $ echo "30 500 0 0 60000 60000 60 20 0" > /proc/sys/vm/bdflush The second command is the sysctl tweak referred to in the documentation. Here's how to find out which process is spinning up the disc: $ /etc/init.d/sysklogd stop $ echo "1" /proc/sys/vm/block_dump ..then, when the disc has been accessed.. $ dmesg | less $ echo "0" /proc/sys/vm/block_dump $ /etc/init.d/sysklogd start to do
|