Linux on Fujitsu Siemens M1425

Friday, December 24. 2004

Linux on Fujitsu Siemens M1425

Updates
  • 30 Sep 2005 Processor: With the kernel option nolapic the silent mode button stops freezing the machine.
  • 15 Feb 2005 WLAN: With newest IPW2200 driver kill switch now works perfectly.
  • 11 Jan 2005 Buttons: Using volume control buttons in KDE without the hotkeys program.
  • 11 Jan 2005 ACPI: Battery status now working but now AC status is broken.
Fujitsu Siemens Amilo M1425 details
Processor Intel® Pentium® M (Centrino) 1.7 GHz Works
Memory 1 GB RAM Works
Harddisk 80 GB ST9808210A IDE Drive Works
Floppy drive Not present -
DVD-RW/CD-RW NEC DVD+/-RW ND-6500A Works
Videocard ATI Technologies Inc RV350 [Mobility Radeon 9600 M10] Works (3D needs commercial driver)
TFT display 1280x800 Works
Soundcard Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller Works
USB 1 Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller Works
USB 2 Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller Works
Firewire Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) Works
Network Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ Works
WLAN Intel Corp. PRO/Wireless 2200BG Works
Modem Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller Works
Touchpad SynPS/2 Synaptics TouchPad Works
PCMCIA O2 Micro, Inc. OZ711M1 SmartCardBus MultiMediaBay Controller Works
Multimedia bay O2 Micro, Inc. OZ711Mx MultiMediaBay Accelerator Doesn't work
Infrared Not present -
Bluetooth Not present -
Special buttons Mail, Browser, Mute volume, Increase volume, Decrease volume Works (when mapped to applications)
ACPI Works partially
Used setup

I'm currently using Debian GNU/Linux Sarge with kernel 2.6.10 on the machine. You can download and use my Kernel configuration if you like.

Output of lspci

If you are interested in the output of lspci, here it is.

Processor

The processor works fine. Just select the Pentium M in kernel configuration. Speed-Step is working great, too. I have selected the ondemand cpufreq policy governor and activated Intel Enhanced SpeedStep. It is needed to also enable the feature Use ACPI tables to decode valid frequency/voltage pairs. If the machine is idle it runs with 600 MHz. If it needs more power it increases the speed to 800 MHz, 1GHz, 1.2GHz, 1.4GHz and 1.7GHz. You can control the speed step behaviour via sysfs (/sys/devices/system/cpu/cpu0/cpufreq).

Pushing the Silent mode button multiple times may freeze your machine. Adding the nolapic kernel parameter helps. With lapic disabled it's possible to throttle down the CPU to 600 MHz with the silent mode button. Pushing it again will bring it back to normal speed.

Memory

The machine has 1 GB of RAM but only 768MB were usable at my first try. I had to activate High Memory Support (4GB) to be able to use all the RAM.

DVD/CDROM drive

Haven't tried to burn a DVD yet but burning normal CD-ROMs works fine. With kernel 2.6 it's possible to burn directly with IDE drives. So no need for using SCSI emulation.

Video card

The open source Xserver radeon runs fine in 2D mode. Even dual-head settings are running fine. But 3D support is currently not present in the open source driver for this video card. But this may change in the future. Rumors says that ATI has provided documentation and testing equipment to the developers.

If you need 3D then you need to use the commercial driver which can be downloaded for free from the ATI website. Installation is quite easy and does not need a special version of XFree or a special kernel. But if you use kernel 2.6.10 or later with ATI driver 3.14.6 then you must edit the file /lib/modules/fglrx/build_mod/agpgart_be.c and replace all occurences of pci_find_class with pci_get_class before you compile and install the driver. That's because this deprecated function is no longer present in kernel 2.6.10 and was replaced.

glxgears gives me 1520 frames per second which I think seems bad. My old Radeon 7500 in my old notebook (Compaq Evo N800c) had the same speed with the open source driver. Another problem is that game play (with Half-life in Wine/Cedega or Quake 3 natively) is not fluid. Every few seconds there is a small pause. With my old Radeon 7500 game play was better.

