Hamster Republic -> James's Stuff -> James's GNU/Linux Gremlins Home


[Upgrading Debian] [Contura Aero] [Fujitsu Lifebook] [Mac Powerbook] [Curse of the Netherwog (now with happy ending!)] [Software Suspend]


Linux on a Fujitsu Lifebook P-Series P1000 (P1110)

[Lifebook]

The Fujitsu Lifebook is a truly beautiful laptop. It actually causes people to stop and say "Wow! What is that?", and when I tell them about the 8-hour battery life they go "No! ... Really?"

My Lifebook is a P1000. (more specificly, a P1110) The P-Series uses the Transmeta Crusoe processor, which is what attracted me to this model in the first place.

There is ample information on the web about installing Linux on a Lifebook P2040 but almost no information about the P1000. Fortunately the hardware is very similar in the two models, so most of the information you will find about the P2040 is still perfectly valid on the P1000. Some resources I found useful included:

And here is a more recent page, covering the P1120:

I will not go into detail about the hardware or the installation. This is well-covered by all the great Lifebook P2040 Linux sites. Instead I will focus on the differences in hardware between the P1000 and P2040.

Differences


What follows is an ill-organized series of notes, covering troubles and solutions I encountered over the course of getting my Lifebook up and running under Linux

According to pages like http://www-2.cs.cmu.edu/~jcl/linux/fujitsu/fujitsu_p.html and http://math.ucsd.edu/~bond/Fujitsu_P-2040/ the Lifebook's ALI chipset has a DMA problem that hangs linux boot. There is a patch available, and some workarounds, such as passing the following arguments to the kernel at boot:

ide0=ata66 ide1=ata66

Unfortunately that particular workaround didn't help me, but we shall get to that later.

I did encounter this problem using the version of the debian install disks that use the 2.4.18 kernel. I wored around this by installing from the disks that use the 2.2 kernel, and then building my own kernel later. (The hang/bug was solved by the 2.4.20 kernel)

Rather than trying to do the install right from the floppies, I actually made a little DOS partition and put the install files on there. I forget why I did this. I know it was not neccisary. I do NOT use the dos partition as a bootstrap with loadlin.exe . My intention was to have a real-dos partition available that I could boot into to work on my DOS programs, but these days DosBox is so darn cool, I didn't really need to bother.

I haven't got a Debian CD. I use the boot-floppies installer (whether I do it off actual floppy disks or not) and then as soon as I get my Ethernet card working, I install the rest of Debian over the network (which I can do at satisfactory speed thanks to my cool emplyer's T1 line). One catch is that I had to explicitly enable my Ethernet adapter in the Lifebook's BIOS setup screen. The default setting of "Auto" didn't cut it. I had to go with "Enabled" instead. As reccomended by http://geocities.com/aaahoopy/ , I used the kernel module 8139too.o for ethernet support.

Anyway. Back on the subject of that boot-time DMA lockup bug. Here are the lines that show before the normal boot-disk installation locks up:

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ALI15X3: IDE controller on PCI bus 00 dev 78
PCI: No IRQ known for interrupt pin A of device 00:0f.0. Please try using
pci=biosirq.
ALI15X3: chipset revision 195
ALI15X3: not 100% native mode: will probe irqs later

And here is the problem I get when using the ide0=ata66 ide1=ata66 workaround:

VFS: Insert root floppy disk to be loaded into RAM disk and press ENTER
request_module[block-major-2]: Root fs not mounted
VFS: Insert root floppy and press ENTER
request_module[block-major-2]: Root fs not mounted
VFS: Cannot open root device "fd0" or 02:00
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 02:00

So anyway. I went with the 2.2 kernel version of the Debian installer. No troubles there.

