Fedora Core FC1 on a Fujitsu Lifebook P1120

last updated: $Date: 2004/08/19 08:20:14 $

Before you get too lost in this document, note that I've just upgraded the thing to FC2. Details are here, but note that these documents are complementary.

Précis

The Fujitsu Lifebook P1120 is a submini laptop with a form factor of about 23cm*15cm*3cm (approx. 9"*6"*1.2"). It comes with a 30GB HDD, an 800MHz Crusoe processor, 256MB of core, a three-button clitmouse, 100MB NIC and modem, a nice 1024*600 (sic) touchscreen, two USB ports, one type-2 PCMCIA port, and a soundcard. The keyboard is nice, but a ittle too small to type effectively at high-speed, which may be a problem; we'll see. There is no CD/DVD drive; a PCMCIA one is available as an optional extra, but I don't really use one much on my laptop, so I didn't care.

I bought it in December 2003 to replace my ageing (but excellent) Sony VAIO C1F Picturebook. I would have replaced it with another C1, but (a) the C1 costs about 50% more, and (b) I got really, really fed up with the proprietary hardware on my C1, and there's more on the latest ones. Sony just loves to lock you in, and the promise of great hardware isn't enough, any more.


This is a picture of the P1120, attached to a USB FDD, installing FC1. The floppy on top of the FDD should give some scale to the image.

Installing FC1

I picked FC1 because I'm a lifelong DeadRat fan, but like many such fans, have recently been discombobulated by their decision to split the product. I owe it to RH to try out the new Fedora Core OS, and if at all possible, to feedback on same.

Starting the install

Since, as has been noted, the machine has no CD/DVD drive, and I own no appropriate PCMCIA drive, the install had to be done off a floppy boot. I was fairly sure this would work, as I have done it a number of times with my VAIO (starting with RH62), and that was complicated by the VAIO's having no on-board ethernet and therefore needing a PCMCIA install.

As the Fujitsu has its own ethernet, I made boot and net driver floppies with

dd if=$FEDORA/images/bootdisk.img of=/dev/fd0 bs=1440k count=1
dd if=$FEDORA/images/drvnet.img   of=/dev/fd0 bs=1440k count=1
replacing $FEDORA with the root of your unpacked Fedora isos. I checked the floppies with
dd if=/dev/fd0 bs=1440k | md5sum
and comparing each result with the MD5 checksum of the appropriate on-disc image. I wouldn't skip this step if I were you; too many floppies, even brand-new ones, have dodgy sectors. Boot images use every square inch of space on a floppy, and you can't afford a single bad sector. Bad sectors hose the install in strange and unpredictable ways; avoid them if possible.

I booted from the boot floppy, told it I would do an NFS boot, fed it the net driver floppy, and the installer found the network card, automatically selecting the 8139too.o module. I was doing the install whilst on AC power, and I notice that the BIOS defaults to "auto" mode for the onboard ethernet; that is, if you are running on battery, the chipset is only powered up when link is detected. I don't know if that would affect the driver load were you to be running from battery and not have the cable hooked up. If you have problems, install with the mains adapter hooked up (which is a good idea, anyway).

I did a custom install, skipping the "configure the monitor" step, blowing away all the existing partitions (Windows, kiss my arse). I created a /foo partition, of size 300M, forcing it to be primary, as I had read elsewhere (see "Partitioning") that it might be helpful later in getting suspend-to-disc working. I can spare 300MB, anyway; this is a 30GB HDD, and my old laptop had 4GB.

Later note (2004 01 07): I have suspend-to-disc mostly working, and it doesn't need this patition, as it suspends to swap. See further down for details.

After the install

This section will be devoted to different bits of hardware and what was required to get them working.

X windows

I booted into runlevel 3 to avoid X trying to start up, and used the built-in X configuration tool redhat-config-xfree86, accepting the defaults and allowing it to create an /etc/X11/XF86Config file. I then edited the file, following pointers at the bottom of aaahoopy's page, and found that by changing the line
Modes		"800x600" "640x480"
to
Modes		"1024x600" "800x600" "640x480"
that X started up without any further complaint. I didn't need to mess with Modeline lines, which I suspect is due to the later XFree86 version.

Wireless

I guessed that the wireless chipset was on the PCI bus. /sbin/lspci confirms this, and says that the chipset is a Prism 2. More precisely, it says
00:12.0 Network controller: Harris Semiconductor Prism 2.5 Wavelan chipset (rev 01)
A little googling suggested that the orinoco_pci driver was the right one. /sbin/modprobe orinoco_pci allowed /sbin/ifconfig -a to show an eth1 where before there had only been an eth0. To test the wireless, I brought the onboard NIC down with
/etc/sysconfig/network-scripts/ifdown eth0
and configured the wireless with
iwconfig eth1 key 0123-4567-89ab-cdef-0123-4567-89
sleep 2
ifconfig eth1 1.2.3.4 netmask 0xffffff00
route add default gw 1.2.3.1
which are taken straight from my old VAIO (except that the network information has, obviously, been changed). The sleep 2 was to let my old PCMCIA 802.11b hardware get the key set up before trying anything else, and I suspect I won't need it on this new machine. PINGing my wireless access point proved fruitful. Turning the wireless card off, using the switch on the left-hand edge of the screen, stopped PINGs (d'oh!), and turning it back on again allowed PINGing to resume after a couple of seconds delay. It's really nice that I can turn the power-hungry bits of the card off when I'm not using the WLAN, without losing any existing state (like WEP (ho, ho) key and IP address).

