Init - logo

Linux on the Fujitsu Siemens Amilo L7300

I don't have this laptop anymore so there won't be any updates on this page!

How to run linux on the Amilo L 7300 laptop. Tested with kernel 2.6.11.7 and 2.6.13 No tested yet: modem/PCMCIA
The touchpad works with the auto-protocol with Xorg-6.8.2. If you want to disable the (annoying) clicks on the touchpad (not the mouse buttons) make sure you have evdev compiled in your kernel.
If you want to change the speed use the synaptics driver (see below).
There are two fans in the laptop which are both turned on when starting up. However the kernel reports them as being off. To turn them off use:
echo 3 >> /proc/acpi/fan/FN1/state
echo 3 >> /proc/acpi/fan/FN2/state
And to turn them back on:
echo "on" >> /proc/acpi/fan/FN1/state
echo "on" >> /proc/acpi/fan/FN2/state
In some situations the fans will automatically turn on when needed (>50 C) and off(<40 C) if you have ACPI enabled in your kernel.
BE CAREFUL FOR OVERHEATING!

The Celeron M processor is compatible with a pentium 4. So pentium4 GCC optimizations can be used for compiling.

/proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Celeron(R) M processor         1500MHz
stepping        : 5
cpu MHz         : 1496.322
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts
                  acpi mmx fxsr sse sse2 tm pbe
bogomips        : 2940.92

The battery seems to be produced by sony:
/proc/acpi/battery/BAT0

...
model number:            3YSA5/STKH
serial number:           
battery type:            Lion
OEM info:                SONY 

The celeron M processor has support for switching the CPU frequency dynamically. Unlike the pentium M it's not possible to scale down the processor voltage. To be able to scale down the cpu frequency you need to enable the following kernel options:
Power management options (ACPI, APM) ---> CPU Frequency scaling --->
- CPU Frequency scaling
- CPU frequency translation statistics
- Optionally a governor (I use the ondemand govenor)
- Intel Enhanced SpeedStep
- Intel Pentium 4 clock modulation

Make sure you have /sys mounted. If not:
mkdir -p /sys && mount -t sysfs sysfs /sys
See your kernel documentation (section cpu-freq) for information on how to use it. I didn't get a lot of improvement when scaling down the processor clock.

The keyboard works out of the box.
Hardware support is enabled for Fn+F2 for enabling/disabling wireless lan, Fn+F3 Enabling/disabling external monitor (doesn't work, but external monitor works), Fn+F8, Fn+F9 for darkening/brighten display

For audio functions and for the special buttons fancontrol, internet, mail you need the keycodes. These can be obtained by running xev.
Unfortunately the key for turning off the fans has no xev mapping. Press it and run dmesg.
You can map this key as root: setkeycodes 6d 220
Add it to /etc/rc.d/rc.local to have it loaded at boot time. Strangely it gets mapped to keycode 196 ;)

Here's how to use these keys in X11.
Look in /usr/X11R6/lib/X11/XKeysymDB and see what names you can use.
Edit ~/.xmodmaprc containing the following:

keycode 236 = XF86Mail
keycode 178 = XF86HomePage
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 196 = XF86Standby

Add xmodmap .xmodmaprc to ~/.xinitrc
When using KDE you're done now. Volume control and muting works out of the box (when using a not too old KDE version).

People using icewm need additional commands:
Add something like this to ~/.icewm/keys

key "XF86Mail"              sylpheed
key "XF86HomePage"          firefox
key "XF86AudioMute"         /home/USERNAME/.icewm/mute.sh
key "XF86AudioLowerVolume"  amixer set PCM 5%-
key "XF86AudioRaiseVolume"  amixer set PCM 5%+
key "XF86Standby"           /home/USERNAME/.icewm/fans.sh

Now restart icewm: killall -s HUP icewm
For the mute function I've created a mute.sh script:

#!/bin/bash
if amixer get PCM | grep off;
 then amixer set PCM unmute;
 else amixer set PCM mute;
fi

There is a 4200 rpm 2MB cache harddisk in the laptop which works out of the box. Make sure you have DMA support enabled for better performance (see CD-RW/DVD). Here is more information about the drive

