Howto install linux on a SS40G

Well this page is definitely not a howto page but contains a few tips and tricks for installing linux on the Shuttle SS40G.. First of all I will let OdiN from Viahardware introduce you the computer, then have a look a bit more in details on the specifications and on the motherboard manual. As you can see the most tricky part of the computer is probably the SiS 740 chipset. The two new elements of this chipset are first the integrated 3D-engine SiS315 and the dedicated hi-speed bus MuTIOL. Both of them may cause you some problems.

Before starting ; just a few pictures I took from the computer. As I did them with a webcam, the quality isn't good at all. Photo 1, Photo 2,Photo 3, Photo 4, Photo 5, Photo 6. As you can see I added a heatsink on the southbridge (SiS961), just sticked with a bit thermal paste. I can control the temperature with an external thermometer : the sensor is just behind the heat-pipe. The teperature differance is almost 10°C between the CPU and the outgoing air, this shows how efficient the heat-pipe is. I'm not using the internel sensors because "lm-sensors" disables the auto-fanspeed.

1) Getting started


I did not encounter any problem installing debian-potato on the SS40 but most people encounter a problem during the installation of much more recent distribution (Mandrake 8.2, Redhat 7.2, Suse 7.1) due to the fact that common 2.4 kernel do not initialize correctly the PCI bus (probably connected to the MuTIOL).
I upgraded the debian-woody (aka stable) to debian sid (aka unstable 06/2002). Most kernels 2.2 are working good ; debian kernel or mine. But if you upgrade the kernel to the 2.4 serie (2.4.18-k7 from debian for exemple) you will get this error in the dmesg :
PCI: PCI BIOS revision 2.10 entry at 0xfb360, last bus=1
PCI: System does not support PCI
No PCI bus means no /proc/pci, ans also no hardware on the PCI bus will work (USB, network, sound, ...). I found that the latest experimental kernels (2.5.18 for ex.) are working and initialize the PCI bus correctly but they are not very stable. Thanks to Barchord from Viahardware who discovered that the kernel options :
pci=bios,biosirq
allows most kernels 2.4 to boot and initialize the PCI bus. So if you do not manage to install linux, or if the installation crashes, try this option, regardless to the distribution.
Here is the sumary of my PCI bus (lspci):
jerome@taz:~$ lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS]: Unknown device 0740 (rev01)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] 5591/5592 AGP
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
00:02.2 USB Controller: Silicon Integrated Systems [SiS] 7001 (rev 07)
00:02.3 USB Controller: Silicon Integrated Systems [SiS] 7001 (rev 07)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0)
00:0a.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
00:0b.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 02)
00:0b.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev02)
00:0c.0 USB Controller: VIA Technologies, Inc. USB (rev 50)
00:0c.1 USB Controller: VIA Technologies, Inc. USB (rev 50)
00:0c.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)
00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C (rev 10)
00:10.0 FireWire (IEEE 1394): Lucent Microelectronics FW323 (rev 04)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS]: Unknown device 6325
Added on 2002/07/03 : A small patch has been integrated to kernel 2.4.19-pre6 to make it compatible with the SiS740 ; nevertheless, with kernel 2.4.19-pre10-ac2, the boot options pci=bios,biosirq is still necessary.

2) Installing the Video


XFree86 version 4.1 (and more recent) works on the SiS740 as on most other SiS chipsets due to the (great) work of Thomas Winischhofer Up to now (18/06/2002) the video works under X11 with 2D acceleration and Xv on the first CRT monitor but has not yet been reported on the second head (TV-out).
There is no 3D-acceleration because the DRI for the SiS315 is still lacking in the current kernel (2.4.18).
As this computer has been designed for multimedia and home-cinema, Xv is more important than DRM/DRI. On my system (Thunderbird 900), reading a DivX in full screen (1280x1024) loads the system less that 40%
Update from 25/06/2002 : I tested the TV-out in 800x600 and 1024x768 at 16 bpp : both works with Thomas' drivers. As there is only one video Overlay ; Xv can work either on the CRT or on the TV but not both. Xinerama works also (one desktop on 2 screens) but disables Xv. Without Xv ; watching a DivX on my Tbird900 is possible but there are a few frames lost (0.5%). In the bios I set up : 32M Video Ram and "CRT1+A-V PAL OTV" (there are so many modes, I did not test all of them).
Add option "DPMS" in the Monitor section to enable the monitor to go off after a while (this option is not needed with the mga driver for ex.).

Update from 03/07/2002 : To use a PCI graffic card, you need at least to upgrade (flash) your bios to the number 025. The bios can be found here FS40S025.zip. I tested with succes 2 old cards : a Matrox Millenium2 and a ATI Rage-pro. I used glxgears to test the 3D perfs : both obtained 128FPS wheras the integrated SiS315 (without any 3D acceleration) is at 200FPS. A SS50 with a P4 1.6GHz and a GeForce4-MX420 PCI, glxgears is at 1400FPS and 240FPS with the integrated SiS315 (thanks to Yann Klis)

