|
|
|
Home > Computing > Linux
Running Linux on the Shuttle Zen ST62K
Last modified: Sun Aug 8 17:00:52 2004
Overview
This article describes my experiences getting Linux to work on the
Shuttle Zen ST62K mini-pc. At present, most things are working reasonably
well, but there are some outstanding irritations. It's probably fair
to say that getting Linux working on this machine is not a job
for a new Linux user. If you're not happy with patching and/or
recompiling kernels, tweaking module settings, and hacking start-up
scripts, you'd probably be better off buying something different.
About the machine
The Shuttle Zen is a mini-PC measuring about
10 x 6 x 6 inches, and weighing only a
few pounds even when fully stocked with drives. The motherboard takes up
the whole of the bottom of the case, and the external I/O connetors (PS/2, USB,
etc) are soldered directly onto it. There is therefore hardly any
wiring inside the case. Where wiring is required -- for disks drives, etc.,
-- the unit is supplied with cables that are exactly the right length to
run from the headers on the motherboard to the connectors on the devices.
This makes assembly and wiring extremely simple, provided that you're
fitting exactly the devices that Shuttle anticipate. The case can accomodate
one full-size 5 1/4'' drive, and two 3 1/2'' drives. Of these, one is accessible
from the outside, while the other is not. It isn't entirely clear what kind of
3 1/2'' drive you'd use with the Zen that requires external access; after
all, the motherboard has no floppy drive connector. You could conceivably
fit a 3 1/2'' Zip drive, I guess. In my system I have two 3 1/2'' disks
in a RAID configuration, and a 5 1/4'' DVD reader. Fitting these devices
was an absolute doddle because, as I said, all the cables are supplied
exactly the right length.
One of the most interesting features of the Zen is that it is almost
silent in operation. The CPU is cooled by a heat-pipe system, which uses
a liquid system to convect heat to a finned radiator on the back of
the case. There is a fan in front of this radiator, but it usually
runs as less than 2000 rpm, at which speed it is essentially inaudible.
You can configure the fan speed to increase with temperature, up to
a maximum of about 4000 rpm. At that speed it is quite loud, but as
yet I have not managed to get the CPU hot enough to drive the fan
this hard. My CPU is an Intel Celeron 2.0 GHz, but I understand that
considerably faster CPUs can be accomodated if necessary. I find
that the CPU runs at about 40 celcius most of the time, increasing
to about 50 celcius under heavy load.
Of perhaps slightly more concern is the temperature of the hard drives. I am
assured by the vendor that the Zen case is designed to take two hard disks, and
that the lack of forced cooling should not be a problem. Nevertheless, the hard
drives report their temperatures between 50 and 55 degrees celcius, which many
people would regard as too hot. On the other hand, the reported temperatures
don't decrease significantly even if the drive is powered down under software
control, which makes me wonder whether either (1) the temperature reported
is not
very accurate, or (2) the heat is coming form somewhere else. In any event,
there isn't much
that can be done about this, unless you're prepared to run the fan harder,
which kind of defeats the purpose of using a system like this. I am running
a RAID configuration, and I'm reasonably confident that, even if the drives
were overheating, they wouldn't both fail at the same time.
The power supply is external, and also fanless. It gets slightly warm
in operation, but no warmer than, say, a laptop power supply. The
power supply can deliver about 200W, so it should be more than adequate
to power the motherboard, CPU, and three drives.
I was interested in the Zen because I wanted to construct a silent-running
file server, which would also be able to play music and movies from
time to time. The Zen is one of the few small-form-factor systems that
can accomodate three drives and run almost silently. However, like all
these new PC types, the Zen is fitted with some fairly exotic hardware,
and getting Linux to run on it was never going to be straightforward.
In fact, it was a ghastly experience, for reasons that I'll explain
in due course.
Basic installation
I began by installing RedHat 9. This was perfectly straightforward --
after booting from the CDROM the graphical installer started up, and
the rest of the installation was unremarkable. After installation of
RedHat 9 I had a system that basically worked, but that's about all
that could be said for it. A number of problems were immediately
apparent.
- DMA mode could not be enabled on the hard disks, so everything took
about 20 times longer than it should
- I was able to get X to work using the generic vesa driver. It
supported reasonable (1024x768) screen resolution and colour, but
without any form of acceleration.
- Sound did not work at all
- Every twenty minutes or so the system froze and had to be rebooted
A considerable amount of work was required to fix all these problems.
Kernel
It's probably fair to say that it's hardly worth even attempting to make
the Zen work with a 2.4.x kernel. There is some support for
some of the hardware in the later (2.4.26 and on) 2.4 kernels, but not
much. Life is much easier if you go straight to a 2.6 kernel; I
am using the stock 2.6.7 -- the latest available at the time I got
the machine. Using this kernel offers the following benefits:
- ACPI support is relatively stable. The random crashes with the basic
RedHat 9 installation can probably be put down to the complete lack of
APM support in the Zen motherboard, and the complete lack of viable ACPI support
in the 2.4 kernel. You could, of course, use a recent 2.4 kernel and patch
it for ACPI support, but the ACPI implementation in later 2.6 kernels seems
to work fine without patching
- From 2.6.5, the Zen's audio hardware is supported in the stock kernel.
You'll need to enable ALSA support, rather than OSS, in the kernel, and
select the `ATI IXP' low-level device driver. If you're more used to working
with OSS sound (
/dev/dsp and the like), you may want to
enable the OSS compatibility modules as well.
- There is built-in support for the IDE chipset, which is, again, in
the ATI IXP chip. You'll need to enable this to get DMA working
on the disk drives.
The problem I had was that, running the RedHat 9 kernel (2.4.10),
the machine crashed a half-dozen times in the time it took to build
the new kernel (nearly an hour -- no IDE DMA at this time!) However,
it got there in the end, and booting with the 2.6 kernel gave an
immediate improvement in stability. If you're working with a Linux
distribution that is based on a 2.4 kernel, you'll have to obtain, compile,
and install the latest module management utilities (insmode,
modprobe, etc). You'll also need to hack all the system
startup scripts to pass the right arguments to these new utilities.
If you're using a distribution that already supports 2.6 kernels, these
things should be less of a pain.
Power management: ACPI and APM
The Zen has no APM support in firmware. None. You must
enable ACPI in the kernel. Not doing so is not an option -- the
system just won't work reliably.
Moreover, you need fairly recent ACPI
support, so if you try to install a commercial Linux distribution that
already has ACPI support, the installer will probably crash. You need
to disable ACPI in the installer (perhaps by passing the kernel
boot option acpi=off), then build a more recent kernel
or get the most recent ACPI patches. If you compile in the
`thermal_zone' support, you'll be able to get the CPU temperature
by doing cat /prac/acpi/thermal_zone/THRM/temperature.
I've found that the CPU temperature reported by ACPI does match the
value reported by the BIOS `health check' screen, which is
reassuring.
Because I'm building a file server, which will have to run continuously,
I'm not too concerned about sleep and standby modes. So I don't know
whether these work or not.
X support
The built-in video adapter is based on the ATI IGP9100 chipset. If you've
never heard of this, you're in good company. Nor has anyone else.
ATI have usually been quite good about providing Linux drivers for their
graphics boards, but even the most recent (3.11.1) version of their
proprietary driver does not support the Zen graphics adapter. However,
all is not lost. It turns out that the latest (4.4) version of XFree86
supports this chip out of the box. I let the RedHat installer configure
X for the generic vesa driver, then installed the binary distribution
of XFree86 4.4 over the top of the RedHat 4.3 version,
then simply changed the line in XFConfig
that said
Driver "vesa"
to
Driver "ati"
Then it just worked. Given the amount of hassle I'd had so far, I was
pleasantly surprised at how easy this was. The XVIDEO (`2D acceleration')
extension works fine, so I can play DVD movies at full speed and size
without putting any load on the CPU. I don't know if DRI (`3D acceleration')
can be made to work, as I don't really have any use for this so I haven't
tried it.
Sound
The ATI IXP sound device is supported in ALSA 1.0.3, which is part of
the 2.6.7 kernel. Many hours have been wasted by Linux users moving
to ALSA from OSS, because they don't realize that the ALSA drivers
set all the levels to zero when they load. Audio appears to
play, but no sound comes out. If you can't get any sound out,
turn up the volume using alsamixer or whatever.
I've so far only tried the 2-channel sound; the Zen has six-channel
audio, including optical SPDIF output and input, and I'm interested
in trying this at some point.
IDE DMA, etc
To get DMA working, you'll need to enable support for the ATI IXP
chipset in the kernel. With this done, you can switch on DMA mode by doing
/sbin/hdparm -d1 [device]
or configure the kernel to do this by default. Even when DMA is enabled,
32-bit transfers do not seem to be enabled by default, and you may have
to do:
/sbin/hdparm -c1 [device]
This setting only affects the width of data delivered to the IDE controller,
not the width of the IDE data bus (which is always 16 bits). So the
throughput gains from enabling 32-bit transfers are not particularly
impressive.
Ethernet
The built-in ethernet port is supported by the 8139too
driver, and seems to work perfectly well.
USB
Hmmmm. So far, I've had limited success with this. The USB drivers
load successfully, and when I plug a USB1.1 hard disk into the USB port it
is recognized and can be mounted. A USB mouse works, but
only for an hour or so. Then it stops working and can only be recovered
by unloading all the drivers and reloading them. I don't have any
USB2 devices to try, so I can't comment on whether they work or not.
Conclusion
In the end, Linux is working fairly well on the Shuttle, after a few
evenings of frustration. The machine really is a quiet at the advertising
blurb makes out -- in normal circumstances you can't hear it at all.
The trick with installing Linux is to make sure that you have the very
latest kernel that you can find, as most of the Shuttle hardware is
now supported.
|
|
|
|
Shameless plug
|
 By the author of this site. Buy on-line from Amazon USA | UK
|
|