# hdparm -i /dev/hda

/dev/hda:

 Model=FUJITSU MHT2040AT, FwRev=0022, SerialNo=NN7AT491BH2E
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78140160
 IORDY=yes, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a:

 * signifies the current active mode

# hdparm -tT /dev/hda

/dev/hda:
 Timing cached reads: 1516 MB in 2.00 seconds = 756.98 MB/sec
 Timing buffered disk reads: 84 MB in 3.05 seconds = 27.55 MB/sec

The CD-RW/DVD is /dev/hdc
Make sure you compile your kernel with VIA82CXXX support for DMA
Device Drivers -> ATA/ATAPI/MFM/RLL support -> PCI IDE chipset cupport -> Generic PCI bus-master DMA suport
DVD playback and burning CD's works fine

Here are three methods to get the unichrome pro video card working. The first method results in a faster and more stable X environment!

Method 1
It seems with recent Xorg versions (tested with 7.1) and with recent kernels (2.6.18+) everything is a lot easier. Just use the DRM and the VIA DRM module from your kernel. Use the Mesa version which is included in Xorg 7.1 and you only need the openchrome driver.
You still need the patch to fix the startup delay. See below.


Method 2
For this to work we first need to compile Xorg. This is necessary because we need a compiled version of X to be able to compile the video drivers. Follow these steps in this order to get hardware acceleration for 3D and video playback.

First download the Xorg-6.9 source code. These are the instruction for compiling Xorg as found in the BLFS book. We only need a compiled environment of Xorg, we don't need to install it. But you can install it if you are currently running an older version of Xorg.

tar jxvf X11R6.9.0-src.tar.bz2 &&
cd xc &&
pushd config/util &&
make -f Makefile.ini lndir &&
popd &&
mkdir ../xcbuild &&
cd ../xcbuild &&
../xc/config/util/lndir ../xc &&
( make World 2>&1 | tee xorg-compile.log && exit $PIPESTATUS )

If you want to install it (be careful this overwrites the old Xorg!)

make install &&
make install.man &&
ln -sf ../X11R6/bin /usr/bin/X11 &&
ln -sf ../X11R6/lib/X11 /usr/lib/X11 &&
ln -sf ../X11R6/include/X11 /usr/include/X11

Now we need to compile the following packages:

  1. DRI. This provides the hardware access to the video card. We use a CVS version which is newer than the version included in most kernels. Make sure you enable AGP support (agpgart and the VIA chipset module) but not the Direct Rendering Manager in your kernel. These options can be found in Device drivers -> Character devices.
  2. Mesa: this provides a newer version of the library libGL.so and the unichrome_dri.so module which is needed for the DRI system to work correctly.
  3. The unichrome drivers from www.openchrome.org. These provide the actual video drivers. We patch the drivers to fix an issue which would question the video bios, disable interrupts and halt the system for about 15 seconds when starting X. This seems to happen with various PN800 and PM800 cards.

I've made a tarball which contains working versions of drm and unichrome. Download it here
Download mesa 6.4.2
Here is patch which optimizes the Mesa build and builds only the unichrome driver
This patch fixes the startup delay
This is the same patch only against newer versions of the driver

tar jxvf drm-cvs-110306.tar.bz2 &&
cd drm-cvs-110306 &&
./autogen.sh &&
./configure --prefix=/usr &&
make &&
make install &&
cd linux-core &&
make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via &&
mkdir -p /lib/modules/`uname -r`/kernel/drivers/char/drm/ &&
cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/ &&
depmod -ae &&
cd ../.. &&
rm -fr drm-cvs-110306 &&
ldconfig &&
tar jxvf MesaLib-6.4.2.tar.bz2 &&
cd Mesa-6.4.2 &&
patch -Np1 -i ../MesaLib-6.4.2-compile-only-unichrome.patch &&
make linux-dri-x86 &&
bin/installmesa /usr &&
mkdir -v -p /usr/lib/X11/modules/dri &&
install -v -m755 lib/unichrome_dri.so /usr/X11R6/lib/modules/dri &&
cd .. &&
rm -fr Mesa-6.4.2 &&
ldconfig &&
tar jxvf openchrome-cvs-070306.tar.bz2 &&
cd openchrome-cvs-070306 &&
patch -Np1 -i ../openchrome-cvs-070306-fix_startup_delay.patch &&
cd unichrome &&
xmkmf ../../xcbuild/ &&
make &&
make install &&
cd .. &&
cd libxvmc &&
xmkmf ../../xcbuild/ &&
make &&
make install &&
cd ../.. &&
rm -fr openchrome-cvs-070306;