Sound card

Trivial. I used the builtin card detector (under X, go Main Menu -> System Settings -> Soundcard Detection), played the test sound (very loud), and that was that. I had a copy of the xmms project's xmms-mpg123 package around, to put MP3 support back into xmms (yes, I will be converting to oggs when I have the spare time), and played some of my favourite London Brass CD to verify that the card worked.

ACPI

The GNOME "battery" utility was showing "0%" all the time, and I needed to know the battery state. It is said (search for "Hibernating") that the P1120 is the first P1000 to use ACPI not APM (bummer), so all the control I had over sleeping and saving-to-disc with my VAIO is lost, probably until the 2.6 kernel can be beaten onto the laptop. However, finding the kernel line in /boot/grub/grub.conf, which begins
   kernel /vmlinuz-2.4.22-mumblemumblemumble
and appending the text acpi=on allowed the battery monitor to function properly after a reboot. Thanks to the fedora release notes for this tip.

Other hardware and issues

Custom kernel

I prefer to run my own kernel on my own hardware, and in any case there may be something to be said (eg, this guy recommends it, see the section on "Custom kernel") for a Crusoe-specific kernel. I therefore built 2.4.23, which worked fine, and the config file is here. Note that this config includes bluetooth- and suspend-to-disc-specific information, but (a) you probably want those, and (b) you can probably use make oldconfig to strip those out if you don't.

Suspend

This is very much an ongoing project. Full ACPI support, needed for suspend-to-memory and suspend-to-disc, is in the 2.6 kernel rather than 2.4, and I am warned that at this time (2004 01 08), ACPI is worse in 2.6 than in 2.4.

There is, however, an excellent project working on suspend-to-disc only for 2.4 kernels, at http://swsusp.sf.net. I have it mostly working, which means that as long as I don't have the X server running, I can suspend to disc. I can suspend with the X server running, as long as I don't ever use Ctrl-Alt-F7 to switch back to the server faceplate. If I do, I get a snow crash (excellent book, by the way) and the machine hangs hard (no keyboard interrupts serviced, that kind of thing). This message on the swsusp users list suggests that the problem is in the Xserver's support for suspension, which is imperfect for ATI Radeon Mobility (which the P1120 has). It also suggests that XFree86 4.4.0 will be good enough, when it finally comes out. Assuming the recent death of the XF86 Core Team doesn't completely derail the release process, I'll report once it's built (I'm not happy to build RC2, even though the message suggests this works fine - this is my work laptop, so I don't get paid if I can't hack on it).

If you're still interested in half-baked suspend-to-disc functionality, this is how I did it:

  1. Download the two patches from their download area. You need the latest under "core patches" (which for me was rc3A, although there are now later ones i haven't got around to testing yet), and the latest under "version-specific patches" (which was 2.4.23 for me, as I was building against the 2.4.23 kernel; if you use a later kernel, get the patches appropriate to you. While you're there, get the latest version of "suspend-script" as well (I used 0.18).
  2. Apply both patches (they say kernel-specific first, which I didn't notice, but I do watch my patch output very carefully, and there were no failures)
  3. Use my .config file to turn on the features you need.
  4. Their doco is wrong on the GRUB/LILO modifications you need. You must find the line which boots your swsusp-enabled kernel, and append "resume2=swap:/dev/hda3", replacing hda3 with whichever your swap partition is (yes, swsusp2 suspends to swap rather than the partition I so carefully created at install time. bummer.)
  5. Run the suspend-script. For me, it installed /usr/local/sbin/hibernate which required no further config. This is the script to run to shut the box down (it shuts down a few tricky-to-suspend services first, then restarts them after and resets the clock.

This is about it. Switch to a text console and run (as root), /usr/local/sbin/hibernate. You'll see a lot of stuff on the screen, and debug output on the Alt-F9 console. When you power the box on again, you'll see the reverse, as the kernel goes to the swap area, finds it contains a saved image, which it restores. If you boot without a saved image in swap (ie, you shut down normally), the kernel just boots normally.

Bluetooth

I have a 3Com bluetooth card, and needed to get GPRS working using that and my Nokia 6310i 'phone. This was a complete repeat of my earlier work, so I won't repeat the writeup. The bluez packages are now in FC1, so I applied bluez-bluefw-0.9-2, bluez-pin-0.20-1, bluez-sdp-1.5-1, bluez-hcidump-1.5-3, bluez-pan-1.1-2, bluez-libs-2.4-2 and bluez-utils-2.3-14. For the kernel, Marcel has patches applicable to 2.4.23, so those were what I used. It all works fine.

Not yet working:


THIS SECTION IS JUST NOTES TYPED IN AS I GET THINGS WORKING.  I MUST EXPAND
ON THEM OVER THE NEXT FEW DAYS


system dog-slow inside and outside X
prelink and ld-linux.so.2 using up all CPU
recompile kernel for crusoe???
nope, problem went waway after few mins as daily prelink run completed





up2date hung, but after successfully installing needed GPG key

up2date-nox --configure
accept all defaults
up2date-nox -u


pine ftp://people.redhat.com/mharris/testing/unstable/pine "mike harris"




Back to Technotes index
Back to main page