Many recent lightweight laptops (less than 2kg) are built around Intel's Centrino architecture, which comprises the Pentium M processor, the 855 chipset family (itself including the memory subsystem, USB, audio, and graphics controller), and the PRO/Wireless network controller. Two such laptops are the Fujitsu S6130 and P5020 - as well as the slightly older models S6120 and P5010. Both are high-end ultralights, where the P Series optimises for small size, low weight, and multimedia applications and the S Series optimises for processing power. The following documents my experience with replacing the legacy OS that comes with these machines by GNU/Linux; despite my first hand experience being limited to the Fujitsu laptops, most of what is being said about the Centrino components will apply to other Centrino machines as well.
The instructions below come with absolutely NO WARRANTY. Following these instructions may result in broken hardware, a crippled laptop, and loss of data as well as loss of your sanity.
Summary: The Fujitsu S6130 and P5020 work fine with GNU/Linux. However, to make use of all hardware features - in particular, power management, wireless networking, and the Wide Super XGA display of the P5020 - work beyond simply installing one of the standard distributions is required.
Before getting to the actual installation and configuration of GNU/Linux, first a brief summary of the hardware.
[S6130]
[P5020]
In the following, paragraphs will be explicitly labeled [S6130] or [P5020] if they are specific to a single model. Moreover, issues concerning Centrino components will be labeled [Centrino].
I am using Fedora Core 2 as the basis for the installation. However, other distributions based on the 2.6 kernel will probably be fine as well. The following will include Fedora specifics, but I will try to keep the description as distribution-neutral as I can. Crucial to getting power management working properly is the use of the 2.6 kernel. In particular, I need some some form of software suspend (save-to-memory or save-to-disk), as I move my machine frequently and don't want to have to reboot each time.
The base installation of Fedora Core 2 (FC2) works straight out of the box. However, it does neither contain support for the Intel PRO/Wireless LAN 2100 3B nor for FireWire. (The latter is disabled, as FireWire support in some 2.6 kernels prevents the kernel from booting on some hardware; hence, FC2 disables it to be on the save side.)
[Fedora Core] Nevertheless, here some FC2-specific hints. As the media industry is increasingly successful at making the life of Linux users harder by preventing us from watching the DVDs and listening to the music that we paid for, FC2 does not come with support for playing MP3 files or watching DVD movies. More precisely, the risk of patent litigation under US law prevents Red Hat from including the necessary software components. Fortunately, the US hasn't managed (yet?) to impose its copyright and patent law on all of the rest of the planet, so the required components can be downloaded and installed from some non-US repositories.
The yum tools makes software installations and updates from
a collection of Fedora repositories very convenient - provided your
network connection is of sufficient bandwidth. To add additional
package repositories to the set considered by yum, you need
to edit the file /etc/yum.conf. Personally, I am using the
Fedora Extras repository in
combination with rpm.livna.org. To
use those, add the following to your /etc/yum.conf:
[extras-stable] name=Fedora Core $releasever - Fedora US (Stable) baseurl=http://download.fedora.us/fedora/fedora/$releasever/$basearch/RPMS.stable/ gpgcheck=1 [livna-stable] name=Livna.org Fedora Compatible Packages (Stable) failovermethod=priority baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/yum/stable http://rpm.livna.org/fedora/1.92/$basearch/yum/stable gpgcheck=1
To use the packages from Fedora Extras and rpm.livna.org download their GPG keys, as described on their web sites. Or if you trust me, execute
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY rpm --import http://www.fedora.us/FEDORA-GPG-KEY
as root.
Suspend-to-memory (aka ACPI state S3) cannot be used with current Linux kernels on the Fujitsu S6130 and P5020. Although, the actual Linux kernel survives the transition, the screen stays black after the machine has otherwise resumed. The graphics adapter doesn't seem to be properly re-initialised.
Hence, I am using suspend-to-disk (aka ACPI state S4). Linux currently has three implementations of that functionality, of which - in 2.6.5 - two are shipped with the standard kernel (namely, swsusp and pmdisk) and one is available as a patch (namely swsusp2). In the following, I will describe how to get swsusp to work. I'd be interested to hear of anybody who successfully uses swsusp2 with 2.6 on the Fujitsu machines, or any other centrino laptop.
You need to have kernel sources installed on your system; i.e., on
Fedora Core, you need the kernel-source package matching
your running kernel. I have tried this with version 2.6.5-1.358. The
vanilla kernel from kernel.org as well as the
kernel as shipped by FC2 will fail on resume if X is running, or more
precisely if support for Intel AGP (modules agpgart and
intel-agp) is loaded or compiled into the kernel - FC2
compiles it into the kernel by default. This is due to the page table
setup used for the gatt table by the AGP subsystem - see Debian
Bug #234976 for the gory details. The file linux-2.6.5-1.358.swsusp.diff
contains a patch, originally by Pavel Machek, that fixes this problem.
To apply the patch do the following:
# cd /usr/src/linux-2.6.5-1.358 # patch -p1 <linux-2.6.5-1.358.swsusp.diff
Suspend-to-disk currently does not work properly with Linux highmem support, which is enabled by default on FC2. Hence, you need to disable this before recompiling the patched kernel. More precisely, I suggest to modify the kernel configuration included with the FC2 kernel source as follows:
You can do that by executing make gconfig, which will
launch a graphical configuration editor. Alternatively you can copy my
configuration file linux-2.6.5-1.358.swsusp.config
to .config and execute make oldconfig.
Afterwards built and install the new kernel. You can do all this by
executing the following:
# cplinux-2.6.5-1.358.swsusp.config.config # make oldconfig # make # make modules_install # make install
I suggest to boot and test this new kernel before proceeding. (Note that the kernel installation script does not make the new kernel the default in the boot menu.)
It is advisable to first test software suspend in single-user mode without X windows. This will make it easier to isolate the cause of any potential problem. Proceed as follows:
S to the boot
command line in the boot menu.
grep swap /etc/fstab" will tell
you; the name is of the form "/dev/hdaX" where
X is a number.
/) and that mounted as
/boot. (This step is just a precaution.)
to suspend the machine.echo 4 >/proc/acpi/sleep
resume=/dev/hdaX S",
where "/dev/hdaX" is the name of your swap partition.
Fedora
Core boot message, it will switch to the swsusp screen and
hopefully end up where you suspended the machine.
If something goes wrong, reboot the system and add
"noresume" to the boot command line in the boot menu.
After you have rebooted, execute "mkswap /dev/hdaX", where
"/dev/hdaX" is the name of your swap partition. This is to
avoid that the system picks up an old suspend image later (and to
re-enable normal swapping).
A word of warning: Swsusp stores a kernel state on disk and brings it back later. Never ever change the contents of any mounted file system between a suspend and a resume, as this will mostly likely leave you with a corrupted file system. You should also avoid adding or removing any hardware, as this can confuse the kernel.
If everything went fine so far, try suspending and resuming out of an X windows session; i.e., boot into runlevel 5 (the default with FC2) or into runlevel 3 and start X manually.
[Update: 29 Jul 4] If you want to use the
kernel update to version 2.6.6, you need the kernel patch linux-2.6.6-swsusp.patch
instead of the one listed above. Moreover, you can leave HIGHMEM
enabled in the kernel. Otherwise, the instructions are the same.
The Centrino wireless adapter Intel PRO/Wireless LAN 2100 3B Mini PCI
aka IPW 2100 is supported by the ipw2100 driver.
Since version 0.45 both managed mode (for networks using an access
point) and ad-hoc mode (for peer-to-peer networks) is supported. The
easiest method to install this driver is separate from the linux kernel
tree. In addition to the driver itself, the firmware for the wireless
hardware needs to be installed.
Version 0.45, at least on FC2, has problems with using the hotplug
subsystem to load the firmware; hence, we need to use the legacy
firmware loader for the moment. Moreover, I don't need support for
WEP and hence didn't include it in the installation as it requires the
installation of an auxiliary package for the encryption and decryption
algorithms. If you plan to use WEP, please see the installation
instructions coming with the ipw2100 driver package.
First, download the driver
source (version 0.45) and matching firmware.
Unzip the latter and copy the three .fw files to
/etc/firmware/. Then, build and install the driver as
follows:
# cd /usr/src # tar xzfEditipw2100-0.45.tgz# cd ipw2100-0.45Makefileto uncomment the two linesCONFIG_IPW2100_LEGACY_FW_LOAD=yandCONFIG_IPW2100_NOWEP=y, respectively.# make # make install
You can now load the driver with modprobe ipw2100 and check
the diagnostic messages with the command dmesg. If the
hardware has been properly recognised, you can configure the wireless
network as you usually do.
[27 Jul 4] The icons on the keyboard suggest that you can drive an external CRT display (via the VGA plug) after pressing Fn-F10. However, this doesn't work properly, as you can't get an image on both the external and internal display simultaneously and because the screen image is shifted down off screen by a bit with a random pattern appearing on the top. In order to properly enable an external CRT display, I recommend to use the tool i855crt.

This page is part of Manuel Chakravarty's
Web space.
Last modified: Thu Jul 29 10:13:43 EST 2004