After I had finished installing, I compiled a fresh kernel, and also compiled and installed Alsa 0.9. I think that was the quickest I have ever got alsa working. Usually I have to fight with my /etc/modutils/alsa file (for non-debian users, the files in /etc/modutils/* get merged into /etc/modules.conf) ... but anyway, ALSA installation is still kinda confusing for someone who hasn't had to do it before. I am really looking forward to the 2.6 kernel that is supposed to have ALSA built in.

And at that point, I was running very nicely. I still needed to investigate the stylus support. I measured about 7 hours of battery life my first time around. I was going to keep battery logs to track it even more exactly, but I never bothered. The longetivity of the battery was self-evident. I didn't need to quantify it.

I also planned to look into hdparm to optimize the harddrive power usage... but enever got around to that either.

trying to get the usb floppy mountable took a little work. I think this was the first serious look I gave to USB disk devices on Linux. My previous USB experience had only been scanner-related. Anyway. From http://www.ozetechnology.com/howtos/C1VM_floppy.shtml I learned:

General Setup
Support for hot-pluggable devices Yes (needed for PCMCIA also)

Block Devices.
Normal PC Floppy disk support No

SCSI
SCSI Support Yes
SCSI Generic Support Yes
SCSI Disk Support Yes

USB Support
Support for USB Yes
USB Verbose debug messages Yes (not vital, just a good idea)
Preliminary USB Device filesystem Yes
UHCI (Intel PII4X, VIA,..) support Yes
USB Mass storage Yes
USB Mass storage verbose debug upto you (gives more info in dmesg)

And so I recompiled my kernel thusly, and then edited /etc/fstab to include the usbdevfs filesystem

After doing modprobe usb-ohci I saw a bunch of console messages indicating that USB was being detected. I could ls /proc/bus/usb and see the files in it.

But not all was well in USB-land. when I would plug in the USB floppy, I would see:

hub.c: USB new device connect on bus1/1, assigned device number 4
usb.c: USB device 4 (vend/prod 0x409/0x40) is not claimed by any active driver

But running modprobe usb-storage caused much joy and happyness. After loading that module, I was able to do:

mount /dev/sda /floppy

And it works! Besides my floppy, I have alos made use of a USB external hard drive, one of those nifty USB "Thumb" devices, and I found a nice small USB flash reader that reads four different flash formats, so I can grab pictures from any digital camera with ease.

But naturally, I don't want to have to be running modprobe this and modprobe thta all the time. I installed the hotplug package. Now I do not have to run modprobe manually.

But how to make the USB touch-screen work? When USB starts up it says:

usb.c: USB device 2 (vend/prod 0x430/0x500) is not claimed by any active driver

And I thought to myself: "Ooh. silly me. I think I just enabed input core support without also enabling USB HID support." and that got me past that particular error message...

On http://panuganty.tripod.com/debiantips/mouse.htm I found some useful info. If I do cat /dev/input/mice and then use the stylus, I see gibberish. That proves that the touchscreen hardware works. Next, I found this example config for X.

Section "InputDevice"
    Identifier    "Intelli Mouse"
    Driver        "mouse"
    Option        "AlwaysCore"
    Option        "CorePointer"
    Option        "Protocol"      "IMPS/2"
    Option        "Device"        "/dev/input/mice"
EndSection

So it worked, in a way, but the positioning was all wrong. I could touch the screen and get the mouse cursor to move, but it was never lined up. I would touch here, and the mouse would jump over there. The kernel config for USB HID input core allows you to set a resolution. I tried 1024x768 (the default) and 800x600 (My Xserver resolution at the time) and 1024x600 (the display's harware pixel maximum, and also my current Xserver resolution) and 1280x768 (the result of me being confused-- this is the hardware pixel maximum of the P2000 series) but none of those are correct. I honest;y don't even know if that setting mattered for my purposes. The mouse cursor always ends up jumping somewhere off away from where I touch-- usually down and right.

Eventually I gave up on the touch screen. Nothing I was doing was affecting it's misalignedness.

The P1000's screen is really good at displaying lower resolutions. It smooths them nicely. But for best results, I wanted to use the actual hardware resolution. I added the following Modeline to my /etc/X11/XF86Config-4 file:

Modeline "1024x600" 51 1024 1040 1216 1328 600 600 606 626

One thing that bugs me about the Lifebook P1000 is the critical low battery warning beep. This beep sounds at intervals once the battery drops below about 10% power. For a mere mortal laptop, this is a good thing, because it reminds you to plug the puppy in... but on a Lifebook, it means that you have a LOT of time left. Beeping at 2% battery life would be a lot more appropriate. I have seriously listened to the low-battery beep for an HOUR, and still had juice left. And that is not just a hour of sitting there conserving power, that was an hour of listening to MP3's and going through an edit/compile/debug cycle. (admittedly heavy on the edit and light on the compile)

I Called Tech support about the annoying "critical battery level" warning beep, but sadly they couldn't help me. I still must say I really like Fujitsu Tech support. They have been great every time I have called them.

I posted the critical threshold question at http://www.leog.net/fujp_forum/topic.asp?TOPIC_ID=1427 but (as of the last time I checked), nobody had any ideas. Nowadays when the beep starts, I just turn the volume down. No big deal... unless I am In my car with my Lifebook connected to my stereo, acting as a music player. That is ANNOYING! Here I am, seven hours into a road trip, and suddenly, beneath the currently playing "Queens of the Stone Age" track, I get this "BEEP!" .............................. "BEEP!"

Ooh. Have I mentioned yet that I got suspend-to-disk/hibernate working? No, Indeed I have not. This is my favorite feature in the world-- lots of systems can do this of course, the Lifebook isn't all that special in the hibernate field, but this is the system that first introduced me to hibernation. I am addicted now. Hibernation is wonderful! I was sad to hear from http://interstice.com/journals/Simon/20030911.html that the P1120 switched to ACPI instead of APM for power management. Hibernation works well in Linux under APM, but is still iffy in the land of the ill-supported ACPI.

I did not want to repartition, but I had enough space on my little DOS partition (yay! it came in handly after all!) to create a 266 MB hibernation file using Phoenex's PHDISK.EXE utility (I found lphdisk for linux, and used it to calculate a safe hyberation size (it reccomended 262) but it only works on partitions, not files on fat filesystems)

After that, I changed the BIOS setting to enable suspend instead of standby, and then, as I already had APM installed and working, everything worked like a charm. I have it set to hibernate when I close the lid, and re-awake when I open it again. Reloading the memory from disk does take a few seconds, but it is MUCH faster than booting. It is really nice to be able to leave my applications open and come back to them where I left off.

I double checked that none of my devices are discombobulated by hibernating. My ethernet adapter can continue a ping that was interrupted by hibernation, and my sound card can hybernate in the middle of playing a song. It's all good!

For security, I always run Xlock before hibernating. That way when I resume from hibernation, I must still enter my password before I can do anything. The security is worth the delay.

I was not able to find a laptop case small enough for my Lifebook. But inspiration struck. I went to a local Christian bookstore, and bought a Bible case. It was the *perfect* size, and had two additional zippered compartments, one which snugly fit the power-supply/charger, and one which was big enough to hold my USB flash card reader and an assortment of cables and adapters. Then I installed GnomeSword, so now if anybody asks "Is that a Bible?" I can honestly answer "Yes" :)


Well, that's all I have for the moment. I have had a few other adventures with this system, but nothing that has warranted documentation. I am really happy with it. At home I run OpenOffice on it for all my writing, and I use it for programming on-the-road. At work I use it for network monitoring, and as a portable backup for my desktop workstation. The only thing I really can't use it for is for working on my artwork in the Gimp, because I just can't draw with that little pushy-mousey thingy. That is what makes me long for the touch-screen.