Update from 04/08/2002 : A precise answer from Thomas Winischhofer on the 3D developpement, especially on DRI for the SiS740 :

yannski AT www-aius DOT u-strasbg.fr wrote:
>
> Hello,
>
> First, sorry if my question is obvious but I didn't find any information on
> your web site or on google.
> I wanted to know if there's work on the way to have the DRI supported for
> the SiS 315 chip (contained for example in a lot of Shuttle boxes). As far
> as I undersnatd, it depends on the DRM kernel module too so, have you got
> any information about the status of this driver?

There are several driver modules involved with DRI. Unfortunately, SiS
changed the register settings on the 315 (compared with the 300 series)
and they don't release any documentation. AFAIK, there is no development
going on at the moment as regards DRI on the 315.

Thomas
Well this is not really a good piece of news but if enough people are interested, maybe thing will change.

3) Review of all the integreted stuff


With the kernel 2.4.19-pre10-ac2-preemp (well, a bit patched) I'm getting almost all the hardware supplied with the SS40G to work ; including the USB2 card. Here is the configuration of the kernel. Here are the main integated feature and how they work :
Features Modules Notes
IDE UDMA 100
SiS 5513
Should be
hard-compiled
hdparm -t /dev/hda => 40MB/s
Not bad for the IBM 60GXP
USB 1.1
SiS 7001
usbcore.o
usb-ohci.o
4 integrated ports
Need device-specific driver : usbmouse for ex.
Sound
C-Media Electronics Inc CM8738
cmpci.o I did not yet test the 4,5 and 6 way out
stereo works well
Ethernet controller
Realtek Semiconductor RTL-8139C
8139too.o
mii.o
Works great : 14 Mbytes/s
Do NOT use 8139cp.o
FireWire (IEEE 1394)
Lucent Microelectronics FW323
ohci1394.o
ieee1394.o
Reported to work
by Patrick Arnold : pca AT pcats.co.uk
VGA compatible controller
SiS 6325
agpgart.o
sis.o sisfb.o
ONLY USEFULL WHEN THE DRI/DRM COMES OUT
USB 2.0
VIA Technologies
ehci-hcd.o
usb-uhci.o
Only tested with USB 1.1 devices
WinTV
Bt878
bttv.o
msp3400.o
Not included in the SS40
Now IR reciever works with LIRC
Sensors it87.o temp_type=0x38
i2c-isa.o
Disables the auto-fan-speed : use ACPI instead
ACPI should be hard-compiled
Turns of out computer properly by pressing on the power button,
To know the CPU temp look in /proc/acpi
may be in deci-kelvin : substract 2732 and divide by 10 to get Celcius degres.

4) Tuning the BIOS for linux


5) Known problems ...

-Stephane Klein (reboot AT online DOT fr) noticed that the internal clock "jumps to the futur" by 4294 seconds (more than 1 hour !) from time to time with kernel 2.4.19. This lead to a lot of problems,especially in log-files. He fixed the problem by patching "time.c" according to this. As my SS40 is sychronized by NTP on a time-server, I never noticed anything like that.

-Brad Jones ( bdjones AT synopsys DOT com ) had some problems with network cards : the integrated RTL8139 and as well other NIC :

NETDEV WATCHDOG: eth0: transmit timed out
The work around is to disable apic at boot. This can be done with an append statement in lilo : append="pci=bios,biosirq noapic".

6) I'm just a newbie and have no idea how to patch/compile a kernel.


Well compiling a kernel isn't that difficult but if linux has to become a very widthly used OS, there must be a kernel for everybody. As the all the SS40 users will use almost the same hardware, we will have almost the same kernel.
I'm currently using the kernel 2.4.20, so if you are interested, you can find a precompiled kernel here
As I don't want to maintain a kernel for each distrib, this is probably independant of any distrib : untar the archive in a directrory :
# tar -xvzf kernel.tar.gz
add the contents of boot to /boot ; do the same for /lib.
# cd kernel
# cp -R boot/* /boot/.
# cp -R lib/* /lib/.
If you are using lilo, edit the /etc/lilo.conf and add the contents of etc/lilo.add at the end of the file and run lilo. if there is any error ; fix it before rebooting (or you system may not restart, you are warned).
# cat etc/lilo.add >> /etc/lilo.conf
# lilo
Now you can try to reboot you system ; at the lilo prompt, just enter "new" as kernel-name.

Rest comming as soon as I have some time.


Completly written with Vim by Jérôme KIEFFER ; any comment can be sent at Jerome.KIEFFER@CRANS.org
Last update on : 20030113

Back to the home page