You can use this configuration file and place it in /etc/X11/xorg.conf. The option "EnableAGPDMA" increases performance. To verify the installation run glxgears. It should give you about 990 fps. At least not less than 200 or there is a problem. Use /var/log/Xorg.0.log for diagnostics in case of problems. Mplayer should support the XV playback (-vo xv) which uses a lot less cpu than the standard X11 drivers.


Method 3 (old method)
In your kernel (2.6.11.7) enable DRI: Device Drivers -> Character devices -> Direct Rendering Manager
For kernel 2.6.13 do not enable DRI. Doing so gives resolving errors in the drm module we will be building.
Don't enable the VIA DRI module in newer kernels because they use an older version which is broken. We will compile a newer DRI module.
The latest unichrome pro drivers crash my X server so I stick with the version from 30 July.
Get the latest unichrome pro drivers from the unichrome snapshot release site and get the X11-6.8.2 source
You have to compile Xorg first (takes a long time!).

tar jxvf X11R6.8.2-src.tar.bz2 &&
cd xc &&
pushd config/util &&
make -f Makefile.ini lndir &&
cp lndir /usr/bin/ &&
popd &&
mkdir ../xcbuild &&
cd ../xcbuild &&
lndir ../xc &&
make World

Now you can compile the unichrome driver. You have to point the xmkmf program to the directory where your compiled Xorg is. In our case: ../../xcbuild if you have downloaded and extracted Xorg and the unichrome drivers in the same directory.

tar jxvf unichrome-20050730.tar.bz2 &&
cd unichrome-20050730/drm/linux-core/ &&
make LINUXDIR=/usr/src/linux-`uname -r` DRM_MODULES=via &&
cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/ &&
depmod -ae &&
cd ../../libxvmc/ &&
xmkmf ../../xcbuild/ &&
make &&
make install &&
cd ../unichrome &&
xmkmf ../../xcbuild/ &&
make &&
make install

There is a unichrome DRI driver in the Xorg source. This drivers doesn't work (gives me resolving errors in the libary). Luckily we can download the precompiled driver from the unichrome project at sourceforge. Download the precompiled DRI driver

mv /usr/X11R6/lib/libGL.so.1.2 /usr/X11R6/lib/libGL.so.1.2.bak &&
mv libGL.so.1.2 /usr/X11R6/lib/ &&
mv modules/dri/unichrome_dri.so /usr/X11R6/lib/modules/dri/

In /etc/X11/xorg.conf make sure you load the DRI module and use the via driver. See my xorg.conf
Now check to see if DRI is enabled. Most errors can be ignored, but unichrome_dri needs to load properly. Run the following command:

LIBGL_DEBUG="verbose" glxinfo

name of display: :0.0
libGL: XF86DRIGetClientDriverName: 4.1.0 unichrome (screen 0)
libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/unichrome_dri.so
drmOpenByBusid: Searching for BusID PCI:1:0:0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
__driCreateNewScreen - succeeded
libGL error:
Can't open configuration file /etc/drirc: No such file or directory.
libGL error:
Can't open configuration file /home/wilco/.drirc: No such file or directory.
display: :0 screen: 0
direct rendering: Yes

Now you can check performance by using glxgears. I get about 980 Fps. If you only get about 100 there's probably a problem with your DRI setup. Check your Xorg log to see what it can be.
Make sure you have AGP DMA enabled that will also increase performance, like in my xorg.conf.
I can play Planet Penguin racer very well (20-25 Fps with most options turned on, 1024x768) and Soldier of Fortune plays very nice.

Now you also have Xv support for playing video/dvd. This increases performance a lot. Without the XV driver playing a divx movie fullscreen uses a lot more CPU.

