Linux on Gericom X5 Force

Please note: Information on this page is out-dated. Please refer to the Linux Kernel 2.6 on Gericom X5 Force documentation for a more recent version.

Preface and Warning

Installing and configuring Linux on a Gericom X5 Force requires some knowledge of Linux internals. You'll have to patch and re-compile the kernel, install additional kernel modules provided by third party vendors and you'll have to tweak your module and X11 configuration files.

Thus this document is not a "cookbook" but provides technical information and some additional hints which will ease your way to a full-featured Linux installation on the Laptop.

Just for the records: I'm using Debian GNU/Linux "SID" (the bleeding edge version of the distribution), a 2.4.21 kernel (compiled and patched manually) and XFree86 4.2.1 (from SID).

Please note that all information and hints are provided "as is" without any warranty! If your Laptop or your installation is damaged, don't blame me! I've warned you!

Hardware Overview

Surprise: All devices are supported by Linux!

Important note: According to Ralf's Linux on Gericom X5 web page, there are other X5 models using a different graphics device. I don't know, if this is a difference between "X5" and "X5 force", so check the output of lspci before statring the configuration!

Software/Driver overview

USB 1.1

The USB UHCI driver (kernel configuration variable CONFIG_USB_UHCI) works fine (tested with USB mouse, USB to serial adapter, USB harddrive).

USB 2.0

Although with kernel 2.4.21 USB 2.0 is supported, it does not work reliable. I've also applied a patch found on Linux-USB.org which should improove stability, but problems didn't disapear.

Ethernet

The built-in 10/100 MBit LAN controller is supported by the VIA Rhine driver (CONFIG_VIA_RHINE).

Firewire

The built-in FireWire (IEEE 1394) hardware is supported by the OHCI driver (CONFIG_IEEE1394_OHCI1394). I was able to access a harddrive connected via IEEE 1394 at a speed of about 25 MByte/second.

PCMCIA/CompactFlash slot

The CompactFlash slot is supported by the kernel's CardBus driver (CONFIG_CARDBUS). I've successfully read CompactFlash memory cards and used a D-Link DCF-650W WLAN card (requires kernel 2.4.20 or better).

To make CardBus work, two changes to the CardService configuration of the pcmcia-cs package are necessary:

  1. In /etc/pcmcia/config.opts the line exclude irq 7 must be commented out. The statement informs the CardService daemon to exlcude ISA IRQ 7 from the list of usable interrupts. On a "legacy" PC IRQ 7 is connected to the 1st parallel port. However, the Laptop does not have a parallel port and therefore, IRQ 7 can and will be used by PCMCIA/CompactFlash cards.
  2. Because the name of the IDE CardService driver (required to access CompactFlash memory cards) was changed in kernel 2.4.x, it is required to replace all occurrences of ide_cs in the file /etc/pcmcia/config by ide-cs. Of course, you'll have to enable the PCMCIA IDE support (CONFIG_BLK_DEV_IDECS). Please note, that newer versions of the pcmcia-cs package might already include these changes!

Audio Support

Although VIA supplies a kernel module for the audio device, I strongly recommend to use the VIA 82C686 sound driver supplied by the vanila kernel itself.

The CD-RW drive

Kernel and LILO

As cdrecord, cdrdao and friends only operate on "SCSI" devices, it is necessary to enable the IDE SCSI emulation. This is done by the kernel configuration variable CONFIG_BLK_DEV_IDESCSI. Furthermore, you need to enable SCSI CDROM support (CONFIG_BLK_DEV_SR) and generic SCSI support (CONFIG_CHR_DEV_SG).

Additionally, you may have to make some devices nodes in the /dev/-directory:

cd /dev
mknod -m 660 scd0 b 11 0
chgrp cdrom scd0
ln -s scd0 sr0
mknod -m 600 sg0 c 21 0

If you are using devfs this is not required, as the IDE-SCSI drive will request these device nodes to be created by devfsd.

Last, add this line to you kernel's image section in /etc/lilo.conf:

  append = "hdc=scsi"

This will tell the kernel to handle the CD-ROM drive via the SCSI emulation.

cdrecord

To use cdrecord you have to set up the file /etc/default/cdrecord to contain these lines:

CDR_DEVICE=cdrom
CDR_SPEED=24
CDR_FIFOSIZE=4m
cdrom=          0,0,0   -1      4m      "burnproof"

However, cdrecord fails to blank CD-RW media. Use cdrdaoinstead.

