BACK
Apmd
Echos
Index
Latitude
Lifebook
Lifebook2
Linux
Revo
Swsusp
Fujitsu Siemens Lifebook C-6597 under Linux

Fujitsu Siemens Lifebook C-6597 under Linux

As usual, the following informations are provided as is, with no warranty of any kind. Use this at your own risk.

I used to have a Lifebook C-6597 running under linux. This page describes my settings for this laptop and tells the story of the installation.

Summary

The Fujitsu-Siemens Lifebook C-6597 may be used under linux but installation is not straightforward in order to obtain a stable and usable configuration. Briefly one has to:
  1. Install linux using (for instance) SuSE 7.2.
  2. Compile and install a 2.4.16 kernel with ext3 filesystem support. CONFIG_APM_DISPLAY_BLANK should be set to NO. Do NOT use kernel level PCMCIA drivers.
  3. Upgrade all partitions to ext3 filesystem using tune2fs -j /dev/hdaX in single user mode. Edit /etc/fstab accordingly.
  4. Add the command line /sbin/hdparm -d 0 /dev/hda in boot.local script.
  5. Use XFree86 in a 4.0.X version. The card is correctly configured by sax2.
  6. Enable GPM on console.
  7. Configure ethernet adapter by adding alias eth0 8139too in the /etc/modules.conf file.
  8. Recompile the pcmcia-cs-3.1.30 package.
  9. Disable all alsa stuff and use the i810 kernel sound driver instead (but keep alsa package installed since other packages of SuSE 7.2 depend on it).
For more information and limitations, see below.

TODOs

Those are tasks remaining to do for complete installation of linux on the Fujitsu Siemens Lifebook C-6597:
  • Fix the suspend/resume problem. The first time one suspends, resume works, the second time it hangs. Also on first resume, configuration of pcmcia controller, USB and IrDA is lost. All this is probably the same problem.
    I'm now able to suspend and resume on disk, instead of RAM using the software suspend. kernel patch. This works quite reliably.
  • Find or write an AC'97 driver for the winmodem. This is the most difficult todo.
  • Try to use the parallel port, for instance with a printer.
Please let me know if you perform some of the tasks above. Because of a hardware failure in my LCD screen, I have now upgraded to a brand new Fujitsu-Siemens C1020. Hence, I will concentrate my efforts on this model... which appears to have very few common with this one.

Specifications

The version of your Lifebook is written under the laptop on a little transparent sticker in black foreground over black background. If you have good eyes, you will be able to confirm the C-6597 version of your laptop. Take care that the informations provided here are for this version only. Fujitsu-Siemens laptops appear internally to be very different one from another even when the difference between their identification code is small.

An official page for this laptop can be found on Fujitsu-Siemens England website. The official specifications of Lifebook Cxxx7 are partly confirmed by an lspci -v. The good news is that this laptop can run linux. The bad news is that some of its chipset are not fully linux compliant ;-), namely the i8x0 chipset which is the core of its architecture.

Installing Linux

I used the SuSE 7.2 Pro edition. The installation ran smoothly (DVD is perfectly supported which implies a very comfortable installation without changing CDs) and everything seems correct except the modem. But more subtle problems appear after some days of use. I hope this page will prevent others from running in the same problems.

A good point is that the laptop is shipped with a pre-installed Win system that leaves half of the disk empty. That means that you can install linux without erasing the pre-installed system. For me 4Gb are used by the NTFS partition of Windows 2000. I have chosen the following partitioning, which may be a good start point for your needs :

  1. /dev/hda1 4Gb (NTFS)
  2. /dev/hda2 24Mb (/boot)
  3. /dev/hda3 175Mb (swap)
  4. /dev/hda4 (extended partition)
  5. /dev/hda5 750Mb (VFAT32 /dos) Formatted under Win2000. This is only needed if you want to be able to write part of your disk both from linux and Win2000.
  6. /dev/hda6 250Mb (/var)
  7. /dev/hda7 1Gb (/usr/src)
  8. /dev/hda8 1.2 Gb (/home)
  9. /dev/hda9 2 Gb (/)
I have isolated /var and /usr/src for safety reasons. Compiling a kernel appears necessary to me, in order to get rid of some nasty hangs. While experimenting with linmodem drivers, I experienced a very nasty hang that crashed my root inode. In other words, I had to manually run e2fsk, recover scattered parts of my directories, save them under /dos partition (fortunately I had it). I hence decided to isolate /var and /usr/src because this hang occured while I was compiling and a lot of system logs go to /var. I also made a /home to save user data from a possible other armaggedon.