There seem to occur some crashes on certain applications when DRI is enabled and you've loaded the extension extmod (which you should because that really increases video playback). To fix this you need to exclude xfree86-dga from your xorg.conf. See my xorg.conf for an example.

As you can see in my xorg.conf I had to disable AGP for 2D. Some applications would crash X or sometimes X crashed randomly.

On my system X also crashes when I run glxgears and use the via drivers from the unichrome project instead of the unichrome pro snapshot or use the generic vesa driver. It can also help to recompile and reinstall the drivers (not X, only the drivers) when you update your kernel.

Version 20050719 sometimes crashed my X server (when I opened a folder in sylpheed and used thread view!?) and the newest version from september crashes mplayer so I use 20050730 which hasn't crashed since I installed it. When you still have to trouble try to remove and recompile/reinstall Xorg and the unichrome drivers again. The bottom line: unichrome-20050730 with a freshly compiled Xorg runs stable as a rock!

Works fine.
Make sure you have kernel support for "VIA 82C686A/B, 8233/8235 AC97 Controller"
Device Drivers -> Sound -> Advanced Linux Sound Architecture -> PCI Devices

You need kernel support for VIA Rhine
Device Drivers -> Networking support -> Ethernet (10 or 100Mbit)

There is a rt2500 chip inside the laptop. There are two ways to get it working: use the open source drivers or use ndiswrapper. On my system the open source drivers don't work as well as ndiswrapper so test for yourself.
Make sure you enable the wireless function by pressing Fn+F2 (the led should be green).

Method 1 (recommend) using linux rt2500 drivers
Download "rt2500 1.1.0 BETA 3" (older versions did not work for me).

cd rt2500-1.1.0-b3/Module &&
make &&
make install

Now that the driver is compiled set it up. See the documentation for hints. This is how I've set up the wireless card using WPA, TKIP. Setting the SSID two times was necessary for me.

modprobe rt2500
iwconfig ra0 mode managed
iwpriv ra0 set AuthMode=WPAPSK
iwpriv ra0 set EncrypType=TKIP
iwconfig ra0 essid "YOUR AP SSID"
iwpriv ra0 set WPAPSK="YOUR WPA PRESHARED KEY"
iwconfig ra0 essid "YOUR AP SSID"
/sbin/ifconfig ra0 192.168.1.102 broadcast 192.168.1.255 netmask 255.255.255.0
/sbin/route add -net default gw 192.168.1.1 netmask 0.0.0.0 window 16384 metric 1

Method 2 using ndiswrapper
Download the official Fujitsu drivers. Compile ndiswrapper and feed it the drivers. The official drivers are not in the WIKI yet but they work great (at least for me).
Instruction are on the ndiswrapper homepage. I've configured my Linksys WRT54G wireless router to use WPA and TKIP and not shout it's SSID. Place your config in /etc/wpa_supplicant.conf. The option ap_scan = 2 prevents iwconfig from looking for a broadcast SSID.
/etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant # for wpa_cli support

ap_scan=2

network={
  ssid="YOUR_ROUTER_SSID"
  psk="YOUR_WPA_PRESHARED_KEY"
  key_mgmt=WPA-PSK
  pairwise=TKIP
  group=TKIP
  proto=WPA
}

No special procedure required. Make sure you have enabled in your kernel: EHCI HCD (USB 2.0) support, UHCI HCD (most Intel and VIA) support.
Device drivers -> USB support

Tested with: iRiver IFP-590T and HP camera

First create the required device nodes if nesecarry:

mkdir -p /dev/input
mknod /dev/input/event0 c 13 64
mknod /dev/input/event1 c 13 65

Make sure you have kernel support for "Event interface" and PS/2 mouse.
Device drivers -> Input device support
Download the synpatics driver here
See my xorg.conf or the synpatics site for information on configuring the driver

On my system the mouse sometimes hangs for a few seconds. It seems like the same problem this guy has. With help from that site I've created this kernel patch (kernel 2.6.11.7)

Top view (closed)
Another view from the top
Rigth side showing CD-burner and line out
Showing keyboard, screen and touchpad
mplayer showing some video
icewm running hdparm and showing cpuinfo (notice the RAM is upgraded)
Penguin racer!
Back side