ripp.net :: Linux on the Fujitsu Lifebook A-1010
Linux on the Fujitsu Lifebook A-1010
Hi there, this document is aged. I still have the machine, but I rarely use it anymore due to a fried battery and a often-busted solder joint on the DC-in jack. Enjoy, anyway!
Installing / Configuring Linux on the Fujitsu Lifebook A-1010
Chris Ripp <chris@ripp.net>
This guide is intended to help anyone with one of these machines get it up and running with Linux. I use Gentoo Linux, but the information should be valid for any Linux distribution.
Contents
- About the machine
- Kernel Configuration
- Built-in Network adapter
- Built-in Modem
- PCMCIA Slot
- Firewire
- USB
- Sound
- Xfree86 Configuration
- Built-in Wireless
- Infrared Port
- ACPI
- CPU Frequency Throttling
- Software Suspend
- ProSavage i2c
- Synaptics Touchpad
- Framebuffer Console
- Hard Drive/Controller
1. About the machine
Your A-1010 probably came with Windows 2000 or XP pre-installed, if you're like me, you want it gone. Here's a brief rundown of the specs (of my machine at least)
- CPU: 1.2Ghz AMD Athlon-4
- RAM: 256MB PC133 SODIMM (expandable to 512MB)
- HD: 30GB FUJITSU MHR2030AT
- Video: S3 ProSavage4 (aka Twister) 16MB
- Network: RTL8139 10/100
- Wireless: XI-726 USB Wireless Adapter
- Screen: 1024x768 LCD
- Modem: Conexant HSF Software Modem
- Infrared: *Unknown*
And here's the output of lspci:
00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/ KM133] (rev 80) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/ KM133 AGP] 00:0a.0 CardBus bridge: O2 Micro, Inc. OZ6912 Cardbus Controller 00:0c.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8231 [PCI-to-ISA Bridge] (rev 10) 00:11.1 IDE interface: VIA Technologies, Inc. VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06) 00:11.2 USB Controller: VIA Technologies, Inc. USB (rev 1e) 00:11.3 USB Controller: VIA Technologies, Inc. USB (rev 1e) 00:11.4 Bridge: VIA Technologies, Inc. VT8235 ACPI (rev 10) 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 40) 00:11.6 Communication controller: VIA Technologies, Inc. Intel 537 [AC97 Modem] (rev 20) 01:00.0 VGA compatible controller: S3 Inc. VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK) (rev 01)
A simple `cat /proc/pci` gives the extended version:
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 128).
Master Capable. Latency=8.
Prefetchable 32 bit memory at 0xa0000000 [0xa3ffffff].
Bus 0, device 1, function 0:
PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP] (rev 0).
Master Capable. No bursts. Min Gnt=8.
Bus 0, device 10, function 0:
CardBus bridge: O2 Micro, Inc. OZ6912 Cardbus Controller (rev 0).
IRQ 11.
Master Capable. Latency=168. Min Gnt=128.Max Lat=5.
Non-prefetchable 32 bit memory at 0x10000000 [0x10000fff].
Bus 0, device 12, function 0:
FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (rev 0).
IRQ 11.
Master Capable. Latency=16. Min Gnt=2.Max Lat=4.
Non-prefetchable 32 bit memory at 0xf0000000 [0xf00007ff].
Non-prefetchable 32 bit memory at 0xf0004000 [0xf0007fff].
Bus 0, device 13, function 0:
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 16).
IRQ 10.
Master Capable. Latency=16. Min Gnt=32.Max Lat=64.
I/O at 0xe300 [0xe3ff].
Non-prefetchable 32 bit memory at 0xf0008000 [0xf00080ff].
Bus 0, device 17, function 0:
ISA bridge: VIA Technologies, Inc. VT8231 [PCI-to-ISA Bridge] (rev 16).
Bus 0, device 17, function 1:
IDE interface: VIA Technologies, Inc. VT82C586B PIPC Bus Master IDE (rev 6).
Master Capable. Latency=64.
I/O at 0x1100 [0x110f].
Bus 0, device 17, function 2:
USB Controller: VIA Technologies, Inc. USB (rev 30).
IRQ 11.
Master Capable. Latency=22.
I/O at 0x1200 [0x121f].
Bus 0, device 17, function 3:
USB Controller: VIA Technologies, Inc. USB (#2) (rev 30).
IRQ 11.
Master Capable. Latency=22.
I/O at 0x1300 [0x131f].
Bus 0, device 17, function 4:
Bridge: VIA Technologies, Inc. VT8235 ACPI (rev 16).
Bus 0, device 17, function 5:
Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 64).
IRQ 10.
I/O at 0xe000 [0xe0ff].
I/O at 0xe100 [0xe103].
I/O at 0xe104 [0xe107].
Bus 0, device 17, function 6:
Communication controller: VIA Technologies, Inc. AC97 Modem Controller (rev 32).
IRQ 10.
I/O at 0xe200 [0xe2ff].
Bus 1, device 0, function 0:
VGA compatible controller: S3 Inc. VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK) (rev 1).
IRQ 11.
Master Capable. Latency=64. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xe0000000 [0xe007ffff].
Prefetchable 32 bit memory at 0x90000000 [0x97ffffff].
If you want to keep Windows installed on your machine, especially if you have XP, you may want to keep the odd partitions that are on there and simply resize the existing ones to make room. I simply wiped the entire disk, so that part is up to you. Let's get started though with the kernel config.
2. Kernel Configuration
I'll go over using the new 2.6 series kernel for this machine...
Here is my .config for 2.6.0-test2. This should give you pretty much everything you need to get started. It works for me...
There was going to be more in this section but I've forgotten what it was supposed to be!
3. Built-in Network Adapter
The built-in 10/100 LAN adapter is a RealTek 8139 variety. Simple enough as we compiled this driver as a module. You should just have to `modprobe 8139too` and you will have ethernet.
4. Built-in Modem
Of course the built-in modem is, in fact, a WinModem, specifically a Conexant HSF chipset. The good news is that a driver exists for it, see http://www.mbsi.com/cnxtlindrv.
If you're running Gentoo like me, simply `emerge hsflinmodem` and then run `hsfconfig` to compile and test the proper modules. You will want to add hsfvia and hsfserial to your list of modules to load on boot. The modem port then shows up as ttyHSFS0.
NOTE: currently, kernels 2.5/6 are not supported by the HSF driver. Hopefully this will change in the near future. UPDATE: I believe it did... but I can't be certain.(?)
5. PCMCIA Slots
If you'll recall we compiled Carbus support directly into the kernel. You should see in your dmesg the following output to confirm that the cardbus driver indeed loaded successfully:
Linux Kernel Card Services 3.1.22 options: [pci] [cardbus] [pm] Yenta IRQ list 0020, PCI irq11 Socket status: 30000007
...or something similar.
you'll obviously want hotplug and pcmcia-cs installed. Configuring those is up to you as you've got your own cards....
6. Firewire (IEEE1394)
The machine has a built-in firewire port. I don't have any firewire device with which to test it, though. If you'll recall we compiled as a module support for the OHCI1394 firewire device. `modprobe ohci1394` should return in dmesg:
ohci1394: $Rev: 578 $ Ben Collins [bcollins@debian.org] ohci1394_0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[f0000000-f00007ff] Max Packet=[2048] ieee1394: Host added: Node[00:1023] GUID[00000e10000496cd] [Linux OHCI-1394]
7. USB
I use the usb-uhci driver, and I compile it directly into the kernel. This is important later on when we try to use the USB wireless LAN adapter. Be sure to compile in input support and evdev support. Other device modules are at your discretion. I use keyboard and mousedev as I sometimes have a USB mouse attached.
8. Sound
You can use either the kernel's OSS drivers, or ALSA. I personally use ALSA as the kernel's drivers would crack, pop, and return odd timeout errors in dmesg.... The sound chipset is a via82xx variety, so if you're using OSS, `modprobe via82cxxx_audio`
If you're using ALSA, you'll want to build support for 'via82xx' and configure ALSA for that (not covered here.) Gentoo users can simply `ALSA_CARDS="via82xx" emerge alsa-driver alsa-utils` to get the driver and utilities.
9. XFree86 Configuration
Here's a link to my XFree86 Configuration. I am currently running 4.3.0. My config includes support for an external USB mouse, under both kernels 2.4 and 2.6...so that's why there's so many input devices configured. (See below for info on the Touchpad support.) A couple of notes though:
- Don't even bother trying to enable any kind of DRI. 3D support is non-existant and GL apps perform lousy, there's nothing you can do. Don't try to play Q3 (or Q4 for that matter!) on this machine. Or probably Q2. Q1 is probably not bad, but slow.
- Using ACPI I can't get the lcd to poweroff via xscreensaver, regardless if DPMS is in XF86Config. Using APM may fix that however, but I haven't checked.
I'll admit I cheated and used the XF86Config that was auto-generated from a previous Debian install... it works great for me.
10. Built-in Wireless
The built-in 802.11b adapter was the whole reason why I bought this machine, and I've only recently gotten this thing to work. You will need the latest linux-wlan-ng package (http://www.linux-wlan.org) I am using version .20 currently, anything prior to that simply wouldn't work for me. Gentoo users can `USE="usb" emerge linux-wlan-ng` and you'll get the usb drivers built for you.
Do `modprobe prism2_usb`, check your dmesg to see that the device actually was enabled, like so:
init_module: prism2_usb.o: 0.2.0 Loaded init_module: dev_info is: prism2_usb usb.c: registered new driver prism2_usb
Then edit the wlan config files, start wlan (`/etc/init.d/wlan start` for me) and then either dhcpcd or ifconfig wlan0 to bring it up. You'll have to read the linux-wlan-ng docs on how to configure it for your specific network.
The linux-wlan-ng docs make mention of adding `prism2_doreset=1` to your modprobe. I've only found this necessary if for some reason the adapter loses its link or chokes, and you have to rmmod and modprobe again.
2.6 kernels are (beginning to be) supported in the linux-wlan-ng-2.1-pre series and should be fully supported in 2.2
11. Infrared
I'm having trouble determining which ir modules/kernel options I need for this chipset. I can't seem to identify it. If anyone has any info on this let me know!
12. ACPI
I use and ACPI enabled kernel, since I found that the fan wasn't cycling with APM. This may have changed in later kernel releases but I decided to stick with it. Turn on EVERYTHING related to acpi in your kernel config, and be sure to install the latest acpid package. The power button event is PWRF for this machine.
You should then be able to poweroff by either closing the lid or hitting the power button, and I can even monitor my battery w/ either gkrellm2 or gnome2's battery applet. All of the other acpi information can be found in /proc/acpi/... including temperature/fan/battery status/info.
13. CPU Frequency Throttling (aka CPUFREQ)
One of the slick feature in 2.6 kernels (and some 2.4 w/patching) is CPU frequency throttling. AMD Calls this "powernow" and it actually works for me on this machine.
You need to compile support for cpufreq into the kernel, and download the userspace utilities (insert URL). The default configuration works quite nicely. Running on battery, cpufreq brings the CPU down to 500Mhz, unless cpu intensive apps are running, or the AC adapter is plugged in, then it will restore it to normal. It's quite configurable through /etc/cpufreq.conf. I haven't really used it that much to see how much battery life it saves...yet.
Once compiled in the kernel you should see messages like this in your dmesg
powernow: AMD K7 CPU detected. powernow: PowerNOW! Technology present. Can scale: frequency and voltage. powernow: Found PSB header at c00e5e10 powernow: Table version: 0x12 powernow: Flags: 0x0 (Mobile voltage regulator) powernow: Settling Time: 100 microseconds. powernow: Has 1 PST tables. (Only dumping ones relevant to this CPU). powernow: PST:0 (@c00e5e20) powernow: cpuid: 0x762 fsb: 100 maxFID: 0x2 startvid: 0x9 powernow: FID: 0x4 (5.0x [500MHz]) VID: 0x11 (1.250V) powernow: FID: 0x6 (6.0x [600MHz]) VID: 0xe (1.300V) powernow: FID: 0x8 (7.0x [700MHz]) VID: 0xd (1.350V) powernow: FID: 0xc (9.0x [900MHz]) VID: 0xb (1.450V) powernow: FID: 0x2 (12.0x [1200MHz]) VID: 0x9 (1.550V) powernow: Minimum speed 500 MHz. Maximum speed 1200 MHz.
14. Software Suspend
Another nifty feature in 2.6 and later patched 2.4 kernels is software suspend. This means you can tell the machine to save the machine state and memory into a swap file or partition, and on the next boot, restore to where it was. You'll need the swsusp utilities at (URL). This feature is still pretty unreliable for me, as you can't suspend from 2.6 and then boot a non-swsusp aware kernel and expect to use your swap space (it alters it slightly), but preliminary tests on the machine seem to indicate it will work...more to come on this.
You need to add the following to your kernel boot line ('append' for lilo):
resume=/dev/hda2
This tells the kernel where to find your saved state info. This should point at either your swap partition or file, depending on how you've ot swsusp set up.
15. ProSavage i2c
In 2.6 kernels the ProSavage video chipset has an i2c module which you can supposedly use to configure/read certain options. However I've been unable to find any useful documentation on what you can do with it...more to come on this as well.
16. Synaptics Touchpad
The Synaptics touchpad is fully supported by the Synaptics driver available here: (need URL). Read the docs on the specifics of configuring it. The middle "up/down" scroll button won't work without this driver. Otherwise it will appear and be functional as just another 2-button mouse. (See the XF86Config section above for futher details.)
Gentoo users: The synaptics driver is included in the ebuild for xfree...so you should only have to configure it.
17. Framebuffer Console
Using a framebuffer console works, so that your vt's aren't trapped inside a 640x480 box in the middle of your screen! You need to compile it in the kernel, and then add the following to your kernel line in grub (use 'append' for lilo).
vga=0x317 video=vesa:1024x768@72,ywrap,mtrr
18. Hard Disk/Controller
hdparm works on the drives quite well, with the exception of barking errors about the CD-ROM (but it still works fine.) I use the following options:
disc0_args="-d1 -u1 -c1 -X69 -S 60" cdrom0_args="-d1 -u1 -c1 -X69"
In my /etc/conf.d/hdparm file. Obviously those are just cmd-line arguments to hdparm.
The disk drive itself is supported by SMART, and both ide-smart and smartmontools will tell you more than you want to know about it.
All-in-all I've been fairly happy with the machine running Linux, as I've had to hunt down support for various things from different places, but it mostly works! Things I have yet to get working:
- LCD poweroff through DPMS: This "just worked" with XP, and I know xfree86 can do this...
- Infrared: If I can identify the IR controller I'm sure this will work, but it hasn't been a big priority as I don't really use it.
- Full sofware suspend: swsusp is a work in progress and it should work soon...I'm sure of it.
That's it for now, check back later for more updates!