I experienced multiple times (within a month delay) that if laptop isn't shut off properly (system failure :( or battery out of power) the filesystems can be severely damaged. I've discovered with this laptop some of the worst e2fs unconsistencies I have ever met, including physical damage on disk blocks. My old laptop ran out of battery hundreds of time with nothing more terrible than unattached inode from time to time. This model seems non robust to such incident, which is normal life of a laptop.

I have tried to disable the kernel option "Use PCI DMA by default when available". This seems to fix some of the disk failure problems. If you don't want to recompile your kernel, you'll have to put the command

/sbin/hdparm -d 0 /dev/hda
somewhere in your boot scripts (e.g. in /etc/init.d/boot.local for SuSE).

This command disable DMA for the disk. I strongly advice to use it. Performance doesn't seem to be affected.

As a consequence, using a journalized filesystem appears necessary and ext3 seems a good solution. I now use it for a while and it saves me lots of time recovering journal instead of filesystem checking.

Kernel

SuSE 7.2 is based upon a patched 2.4.4 kernel. At first, it seems that this kernel is unstable. In the first hours I experienced dozens of linux frozen conditions. After several days of investigations, it appears to me that the origin of those problems are of two kinds :
  • Sound support under alsa MUST be disabled. The chipset is recognized but the driver is buggy. The problem is that alsa is installed by default with SuSE.
  • Sometimes, when quitting X, the keyboard gets in a completely unresponsive state. Even the standby button doesn't work. The only thing that remains is to press the power button for 5 seconds and experience e2fsck ! If you are connected to a LAN, you can also reboot the computer remotely. This behaviour disappears with more recent kernel and activation of GPM (see below).
  • I even experienced a complete lock up: I had to disconnect AC power and the battery to shut down.
I have tried several kernels on this laptop. The 2.2.19 and 2.4.4 are OK. Do NOT use 2.4.12 kernel : I spent several days trying to figure out why X was not working and it was corrected by upgrading to 2.4.13. I have run 2.4.13 version and it seems pretty stable. I've renonced to upgrade to 2.4.14 kernel due to instability problems. Kernel 2.4.15 is buggy, ignore it. Kernel 2.4.16 and above should be OK. I now use 2.4.17 kernel with ext3 journaling filesystem and it seems OK.

I started using 2.4.18 kernel.

The option CONFIG_APM_DISPLAY_BLANK should be set to NO. I experienced some hangs that may be related to the activation of this option. Another critical option is "Use PCI DMA by default when available" or CONFIG_IDEDMA_PCI_AUTO that also must be set to NO (see above).

For the 2.4.18 kernel, here is my .config file.

Ext3 filesystem

Starting with kernel 2.4.16 (2.4.15 is buggy) the journaling filesystem ext3 can be used natively with linux. What is important is that transition is possible from ext2fs partitions. Just in case, it is more secure to test a rescue floppy or cdrom before upgrading. It is also important to note that an ext3 filesystem can be mounted as ext2 by an "old" kernel. What is important in such a case is to unmount it nicely.

Kernel is not the only thing to change. You must use some recent version of e2fsprogs to deal with ext3 filesystems. I use version 1.25 but more recent versions can be found at e2fsprogs.sourceforge.net.

The best way to upgrade is to log as root on console (Ctrl-Alt F2) and switch to single user runlevel 1 by typing

telinit 1
Log in and unmount all ext2 partitions except root. Remount the root partition readonly like that:
mount -o ro,remount /
For every ext2 partition type
tune2fs -j /dev/hdaX
This adds a journal to the filesystem. Edit /etc/fstab and change ext2 to ext3 for those partitions. Try to reboot and see if all works well.

To remove journal, use the same procedure and type

tune2fs -O^has_journal /dev/hdaX

X11

You must use XFree86 in its 4.0.X version. The card is correctly detected by sax2. The i810 chipset can be run in 1024x768 with 16M colors. Note however that the current driver can handle only one screen at a time. You cannot have two sessions running at the same time under screens :0 and :1 for instance. This is documented in the XFree86 driver. The rendering is rather nice.

Note that the kernel module agpgart is mandatory.

Caution: Do NOT use kernel 2.4.12, since X does not work on the C-6597 with this kernel.

Here is my XF86config for the following server (xf86-4.0.3-35.rpm package of SuSE-7.2):

