Debian GNU/Linux on a Fujitsu Lifebook S6210

This page is meant to offer a short account of how I got Debian GNU/Linux (Sid) up and running on my Fujitsu Lifebook S6210. The short story: almost everything works. A few things (suspend to ram, flash memory reader) do not. Or I haven't been able to get them to work yet, anyway.

Contents

  1. Introduction
  2. Testing With Knoppix
  3. Partitioning
  4. Installing Debian Sarge
  5. Upgrading to Sid
  6. Internal Wireless Card
  7. CD/DVD Burner
  8. ACPI: Monitoring, Hibernation, Standby
  9. Internal Flash Memory Reader
  10. Multimedia Buttons
  11. Links
  12. Contact Me

Introduction

After some research, I decided the S6210 offered a good compromise between price, features, and portability. I bought it when it came out, so I couldn't find any success stories as of yet, but most of the components looked compatible. And, since Fujitsu offers a 15-day, no-questions-asked return policy, I figured that I couldn't go too wrong.

I ordered my machine over the phone, and I was told that, in general, they only offer the return policy to those who buy their pre-set configurations. That didn't make much sense for me, since I wanted a bigger hard drive and more memory, but didn't want to pay more for XP Pro. They gave me the return policy anyway, without much hassle, but suggested I wouldn't have gotten it if I had ordered online.

Also, I almost missed out on a 5% discount for students/teachers. I only ended up receiving it because, when I gave the salesperson my email address, she noticed the dot-edu at the end and asked me about it. So, if you are in school in some capacity, make sure to tell them.

Anyway, the good news is that almost everything of importance works. I'm still having some trouble with certain ACPI features - suspend to RAM in particular - and I can't get the internal flash memory reader to work, but other than that things are going just fine. What follows is a brief step-by-step account of how I got things running on my machine. If I left anything out, let me know, and I'll add it below.

Testing With Knoppix

I decided to test out the machine with Knoppix 3.4. After changing the boot order in the BIOS, Knoppix started up, and everything seemed to detect fine, although I wasn't online. This would turn out to be somewhat important in the future. But, outside of this, I was ready to move forward. Worst case scenario, I just restore the factory image and start over.

Partitioning

The machine comes with two partitions: one main NTFS one with XP on it, and a smaller one with a recovery image. I decided to keep both; I figured that with a 60G hd it couldn't hurt. But I was a little wary about resizing the main NTFS partition. I knew that some installers didn't play very nicely with NTFS. I decided to use the partitioning tool which comes on the first disk of the Mandrake 10 installer. I went through the graphical install up to the point of partitioning, shrunk the main NTFS partition down to 15G (I have room to spare), formatted a swap (1G) and ext3 partition, and left the others window partition in place. After rewriting the partition table, I shut off the computer before the Mandrake install could continue.

Upon booting, I discovered that Windows now thought it was inhabiting a 15G hd, and could still see its second partition. Good. I stuck the Mandrake CD back in the drawer and took out my Debian Sarge Installer. As a partitioning tool, at least, the Mandrake installer is pretty nice. I have also heard good things about the QtParted tool that comes on Knoppix, but I haven't tried it myself.

Installing Debian Sarge

I had tried the new Debian Sarge Installer Beta 4 on my old laptop, and it had worked like a charm. Only problem was that the old laptop was sharing disk space with a FAT32 partition, and I was a bit concerned about the top item in the Beta 4 errata: "Windows OS not detected. The installer may fail to detect existing installations of Windows, if Windows uses an NTFS filesystem. It will not be added to the grub boot menu. (This problem is fixed in the daily builds.)" I elected to use the Test Candidate 1 installer instead.

Update: As Sarge nears release, there have been newer (and presumably more bug-free) installers released. Currently, they are on Release Candidate 1, and I assume RC2 will follow shortly thereafter, with the official installer coming out with the release of Sarge. I haven't tried these, so I don't know if the problems described below are still relevant. If not, great. If so, the workaround below should still work. In any case, I would suggest using the most recent stable installer.

After downloading the Install CD and burning it on the Windows partition with the supplied CD-burning software, I started up. I decided to go with the 2.6 kernel install, just in case it took care of certain hardware. The installer had 2.6.6, which seemed mature enough, so I passed the installer the parameter "linux26" at boot.

Everything was going fine until I encountered a screen telling me that my Network card was not detected. The error screen looked like this. (Update: I've since come discovered that this has something to do with the order in which it detects firewire and ethernet. See the note a few paragraphs below.) This seemed like a problem. I rebooted with Knoppix and ran lspci -v, which gave me the following output for my NIC:

0000:01:0c.0 Ethernet controller: Broadcom Corporation BCM5705M
10/100/1000Base T (rev 02) Subsystem: Fujitsu Limited.: Unknown device
123b Flags: bus master, fast devsel, latency 64, IRQ 11 Memory at
d0204000 (32-bit, non-prefetchable) Capabilities: [40] Power
Management version 2

A bit of searching on the internet suggested that the b44 module should work for this card. Other sources also pointed to tg3 module. Finally, there was also apparently a downloadable module from Broadcom itself. But, if possible, I wanted to try to stick with what was in the kernel.

More searching showed that lots of people were having trouble with this card and its drivers. I tried booting with Knoppix again, once with the 2.4 kernel and once with the 2.6 kernel. DHCP only worked with the 2.6 kernel. When it did work, I ran lsmod, and found out that the b44 module was installed. Things seemed to be working, so I figured I would go with that module.

I rebooted with the installer, passed it the 2.6 parameter, and went through the installation up to the point of the error. It then gave me a list of modules to choose from. I chose b44, but no dice - the screen just repeated. So I escaped out of the screen and continued with the installation, despite this warning. My idea was to load the base system, and then try probing the module after the reboot. This turned out to do the trick.

So, I carried on, loaded the base system, and rebooted. I got the standard base-config welcome. I went through the root-password and creation of users. Then, before apt could do its thing (or right when it gave me a warning about not being able to get on the network) I pressed ALT-F2 to go to another virtual terminal, ran "modprobe b44," and then "dhclient eth0." I was now online, and apt finished my installation for me.

Note: I recently reinstalled, and discovered that I had to run "dhclient eth1" instead of "eth0" at this point. It seems to be something about how it senses the firewire port first, and assigns it to "eth0." In any case, try both. If you put b44 in your /etc/modules, the ethernet port will be assigned to eth0 in the future.

A couple of things to note. First, because I did all this network fiddling manually, I had to set up both lo and eth0 in /etc/network/interfaces by hand. This was no problem; the standard script worked:

 
auto lo eth0 
iface lo inet loopback 
iface eth0 inet dhcp

Don't forget the loopback line. Without it, the desktop environments will complain. Second, make sure to add b44 to /etc/modules. With these two pieves in place, everything seemed to work fine. Oh, and during the base-config, I told it not to bother downloading any packages; I would do that manually, after upgrading.

Upgrading to Sid

For all of Unstable's problems, I prefer it to Testing since fixes tend to be faster in coming. In order to get the quickest mirrors, I downloaded netselect-apt, and let it do the work for me.

belacqua:/home/jkr# apt-get install netselect-apt
belacqua:/home/jkr# netselect-apt unstable

This downloads a list of mirrors and writes a sources.list of the fastest in the current directory. Then you just have to move it to the apt directory and upgrade:

belacqua:/home/jkr# cp sources.list /etc/apt/
belacqua:/home/jkr# apt-get update && apt-get dist-upgrade

And a few minutes later, I had a basic Debian Sid system on my computer.

The rest of the installation is pretty self-evident. I tend to add the programs I want as the need arises. First ssh and sftp so I can get the config files and documents folder I keep backed up online. Then tetex, cupsys, x-window-system, kde, gnome, openoffice, and so on.

X worked fine with minimal tweaking, and sound worked after installing alsa.

And finally, after all that trouble installing the driver for the Broadcom card, I haven't had one problem using it.

Update: I recently upgraded to 2.6.7, and the mouse (trackpad) is now quite wild and jumpy when it is first touched (whether in GPM or X). After I take my finger off it settles down and works fine. But it would be nice to find a patch to get rid of this.

Internal Wireless Card

Update: The native ipw2200 driver is now working, and working well. You no longer need ndiswrapper, but the below information may still be useful. For one thing, I think the ipw2200 driver is 2.6-only, so if you're still running 2.4 you might need to use ndiswrapper. In order to run the ipw2200 driver, you can download the source from ipw2200.sf.net, or you can apt-get the debian package. I prefer the latter, because you can use make-kpkg to build a modules_image. In either case, though, you need to download firmware from the ipw2200 site, and place it in /usr/lib/hotplug/firmware. It will be loaded automatically when the driver is loaded.

Older ndiswrapper information below.

I didn't expect to have too much trouble with the Intel 2200BG wireless card, because NdisWrapper says it is a supported card, and I have had pretty good luck with their software in the past. And work it did. First, though, I had to do the following things:

  1. Download and build a new kernel using kernel-package. I assume if you're installing Debian Sid you know how to do this. If not, consult this page. I don't know if there's a way to build kernel modules in Debian without building your own kernel; I always seem to get mismatches between the source and the stock kernel. In any case, it's a good chance to trim the kernel down.
  2. Download the Debian packages of the ndiswrapper module source by adding the following lines to your sources.list
            deb http://rigtorp.se/debian/ unstable/
            deb-src http://rigtorp.se/debian/ unstable/
    
    and then installing the packages (while you're at it, install the wireless-tools package as well)
    belacqua:/home/jkr# apt-get install ndiswrapper 
      ndiswrapper-source wireless-tools
    
  3. Download a Windows driver, such as this one. Note that this is actually a zip file, even though it calls itself an exe, so you will need to apt-get install unzip to extract the driver:
    jkr@belacqua:~/downloads$ unzip WLD_int_80129000.exe
    Archive:  WLD_int_80129000.exe
      inflating: WLAN_8.0.12.9000/SetupWLD.EXE
      inflating: WLAN_8.0.12.9000/SetupWLD.INI
      inflating: WLAN_8.0.12.9000/W22MLRES.DLL
      inflating: WLAN_8.0.12.9000/W22n51.cat
      inflating: WLAN_8.0.12.9000/w22n51.INF
      inflating: WLAN_8.0.12.9000/w22n51.sys
      inflating: WLAN_8.0.12.9000/W22NCPA.DLL
      inflating: WLAN_8.0.12.9000/WLDMLRES.DLL
    
  4. Go to /usr/src/ and unpack the ndiswrapper-source package. Then go to /usr/src/linux (a simlink to your kernel source) and run
    fakeroot make-kpkg modules_image
    
    This should give you an "ndiswrapper-modules-2.X.X_0.X-X+custom.X.0_i386.deb" package in your /usr/src/ directory. Install it with dpkg, and run depmod.
  5. Now use ndiswrapper to install the Windows driver, by using "ndisrapper -i" on the .inf file. In my case:
    belacqua:~# ndiswrapper -i /home/jkr/downloads/WLAN_8.0.12.9000/w22n51.INF
    
    Now run "ndiswrapper -l" to check it. If all goes well you should see
    belacqua:~# ndiswrapper -l
    Installed ndis drivers:
    w22n51  present
    
  6. Now modprobe ndiswrapper and run iwconfig. You should see wlan0 there. In my school library, I can just run "dhclient wlan0" to get online. Sometimes, though, in more congested areas, it's necessary to pass it parameters like the ESSID or, at home, an encryption key. Read the man on iwconfig to see how to do this.

CD/DVD Burner

The CD player works fine, although there is the annoying issue of the sound card not picking up analog sound from the CD player. The upshot of this is that you need to use a cd player that can work with digital input, like XMMS. I've recently switched from KDE to GNOME, and there's a GNOME player called goobox, available from the Unstable repos, that can do this as well; gnome-cd cannot.

The CD burner has worked fine for me with Nautilus's cd burner and K3B. I know that K3B (or, mayber, cdrecord?) had some problems with 2.6.8 and above. I don't know if that's been fixed. I don't burn audio cds much, so it's not that big a priority for me. Check the news section of the K3B site for updates on this. (In the worst case scenario, I guess you could keep around a 2.6.7 kernel to boot from for burning audio cds.) Note:If you are interested in ripping mp3s with sound-juicer in GNOME (it's a nice little app), then you will need the gstreamer-lame plugin, which isn't distributed with Debian for legal reasons. I wrote a short how-to on how to build this. There's a link below in my links section.

DVD player works fine with Totem (or Xine). I like Mplayer but Xine and Xine front-ends work much better with DVD menu navigation.

And, finally, I haven't tried the DVD burner yet. I see no reason to believe it wouldn't work with K3B, though.

ACPI: Monitoring, Hibernation, Standby

This is a mixed bag, and largely favorable, with the notable exception of standby (suspend to ram) being practically useless. I'll go through the different power management aspects here one by one.

Power Monitoring

The laptop seems to have no problem reporting on battery status. Fan starts when necessary (running a DVD, burning a CD) doesn't seem to run when I'm not doing much. The laptop never seems to run excessively hot. I trust that it knows what it's doing here.

Hibernation (suspend to disk)

This saves the current state to the swap partition and restores it on reboot. You can enter this state by typing

echo 4 > /proc/acpi/sleep

or by using a utility built into the kbattery systray applet (if you are using KDE). It works fine, although you are warned not to change any files between going to sleep and waking up. The reboot process doesn't seem to be much shorter than a standard boot, however, so it doesn't seem all that useful.

Standby (suspend to RAM)

This is the one I really want, and it's the one that doesn't work yet. I can put it into the the standby state by entering

echo 3 > /proc/acpi/sleep

and it does its thing just fine, but when I wake it up by pressing the power button, the monitor stays blank. I can shut it off by typing commands blindly, but this doesn't do me much good. Looking around the net, I see that this is a pretty standard problem. But if anyone has any luck on this machine, please write me and tell me about it.

Update: I upgraded to the 2.6.7 kernel, and now when I enter S3, the computer does not go down at all. Remco Treffkorn explained the problem to me:

Suspend does not work on 2.6.7 either. The kernel fails to get the ehci_hcd driver to suspend and that keeps suspend from happening... If the module is unloaded manually, then suspend is entered, but it will not come back, the screen is black.

So still nothing doing on this front. Oh well. (8/1/04)

Power Button

One neat thing that acpi does here, though, is link the power button to certain events. If you are using X and press the power button it shuts X down (I assume it's the same as ctrl-alt-bksp, though I've never checked). If you are in the console and you press it, it shuts the computer down cleanly. The latter, in particular, is nice for those times when you just can't be bothered to type "su -c".

Internal Flash Memory Reader

No luck thus far. I tried mounting a Memory Stick as /dev/sda1 but it wouldn't recognize it. It seems to show up in lspci -v as

0000:00:1d.7 USB Controller: Intel Corp. 82801DB (ICH4) USB2
EHCI Controller (rev 03) (prog-if 20 [EHCI])
        Subsystem: Fujitsu Limited.: Unknown device 11ab
        Flags: bus master, medium devsel, latency 0, IRQ 11
        Memory at d0100000 (32-bit, non-prefetchable)
        Capabilities: [50] Power Management version 2
        Capabilities: [58] #0a [2080]

though I'm not absolutely certain. No combination of modules and drivers (uhci, ehci, usb, scsi) tried thus far seems to make it visible to the computer.

I would love to get this working, and I'm going to keep on trying, but it does feel as if I've exhausted most of the possibilities for the time being.

Multimedia Buttons

There are some buttons above the keyboard near the lcd which, in Windows, can be linked to certain applications. I haven't really tried to get these working in Linux yet, so I'm not sure whether or not it can be done. Truth be told, I don't care all that much; it's not a feature I'd really use.

Links

Here is some other stuff of interest:

Contact Me

Do you have any answers to my as-yet unanswered questions? Have I made any glaring errors here, or left anything out? Please let me know:

< jr2075 (at) columbia.edu >