If you know how I can improve the performance and get rid of the pausings, please contact me!

Here is my XF86Config-4 if you want to use it as an example configuration. My config is quite large. That's because it includes four ServerLayouts:

Single-Head Single head configuration with commercial driver
Dual-Head Dual head configuration with commercial driver
Single-Head-Open-Source Single head configuration with open source driver
Dual-Head-Open-Source Dual head configuration with open source driver

The commercial driver is very lousy in dual-head mode. It seems to be impossible to use the Xinerama extension with this driver (XServer crashes). The commercial driver has its own mode for this (big desktop mode). But this mode is absolutely unusable because the window manager does not see two screens anymore. If you enlarge a window then it spans over BOTH screens. So the only useable mode is the two desktops mode. But in this mode its not possible to drag windows from one screen to the other.

That's why a have so many server layouts. At work I'm using the Dual-Head-Open-Source layout with the Xinerama extension. I usually don't need 3D support at work so that's no problem. At home I'm using the Single-Head layout to have 3D support with the commercial driver. I'm using the whereami program to determine the layout. whereami can detect my current location by the wireless networks it detects nearby and based upon the detected network it can call a script which can then switch the XFree configuration. Very cool program.

TFT display

The TFT display is wide-screen. Normally this is not a problem. It may be necessary to manually edit the XFree86 configuration to use the native resolution of 1280x800 pixels. I'm always editing the config file manually so I don't know if setup wizards have problems with this resolution.

When you play full-screen games which can't handle wide-screen then the video card stretches the video output. That's bad because it breaks the proportions. In the commercial driver you can add the option Option "CenterMode" "on" to the device section. This disables the stretching. But this is not perfect, too. if you have a game which uses 640x480 resolution then even this is centered. It is not stretched to 1066x800 or even 1024x768. If someone knows a solution how to solve this wide-screen problematic, contact me. But I'm quite sure that there is no solution because it's hardware specific.

Soundcard

Works fine with the ALSA driver intel8x0. A nice feature (or better: a problem) is the sub-woofer. It is not affected by the master volume control. Instead it is affacted by the master-mono volume control. This is especially a problem when you have connected a volume control program (like hotkeys) to the volume control buttons. I have written a small program which can be used as a daemon which monitors the master volume and duplicates the settings to the master-mono volume. You can download the sources here. To compile it just do this: gcc -o linkvolume linkvolume.c. But this is not a perfect solution. The program reads the master volume every 500ms. A better program would be event based and would be triggered only if the master volume is changed. If you know such a program or can write one, please contact me.

USB

Not much to say here. Just activate UHCI and EHCI in the kernel configuration and use the hotplug daemon and you are up and running. I'm using a USB mouse all the time and even have connected an external USB hard disk without any problems.

Firewire

I don't have any firewire devices but the driver loads fine and even creates a firewire network interface. So I think it's working fine.

Network

The integrated network controller is well supported by the RTL-8139 driver. I'm working with it every day, works great and fast (approx. 10 MByte/s throughput)

WLAN

The wireless network card is working fine with the ipw2200 driver. I'm using this card in a 11Mbit network (802.11b) with 64 Bit WEP encryption and in a 54Mbit network (802.11g) with 128 Bit WEP encryption. Both are running fine.

Modem

The modem is supported by the slmodem driver provided by SmartLink. Installation is a little bit unusual (because a daemon is needed to use the modem). But if you stick to the installation instructions then you have no problems. The software is also included in Debian GNU/Linux so installation may be easier if you use the debian packages. Haven't tried them because they were quite out-dated.

If you have installed and started the software correctly then you can connect to the device /dev/ttySL0 with minicom or any other terminal software. But I haven't tested a real connection yet because I have ISDN.

Touchpad

The touchpad is supported by kernel 2.6 natively. If you don't use the synaptics driver in the kernel then you still may use the touchpad as a standard PS/2 mouse device. But I haven't tried. I have activated the synaptics driver in the kernel. But this means that you also definetly want to use the synaptics touchpad driver for XFree. Otherwise the touching experience will be lousy. You can download this driver here. My XF86Config contains the configuration for it. Please note that I have deactivated tapping and scrolling in my configuration. If you want to enable it then comment out all the options or setup them to suit your needs.