cdrdao

You need these lines in /etc/default/cdrdao:

write_device:/dev/sg0
write_driver:generic-mmc

Modem Support

It's unbelievable, but the modem's vendor SmartLink provides a Linux driver for the modem in the download section (you'll first have to read and accept the license agreement).

After downloading and unpacking the driver, it will compile and install some additional kernel modules for modem and fax support and create appropriate device nodes. The modem is accessible via /dev/ttySL0 as a standard modem. Compilation of version 2.7.14 will cause some warnings, but the driver loads fine.

However, the installation routine (make install) may cause problems, because it directly modifies the module configuration in /etc/modules.conf. At least on a Debian system, this file is automatically re-generated every time you invoke update-modules. Thus, I suggest to store these module configuration lines in /etc/modutils/modem and run update-modules:

alias char-major-212 slmodem
alias slmodem slamrmo
options slmdm country=42

Note: The country setting should reflect your location. Please refer to SmartLink's README file.

If you are using devfsd you'll have to generate a file named /etc/devfs/devices.d/modem with this content to make these device nodes permanent:

ttySL0          c       212     0       root    dialout 666

For your convenience, the file /etc/devfs/conf.d/modem should contain:

REGISTER     ttySL0$   CFUNCTION GLOBAL mksymlink $devname modem
UNREGISTER   ttySL0$   CFUNCTION GLOBAL unlink modem

This will generate a logical link pointing to the serial device. On Debian, you'll have to reload the devfsd with update-devfsd.

X11

The GeForce 4 is supported by XFree86 4.2. However, the standard installation does not produce a signal on the VGA connector (ok, I didn't try very hard). Thus, you can't connect the Laptop to a beamer or an external monitor.

However, nVidia's XFree86 4.x driverprovided at their Linux download page works fine with XFree86 4.2.x and supports an external monitor.

After downloading the driver package just invoke it with sh NVIDIA-Linux-x86-1.0-4363.run. If asked, don't download a precompiled kernel module from NVidia but let the installer compile a kernel module on its own. The installer will copy the kernel module to /lib/modules/2.4.21/kernel/drivers/video/nvidia.o and the X11 device driver to /usr/X11R6/lib/modules/drivers/nvidia_drv.o.

To activate the kernel module you'll have to add the line nvidia to /etc/modules. This will load the kernel driver at boot time.

Furthermore, the /etc/X11/XFree86-4 configuration file needs some tailoring. Otherwise, the LCD will stay empty or get screwed up and won't even return to text-mode. I've managed to generate a configuration which shows the X11 desktop after invoking startx and which returns to the text-console after killing the X11 server or switching to the console by Ctrl-Alt-F1. Tailoring is done in the Device-section of the configuration file:

Section "Device"
     Identifier  "GeForce4"
     Driver      "nvidia"
     Option      "UseEdidFreqs"              "false"
     Option      "TwinView"                  "true"
     Option      "MetaModes"                 "1024x768,1024x768"
     Option      "SecondMonitorHorizSync"    "47-55"
     Option      "SecondMonitorVertRefresh"  "60"
     Option      "TwinViewOrientation"       "clone"
     Option      "NoTwinViewXineramaInfo"    "false"
     Option      "NvAGP"                     "1"
     Option      "ConnectedMonitor"          "CRT, DFP"
EndSection

Of course, the Screen section must be adjusted to reference this device entry correctly:

Section "Screen"
     Identifier    "Default Screen"
     Device        "GeForce4"
     Monitor       "LCD"
     DefaultDepth  24
     SubSection    "Display"
       Depth       24
       Modes       "1024x768"
     EndSubSection
EndSection

I've not yet tried to connect the Laptop to a TV.

The touch-pad can be used as a standard PS/2 mouse with two buttons. The "mouse wheel replacement" buttons don't work.

Power Management

With the ACPI Kernel Patch, you are able to retrieve battery and AC adapter status. However, I didn't get suspend to disk or other power safe states working.

IrDA Support

Haven't tried yet ....

Configuration files

Please note, that these files work well for my environment. I provide them as a starting point for your own customization. Please don't use them, if you do not understand, how these configuration files are interpreted by you system.

Contact Information

For questions, suggestions and enhancements, you can reach me at . Please note that I do not have the time to provide basic Linux support (e.g. "How do I download and compile a kernel").


Last modified Saturday, 28-Feb-2004 17:51:04 CET