XFree86 Version 4.0.3 / X Window System
(protocol Version 11, revision 0, vendor release 6400)
Release Date: 16 March 2001
        If the server is older than 6-12 months, or if your card is
        newer than the above date, look for a newer version before
        reporting problems.  (See http://www.XFree86.Org/FAQ)
Operating System: SuSE Linux [ELF] SuSE
Module Loader present

GPM

You definitely MUST enable GPM on the console. Don't be frightened by uncompatibilities with X, that's old story. If you don't enable GPM, then every time you will touch the pad in console mode you will loose both mouse and keyboard and will have to reboot and e2fs filesystems will be checked.

Peripherals

IRQ

BIOS comes with PnP OS set to Yes. Although it works, I have disabled that and manualy set some of my IRQs because I didn't want to share all peripherals on IRQ10. My settings for the BIOS are therefore:
Advanced/PnP OS No
Advanced/Configuration IRQ
PCI IRQ Line 1: 5
PCI IRQ Line 2: 10
PCI IRQ Line 3: 10
PCI IRQ Line 4: 10

Network adapter

Network chipset is RealTek a RTL-8139. It is very well supported by the 8139too module. Just place the following line in your /etc/modules.conf file.
alias eth0 8139too

USB port

I only have an USB mouse as testing device. The two USB ports seem to work correctly on boot time. But they are uncorrectly reinitialized after a suspend/resume cycle and become unusable. I use usb-uhci driver (uhci has same behaviour).

Serial port

Serial port ttyS0 works without problem.

Floppy reader

It works but seems a little slow.

Be careful not to disable it in the BIOS. It happened to me and it is very difficult to figure what's happening since the floppy reader is nevertheless accessed and begin to turn. The disabling can be done either directly or more viciously by setting the floppy access option to "supervisor only" in the security area of the BIOS. This option is NOT limited to the boot sequence as I thought. I'm sure Phoenix would say: it's not a bug it's a feature!

PC-card reader

PC-card package must be recompiled if you change kernel. It works smoothly (test performed with modem and ethernet adapter) both with 2.2.19 and 2.4.13 kernels.

However, in some cases (and I can't figure out why) the cardbus controller cannot be configured on boot. It will be usable only after a suspend in RAM/resume cycle. This must have something to do with my last recompilation of kernel and pcmcia package.

After investigation, I have found a usable configuration. I recompiled my 2.4.13 kernel WITHOUT pcmcia support in kernel tree. I then recompiled the pcmcia-cs-3.1.30 package and installed the modules. This was still not working because the probe command still behaves incorrectly. However, the pcmcia script embedded in the pcmcia package works correctly. I therefore replaced the original SuSE pcmcia script by the pcmcia package one and it seems to work, even after suspend/resume.

System beeps

The system beep seems to be performed via the i810 chipset. As stated below, 2.4.16 kernel seems to use it correctly. The volume is not tunable by xset: one must use kmix (or another mixer).

Sound

The kernel driver of the i810 chipset seems now to be correct starting with the 2.4.16 kernel. Sound can be enabled this way. I currently use the following lines in the modules.conf file:
alias sound off
alias midi off
alias char-major-14 i810_audio
options i810_audio clocking=48000
Be sure to disable all alsa-related stuff.

DVD

Video DVDs can be played and browsed using xine at least with version 0.9.8 that can be found as rpm packages. The XShm video driver and Oss sound driver work.

Modem

Modem is an unsupported AMR Winmodem based on the i810 AC'97 Codec chipset. I found no driver for it. It is claimed by Windows to be a PCtel HSP56 MR 2.30-9K Data/Fax modem, but I think that the driver was patched by Fujitsu to get a (hardly) usable Windows driver, since I find no trace of this component under PCI. No need to try ltmodem nor pctel linux drivers, I have done it and it doesn't work. I experienced a nasty hang trying to play with the latest pctel 0.8.9 sources (BIOS reboot !) so believe me, don't try by yourself, unless you know what you do.

Another initiative is under effort named ac97_modem. As of today 25/12/2001, this is not a gift ;-( The laptop hangs immediatly on loading the module.

Conexant. It is not working either but it detects a Lucent modem and Lucent AMR modems are not supported by the Lucent driver.

Infra-red device

I have tested this feature under Linux both with another laptop and a PDA. It works in IrDA mode (to be set in the BIOS) as serial emulation on ttyS1 device. However, I have a problem with suspension/resume, since the IrDA is lost after such a cycle.

Advanced Power Management

BIOS settings

Here are my setting on BIOS for APM :
Power/Power Savings : Enabled
      Disk : Off
      Standby : Off
      Suspend : Off
Power/Suspend Mode : Suspend
      Save To Disk : Off (definitely avoid 'After 1 hour', see below)
Power/Advanced Features/Lid Open Resume : Off

The Phoenix BIOS should be able to suspend on disk. A PHDISK utility can be used to install a file or a partition for hibenating. But this is not straightforward. First, it seems that making an hibernating partition erase all other partitions on the disk. Hence, one has to reinstall linux and NT/2000. The alternate file solution must be set on a VFAT primary partition with bootable flag. I have tried this last solution. I have only succeeded to hibernate in text mode. When XFree is activated, the hibernation results in freezing. The point is that Win2000 freezes the same way when suspension on disk is activated on BIOS level. I therefore recommend to disable BIOS suspension on disk. Win2000 behaves smoothly without that, since a software suspension is the default behaviour.

With the above setting, under linux, the laptop suspends in RAM when closing or pressing the standby button. Resuming is correct even in X11 mode. Yet, it should be noted that the APMD_LEAVE_X_BEFORE_SUSPEND/STANDBY settings must be set to NO, otherwise the suspend/standby kills X or even hangs the machine.

I now have estimated more precisely the problems with suspend/resume. It seems that only a single cycle is possible. First time you suspend, resume may occur correctly. However, some drivers are lost on resume (IrDA, USB, maybe PCMCIA). The second time you suspend, resume results in a hang.

Suspension seems to be more reliable using the 2.4.18 patched kernel tested below for software suspension. This is probably due to a slight modification I introduced in agpgart module to make it reinitialize the i815 chipset on each resume. Multiple suspensions are now possible (though some hangs still occur occasionally) but IrDA and USB remain unusable after resume from RAM.

Software suspension

I have investigated software suspension, since linux can also suspend on disk by software. I am able to suspend on disk using software suspend. I currently use v29alpha-2.4.18 patched kernel. This works also under X11 provided you switch to a text console before suspension. The previous patches had a bug which may lead to dangerous data corruption. This is perhaps fixed since version v28alpha but more testing is welcome. It is therefore advisable not to use the software suspension for the moment if you cannot backup your datas before. This patched kernel is still interesting for RAM suspension.

For those who want to test suspension on disk, here is my method for suspending with this patched kernel. I have edited the /etc/inittab file to enable the Alt-<Up Arrow> hot key.

# special keyboard request (Alt-UpArrow)
# look into the kbd-0.90 docs for this
kb::kbrequest:/usr/local/bin/suspend
And here is my suspending script suspend which uses my improved apmd-proxy script. This is specially important for stopping and launching services before suspension and after resume. Again, the gpm script has to be lauched before switching to X console, because otherwise keyboard and mouse are hanged.

To suspend, I switch to a text console by Ctrl-Alt-F1 and type Alt-UpArrow or launch as root the script /usr/local/bin/suspend. What is interesting is that IrDA is not lost after a resume from disk. This seems to confirm a BIOS bug with suspension to RAM. The peripherals are probably not correctly reset by the BIOS on resume from RAM. This is confirmed by the fact that Windows 2000 behaves exactly the same way, as if IrDA chipset wasn't even powered on by BIOS.

APM daemon

You should also be aware that suspending in RAM can cause (again) hang of the machine if for instance the DVD is mounted. This is why the automounter should be used. Be careful with YaST, since it mounts the DVD on /var/adm/mount and this may cause problem. Also KDE (if you use it) mounts the floppy and cdrom devices and umount them only on demand.

If apmd is not running, the suspend/resume is faster and seems not to hang. The memory seems however to get corrupted, since I experienced weird things when apmd is not running. For instance, I got some segmentation faults on emacs after a resume, without being able to launch it under X: I had to reboot. Besides, apmd should run in order to tune the system according to power.

Please also have a look at my apmd page where I improve the apmd-proxy script.

I have also noticed that if AC status changes in suspend mode, the modification is not seen by the apm kernel driver. This may be annoying if you unplug your laptop in suspend state before a travel, because the correct power settings at the system and user levels may not be enforced. I had to patch my kernel to correct that.

Using all these settings, I was able to use the laptop for four hours on a single lithium battery.

ACPI

As of 2.4.16 kernel, ACPI driver lacks too much functionality to be usable in replacement of APM. I haven't tested it in more recent kernels.

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

BACK
Apmd
Echos
Index
Latitude
Lifebook
Lifebook2
Linux
Revo
Swsusp

Florent Chabaud
E-mail: florent.chabaud@m4x.org
GPG key: KEY