PCMCIA

PCMCIA works fine out of the box with the yenta driver. Because the Amilo has integrated WLAN I don't need PCMCIA but I have tested it by inserting my old Orinocco WLAN card. It was detected and powered up correctly.

Multimedia-bay

The Amilo M1425 has a slot for Multimedia-cards. Unfortunetly I was not able to get it running. I even don't have the slightest idea how to get it working. You know it? Then tell me! I have a Siemens S65 mobile phone which comes with a 32MB RS-MMC card which fits into the slot. So i have quite in interest in getting this card drive working.

Special buttons

The special buttons of the Amilo are usable by Linux. They generate normal key codes. I'm using the program hotkeys (included in Debian GNU/Linux) to map the keys to useful functions. Here is the definition file.

Update 11. Jan. 2005: Accidently I noticed something strange after exiting a vmware session. My volume keys were no longer bound to the hotkeys program but were bound to KDE's kmix program. Haven't known that KDE (maybe since 3.2) can handle multi-media keys. But the keys of the Amilo are not mapped to the standard multi-media functions. This is done by Vmware if Vmware is exiting. What a strange but happy coincidence. So I discarded the hotkeys program and I'm using now kmix to control the volume. To do this without starting and exiting VMWare the amilo multi-media keys must be mapped to the corresponding XFree86 function XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute. This can be done by putting this .xmodmaprc into the home directory and this script into the KDE autostart folder. Alternatively you can setup the originl keycodes of the multi-media keys direclty in kmix. But I think mapping them to the XF86-functions is better. This may even work with other Desktop Environments (Gnome?) or other volume control applets.

ACPI

ACPI support is lousy. Sleep/suspend mode is not working at all but this is quite normal. I don't know of any notebook that has a working ACPI-sleep/suspend mode on linux. Oh how well this was working with good old APM-support...

Reading the battery-status seems to work partially. The standard command-line acpi tool can't do it. But the klaptopdaemon program of KDE can do this sometimes. 50% of the time it reports the correct status. The other 50% of the time it reports a completly empty battery. Very strange. And very nerving because it's not possible to use the alarm features of klaptopdaemon this way because the alarm is always triggered when the battery status can't be read sometimes.

Thermal zones seems to be not working. It is always reported that my CPU is running with 75°C. I don't believe that my CPU is so hot and has always a constant temperature.

At least the detection of AC power works flawlessly. Also the power, sleep and lid-close buttons are working and you can connect events to them. If you just install the acpid package then the machine automatically shuts down properly if you push the power button.

Unfortunately I have no experience in debugging this stuff and creating a custom DSDT file. So I have to wait for help on this. If you can help here or have tips how to get at least the battery status running, please contact me.

Update 11. Jan. 2005: I don't know which is responsible for this (either upgrade to kernel 2.6.10 or upgrade to BIOS 1.06c). The battery-status reading has changed. The battery status can now be read correctly but now reading of AC power status seems to be broken. If I pull out the power cord then KDE still says it is running on AC power all the time. But that's not really important. More important is that the battery status is now working and I can use the Low Battery Warnings of KDE again. Joy and jubilation! ;-)

Another interesting note: Gabor Keresztfalvi has disassembled the DSDT of the Amilo and found out that the thermal zones are hardcoded. That means its absolutely ok that linux says the CPU is 75°C hot. This temperature is hard coded to tell the operating system that everything is fine. If a critical event occurs then the temperature will be raised to a value greater then the hardcoded alarm temperature (85°C) to tell the operating system that something is fishy.

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

Azimuth at 2008-09-20 15:42
BIOS version 1.08c

None Linux distros can boot in regular mode. Only bootable with "acpi=off nosmp noapic" flags. Windows XP runs without any problem. Can someone please take a look in the BIOS disassembly whether the information on ACPI depends on OS type? I know that Foxconn once released BIOS which made their motherboards work only with Windows. I suspect that might be the case here as well

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA