Linux On The Palmax 1100


Introduction

The Palmax 1100 is a Cyrix MediaGX based palm/mini-notebook PC. I picked it for a new portable development machine to replace the IBM PC110 for several reasons.

Installing Linux

I did a Red Hat install using the Lorax beta snapshot. Red Hat 6.0 also works fine. The install was done via CD.

If you are using Lorax pick a text mode install. The machine is standard IDE with an IDE hard disk and CD. The installer will do almost everything automatically for you.

The touchpad mouse is not supported by Red Hat. Don't worry about this. The solution will be explained later. The X server works with the PS/2 mouse on the expansion unit and it is quite usable in this setup. Only 8bit depth works currently. It isn't clear if this is a bug in the X server, in the Cyrix VSA or both.

To get the touchpad working download the Xserver listed in the links section.

Audio does not work out of the box. You need to patch and recompile a kernel or use Linux kernel version 2.2.13pre6 or higher to fix this. This is a Cyrix MediGX emulation bug. Another Cyrix MediaGX emulation bug prevents recording from working. That one I've yet to find a cure for.

Compatibility

Compatibility is always an issue with Linux on mini-notebook machines. Vendors pull a lot of tricks to get the machines small enough and low powered enough. The Palmax 1100 fares very well.

Floppy Drive
The floppy drive in the base unit works with Linux. It is a little odd as you can't use both parallel port and floppy together. However it is fully compatible.

CD-ROM
The CD-ROM in the base station is IDE and appears as /dev/hdc. The only problem here is you need to power off to add/remove the base station. The unit is heavily oriented to suspend-to-disk which doesn't work on Linux.

Hard Disk
A 2.5" drive. It can support UDMA but the BIOS does not enable UDMA support and Linux does not know how to enable UDMA on it. Transfer rate in PIO mode is about 2.5Mbytes/second. UDMA is now supported in 2.2.15pre kernels.

Audio
The MediaGX claims to be Soundblaster 16 compatible. It isn't terribly compatible however. I have been working on the MediaGX sound bugs and have the playback side fixed. It turns out that. I now have quite usable audio playback.

Video
8bit video works fine except for some colour problems on console switches. 16bit mode only works with a virtual width set to 1024 pixels. I looked into this one and it appears to die deep in Cyrix magic firmware. Use the 3.3.3.1 SVGA X Server. I'll put up a fixed 3.3.5 server for the Palmax shortly. In the meantime the simple workaround is to set a virtual screen, which forces off the compressed video that breaks the X server. If you don't want a virtual screen set the depth to 641 lines. You'll not notice the one line extra.

The Cyrix MediaGX does not have text modes but emulates them at a very low level. On the Palmax 1100 this works fine in Linux.

Keyboard
The keyboard has a very odd layout and 77 keys. The layout takes a bit of getting used to, but the 77 key keyboard means it has something close to real keys unlike the PC110. The layout is magically mapped by the firmware and the normal UK keymap just works. Suprising and convenient.

Power Management
This works fine under Linux. It wants to use ACPI but you can enable APM support in the BIOS for Linux. Suspend works as does the screen blanking. The hot key for suspend works fine. Suspend to disk does not work in Linux. I plan to try using the Linux swsuspend patches instead. The lack of suspend to disk is the biggest downpoint I have found.

The BIOS allows to underclock the CPU but this requires a reset so is nothing like as convenient as the speed hotkeys on the PC110. It would be nice to know how to set the CPU speeds in Linux.

The extended battery pack claims a four hour running time. Playing games in X11 and doing general work suggests that the claim is reasonable, although probably not true for building kernels. I run the machine with "noatime" set on the root file system, and a 1.5 minute spindown on the disk. Also its worth remembering to set the screeensaver to power down the display and not do fancy graphics.

Pen Input
You can download a special XInput device for the Pen device on the Palmax 1000. With this installed on the Palmax 1100 the pen works beautifully. Accuracy is acceptable and then pen is a lot nicer than the mouse on many of the small laptops.

PCMCIA
The PCMCIA controller works with the Linux pcmcia_cs just fine. Under Red Hat everything simply worked once I enabled PCMCIA and set it to intel style. You get a single type II slot. Ideal for a network card.

IRDA
Itai Nahshon reports that the IRDA works fine with 2.2.14 plus 2.2.14-irda1 patches (thus 2.2.15pre). The Palmax uses an NSC PC97338VJG controller for serial, floppy and parallel. This works in IRDA mode by doing
setserial /dev/ttyS1 uart unknown
modprobe nsc_fir dongle_id=9
irmanager &
ifconfig irda0 up

USB
The Linux 2.3.x USB works on the Palmax. I have some problems with the current development code when doing a suspend and using USB.

Conclusions

The Palmax 1100 is a nice Linux palmtop. There are rough edges in the Cyrix MediaGX support in the sound and video but they are not fatal. The hardware works well and has no obvious nasty surprises for non-windows users.

The two big downers are the lack of suspend to disk under Linux and the continued inability of Cyrix to provide accurate working emulation in their firmware.

There is a Linux suspend to disk patch so I am working on getting this going nicely on the Palmax 1100. Cyrix however appear to be incurable.

Update: Cyrix have now provided the information to let Mark Lord get UDMA working on their 5530 chipset. They have also provided me with enough info to hopefully work around the audio bugs. With these in place the Palmax is basically totally supported in Linux. The only missing piece is BIOS suspend to disk.

Links

XServer
An XFree86 3.3.3.1 server including the Palmax 1000/1100 touchscreen support. The file reports corrupt but the Xserver itself is ok. You will also need a suitable XFree86 configuration to enable the pen.
Amherst Electronics
I bought my Palmax 1100 from these people. I've had no problems with them, and their pre-sale support is very good.
Cyrix Tools
You want set6x86 in order to enable the power management modes on the MediaGX CPU.

For startup my /etc/rc.d/rc.local contains the following lines.

mount -o remount,rw,noatime /
/sbin/hdparm -S 15 /dev/hda
/sbin/hdparm -u 1 /dev/hda
/usr/local/sbin/set6x86 -p 0xC2 -s 0x08
The "noatime" setting turns off the writing back of 'last accessed' times to files. This means reading/opening files does not cause disk wakeups. The hdparm -S 15 command sets the disk to spin down after 1 minute 15 seconds (you can play with the value). The hdparm -u1 turns on IRQ unmasking when doing disk accesses. This is needed to stop audio breakups. The set6x86 command enables the power management on the MediaGX CPU.