continua (next page) main index My Fujitsu-Stylistic ST5022 pages are here!


Linux on Fujitsu-Siemens Stylistic ST5022D (should apply to every ST50xx).

Note: I installed Ubuntu Linux 10.10. The notes below mostly refer to the Ubuntu 8.10 release.

Latest updates:

I first installed Linux OpenSUSE 10.3, then compiled a stock kernel (Linux 2.6.24) to be able to use extra features. OpenSUSE needs a kernel with support for:

I then switched to Linux Ubuntu 8.10, coming with a Linux kernel 2.6.27 (I did not have to fiddle anymore with kernel configurations and OpenSUSE issues!)

Additional free software that you should absolutely have installed, because a tablet PC is a tablet PC only if you can do certain things:


Current status (Ubuntu 8.10)

componentstatusremarks
CPU Pentium M 1.1GHz with Speedstep technology OK speed varies dynamically from 600 to 1.1GHz, "on demand" (as required by the system usage), saving up to 2 watts. Speedstep support is already in major Linux distributions. A CPU frequency applet allows to switch different power-saving policies.
fan/temp/etc sensorsnot working correctly detected by sensors-detect but sensors cannot use them (the CPU fan works OK but I cannot get sensors status)
1Gb RAM OK if you build your own Linux kernel configuration, don't forget to use CONFIG_HIGHMEM4G=y if you have more than 896 Mb RAM (because of screen memory mapping)
ACPI stuff OK screen brightness also works
suspend/hibernate OK suspend works; hibernate untested
graphics card OK both 2D and 3D acceleration
touchscreen OK Xorg has to be forced to use ISDV4 Wacom driver (see X11 config file below); some software (most notably xournal 0.4.2 and later) correctly recognize stylus pressure
(win)modem untested someone reported it working with standard softmodem drivers; no more information for now
boot via USB drive OK I was able to install Ubuntu 8.10 and even boot an old Knoppix 5.1 off an 1Gb USB pen drive; I placed the pen drive in one of the USB ports; turned on the Stylistic; enter BIOS setup "Boot" section, click on "+Hard drive", press the Enter key (the one in the Stylistic keys works) to open the hard drive options, and then double-click on the pen drive to "move it up" (give it priority higher than the hard disk). Yes, the pen drive was seen as a "hard disk" by the BIOS Boot menu. Sadly, that old Knoppix does not recognize the touchscreen, but it recognized an USB Wacom Pen Tablet;
external USB keyboard and mouse OK expect problems if you use those PS2-to-USB converters for a number of Chinese-made keyboards (those converters expect exact timings and may not recognize PS2-style keyboard events)
Wacom USB pen-tablet OK it works, as well as other USB hardware
integrated keys OK need fsc_btns 1.41 or later, and a recent kernel (doesn't work with stock SUSE 10.x kernels)
battery OK ACPI battery section reports correct data about battery charge level
mini-PCI OK works (I used it for the WLAN card)
LAN OK tested at 10/100/1000 Mbit without problems; uses Tigon3 driver (tg3); got a stunning 16+ Mb/sec throughput on a sftp connection with an Apple Powerbook
WiFi (WLAN) OK I have an Intel 2915abg card (the ipx2200 kernel module and a specific firmware; full support is on all latest Linux distributions, including OpenSUSE 10.3); however, it's a bit "deaf" (cannot catch a non-strong signal; I would rate it 6/10, while Apple Powerbook G4 has a wifi card which I would rate 8/10 - and the one in the Apple Mac Mini is 9/10); maybe this is due to the long cables of the two internal WiFi "antennas", cables running around the circuitry (and thus catching some more electromagnetic noise)
Bluetooth OK works as expected (I was able to receive files from my bluetooth-enabled cellphone and from a bluetooth-enabled Apple Mac). If the "kill switch" was disabled at boot, you may need to manually run /etc/init.d/bluetooth start (by root user) and kbluetooth (by current KDE user). Also, remember to configure your /etc/bluetooth/hcid.conf to set your device name (the name that will appear when scanning from other bluetooth devices) and the class 0x10c (which means "laptop computer"). If you don't use Bluetooth, and you want to disable it without using the "kill switch" (which will disable WLAN as well), then you can safely disable Bluetooth stack using these commands:
hciconfig hci0 down
rmmod hci_usb

Note: sometimes I got speed as low as 0,98 kbytes/second, but this seems to be an Apple Bluetooth issue (my Apple Powerbook "normal" speed seems to be 15 to 25 kilobytes per second)
hard disk OK works both with standard IDE ATA driver and the "experimental" libata PATA driver; reasonably fast even if the hard disk is only 5400 rpm; reasonably quiet (more silent than the 5400rpm hard disk of the Powerbook)
USB2 OK tested some USB gadgets (pen tablet, pen drive, keyboard, mouse)
PCMCIA slot OK tested with a PCMCIA TV card and a PCMCIA "5-in-1" card reader
Firewire networking OK I couldn't configure it with OpenSuSE YaST, but command-line programs were OK:
modprobe ieee1394
modprobe ohci1394
modprobe eth1394
ifconfig eth2 192.168.133.100 up
ping 192.168.133.101
(change IP addresses to suit your own needs; yes, on OpenSuse it's eth2).
using an external Firewire disk OK tested with a Lacie 250Gb disk with Firewire 400 cable: dmesg reported it as /dev/sdb and usual mount and fdisk commands worked great
infrared untested the irtools package of OpenSUSE 10.3 misses the irdadump utility, thus I cannot test (yet). Anyways, the first thing to do is enabling irda services on YaST (and having /etc/sysconfig/irda configured for ttyS3 instead of ttyS1 - else the irda startup script will fail). Also note that irobex_palm3 is not available (will need to use obexftp but I did not yet manage to have it working).
VGA out port OK duplicates screen by default, as expected
audio (internal speaker) OK a tiny speaker - don't expect 500W RMS peak output... ;)
integrated microphones work (but low gain) even using maximum input gain, they seem a bit "deaf" (maybe in the real field will not be sufficient to cleanly record a lecture in some non-amplified classroom). Maybe they did it to avoid recording the disk/fan spinning noise...
audio out jack OK when an headphone is plugged in, correctly disables the internal speaker (good!)
mic in jack OK works (and input gain is as expected)
MemoryCard reader not working must investigate...
SmartCard reader untested I have no smartcard to test
fingerprint sensor untested I don't know how to test it, and I don't think I will ever need it, so I "disabled" it in the BIOS.

Audio and recording

The audio section depends on the Intel 82801DB-ICH4 (fully supported by the ALSA driver) which has also some modem settings (I don't need them).

In KDE kmix my audio setup is as follows.

Output:

Input:

Switches:



Battery usage

The standard "6-cell" battery is rated 4800 mAh on a current of 10.8V (nominal values that could be slightly different in the real world usage), that is almost 52 watt/hour. Somewhat slow when charging while the Stylistic is turned on.

When running on battery, the Stylistic ST5022D needs:

estimatewherecomments
4 watts internal circuitry, RAM, hard disk and peripherals stopping the hard disk when "idle" may not have a great impact in power saving, because there are a number of Linux kernel tasks which need to write on the disk from time to time. Some filesystems allow disabling of "last access date" update (a file attribute which gets updated every time the file is accessed even for reading): a slight performance improvement (you have to set the noatime flag in the /etc/fstab file). Anyways, I think that only SSD (solid state disks) will show a consistent power saving.
1 watt USB UHCI hub latest kernels can use a power-saving mode that disables the internal USB hub when nothing is connected on the two external USB ports; up to 2.6.24 kernels the feature is marked as "experimental", but here works OK
5-6 watts touchscreen (when turned on) this is the value of maximum brightness (which is the default); brightness control will reduce power drain (you don't need maximum brightness when you use the Stylistic while in your dark bedroom), but currently I don't know how to access brightness control (should be in the /sys directory structure)
3 to 5 watts Pentium M processor 3 watts when at 600 MHz, 5 watts when at full speed 1.1 GHz; the Speedstep driver adjusts dynamically to the lowest processor clock needed
up to 4 watts CPU cooling fan alas, the fan starts whenever the Pentium M runs at full speed (1.1GHz) for more than a few seconds. Its speed changes dinamically. Alas! It's not that silent.
up to 2 watts radio system the "radio system" (WiFi and Bluetooth antennas) can be disabled using the switch ON/OFF below the Stylistic (near the hard disk slot). Funny, the ipw2200 kernel driver calls it "kill switch" (meaning that it "kills" the radio transmitters/receivers).
1 to 3 watts PCMCIA TV card obviously external cards will need some power.

That is, when in full-charge, you can work about 130-150 minutes at full throttle (compiling the kernel while doing other CPU and disk-intensive work), or 180-220 minutes of normal operation with WiFi networking (continuous net browsing). The larger and heavier (and pricey!) "9-cell" battery should give 40-50% extra duration.

I already tailored the Linux kernel (see configuration below) and the OpenSUSE installation. I don't use the local Beagle search engine, so I had to wipe out the packages using it (Kerry, Nautilus, kdebase3-beagle, etc), using this ugly command:
rpm -qa | grep -i beagl | xargs rpm -e kerry nautilus 


The boot.local (local initialization after completing boot)

The boot.local file gets executed soon after boot and just before loading the X11/KDE graphical environment. Here one can place some extra initialization stuff.

Here I placed some modprobe stuff:
echo "--> modprobing: TV card"
modprobe saa7134 card=17 tuner=54

echo "--> modprobing: SD/MMC slot"     # currently doesn't work
modprobe sdhci
modprobe mmc_block

echo "--> modprobing: webcam"          # it seems that these
modprobe videodev                      #   two modprobe's are
modprobe ov511                         #   quite useless...

echo "--> modprobing: fujitsu stuff"
modprobe fujitsu-laptop                # doesn't work (yet)
modprobe fsc_btns                      # works (version 1.21 or later)

Note that the fsc_btns module is discussed here (until Linux kernel 2.6.27, it is not integrated in the stock kernels).

I also added some networking initialization, because the eth1 (the 10/100/1000 ethernet) sometimes cannot catch the DNS server of my Mac OS X "exported" internet connection:
ifconfig eth1 192.168.2.67 up

On my Apple Powerbook, in the System Preferences, under Sharing pane, I set "share your internet connection from Airport to Ethernet". Thus, the Powerbook ethernet port gets another IP address (192.168.2.1) and activates a local DNS server for the computers on the ethernet port (which will get some 192.168.2.x address). Sadly, this sometimes fail (it's a known Apple Mac OS X limit): having an explicit ifconfig on the Linux box will save some headaches.

The powertop utility suggests to add these lines in the /etc/init.d/boot.local file (the "dirty pages" writeback gets frequently updated, so it shouldn't be really needed):
echo "--> configuring kernel specific parameters:"
echo "    * larger timeout for vm" # well, this gets frequently updated
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo "    * enable powersaving in AC97 driver"
echo 1 > /sys/module/snd_ac97_codec/parameters/power_save


Linux kernel

Here are contents of my minimal (and currently working) .config for Linux kernel 2.6.24.4 (you'll have to make menuconfig again to add drivers that you need and erase drivers that you don't need).

I tailored the kernel following suggestions of the nice powertop software. Compilation requires some 25 minutes (because I wiped out almost all useless drivers).

Probably you will want to add drivers for your own hardware, maybe also:

Note that stock kernels currently do not provide the APPARMOR source (the OpenSUSE kernels define also a SUSE_KERNEL flag in the configuration, plus a bunch of other add-ons that are not needed on a Stylistic - example: X86_XEN, INPUT_TSDEV, etc).



Xorg configuration

Below, the contents of my /etc/X11/xorg.conf (note: not all font directories do actually exist in a common OpenSUSE installation).


# xorg.conf for Fujitsu-Siemens Stylistic ST5022D
#  -- using: xorg 7.2, OpenSuSE 10.3
#  -- by: www.alfonsomartone.itb.it (March 2008)

Section "Files"
  FontPath     "/usr/share/fonts/misc:unscaled"
  FontPath     "/usr/share/fonts/local"
  FontPath     "/usr/share/fonts/75dpi:unscaled"
  FontPath     "/usr/share/fonts/100dpi:unscaled"
  FontPath     "/usr/share/fonts/Type1"
  FontPath     "/usr/share/fonts/URW"
  FontPath     "/usr/share/fonts/Speedo"
  FontPath     "/usr/share/fonts/PEX"
  FontPath     "/usr/share/fonts/cyrillic"
  FontPath     "/usr/share/fonts/latin2/misc:unscaled"
  FontPath     "/usr/share/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/share/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/share/fonts/latin2/Type1"
  FontPath     "/usr/share/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/share/fonts/baekmuk:unscaled"
  FontPath     "/usr/share/fonts/japanese:unscaled"
  FontPath     "/usr/share/fonts/kwintv"
  FontPath     "/usr/share/fonts/truetype"
  FontPath     "/usr/share/fonts/uni:unscaled"
  FontPath     "/usr/share/fonts/CID"
  FontPath     "/usr/share/fonts/ucs/misc:unscaled"
  FontPath     "/usr/share/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/share/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/misc:unscaled"
  FontPath     "/usr/share/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/Type1"
  FontPath     "/usr/share/fonts/misc/sgi:unscaled"
  FontPath     "/usr/share/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/input/mice"
EndSection


Section "Module"
  Load "dbe"
  Load "ddc"
  Load "bitmap"
  Load "type1"
  Load "int10"
  Load "type1"
  Load "freetype"
  Load "extmod"
  Load "glx"
  Load "dri"
EndSection


Section "InputDevice"  # internal (unaccessible) keyboard
  Driver       "kbd"   # serves as base when plugging USB keyboards

  Identifier   "fakekeyboard"
  Option       "Protocol" "Standard"
  Option       "XkbLayout" "us"
  Option       "XkbModel" "pc102"
  Option       "XkbRules" "xfree86"
  Option       "XkbVariant" "basic"
EndSection


Section "InputDevice"  # d'oh! I got also an external USB wheel mouse...
  Driver       "mouse"
  Identifier   "usbmouse"
  Option       "Buttons" "7"
  Option       "Device" "/dev/input/mice"
  Option       "Name" "Asus USB mouse"
  Option       "Protocol" "explorerps/2"
  Option       "Vendor" "Sysp"
  Option       "ZAxisMapping" "4 5"
EndSection


Section "InputDevice"  # the USB keyboard here is "event3"
  Driver       "kbd"
  Identifier   "usbkeyboard"
  Option       "Device" "/dev/input/event3"
  Option       "Name" "X-Technologies PS2-to-USB keyboar"
  Option       "Protocol" "Standard"
  Option       "XkbLayout" "it"
  Option       "XkbModel" "pc102"
  Option       "XkbRules" "xfree86"
  Option       "XkbVariant" "basic"
EndSection


Section "InputDevice"  # the three Wacom serial devices for the screen...
  Driver      "wacom"
  Identifier  "stylus"
  Option      "Device"      "/dev/ttyS0"
  Option      "Type"        "stylus"
  Option      "ForceDevice" "ISDV4"  # Stylistic ST5xxx ONLY
EndSection

Section "InputDevice"
  Driver      "wacom"
  Identifier  "eraser"
  Option      "Device"      "/dev/ttyS0"
  Option      "Type"        "eraser"
  Option      "ForceDevice" "ISDV4"  # Stylistic ST5xxx ONLY
EndSection

Section "InputDevice"
  Driver      "wacom"
  Identifier  "cursor"
  Option      "Device"      "/dev/ttyS0"
  Option      "Type"        "cursor"
  Option      "ForceDevice" "ISDV4"  # Stylistic ST5xxx ONLY
EndSection


Section "Monitor"
  DisplaySize  305 230
  HorizSync    29-61
  Identifier   "monitor"
  ModelName    "Wacom Penabled 1024x768"
  Option       "DPMS"
  VendorName   "LCD Touchscreen"
  VertRefresh  50-76
# Option       "Rotate" "normal"  # Rotate: ignored if "normal"...
# Option       "Rotate" "RIGht"   # Rotate: ...not used if "right" or other
EndSection


Section "Screen"
  DefaultDepth 24  # I855 driver only supports 8/16/24 depths
                   # 8 and 16-bit depth do not support screen rotate (RandR)

  SubSection "Display"
    Depth      8
    Modes      "1024x768"
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1024x768"
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1024x768"
  EndSubSection
  Device       "intel855gm"
  Identifier   "touchscreen"
  Monitor      "monitor"
EndSection


Section "Device"
  BoardName    "855 GM"
  BusID        "0:2:0"
  Driver       "intel"
  Identifier   "intel855gm"
  Option       "XVideo"
#  Option       "SWcursor"
#  Option       "RandRRotation" "True"
#  Option       "Rotate" "On"
  Option "XvMCSurfaces" "7"      # current driver version does not use it
  Option "LinearAlloc" "16384"   # current driver version does not use it
  Option       "DRI"
  Screen       0
  VendorName   "Intel"
EndSection


Section "ServerLayout"
  Identifier   "normallayout"
  InputDevice  "fakekeyboard" "CoreKeyboard"
  InputDevice  "usbmouse"
  InputDevice  "usbkeyboard"
  InputDevice  "Stylus" "SendCoreEvents" # don't use COREPOINTER (xournal bug)
  InputDevice  "Eraser" "SendCoreEvents"
  InputDevice  "Cursor" "SendCoreEvents"
  Option       "Clone" "on"
  Option       "AllowMouseOpenFail" "on"
  Option       "Xinerama" "off"
  Screen       "touchscreen"
EndSection


Section "DRI"
  Group      "video"
  Mode       0660
EndSection


Section "Extensions"
#  Option "RandR" "Enable" # ignored extension on i855
EndSection


# --- the end ---


Da don Michele a Misinto

home page - send e-mail - continua (next page)