Sun SPARC Ultra 1 unter Linux

Sun Ultra 1

Die Sun Ultra 1 war die erste Workstation, die ab 1996 mit Suns 64-Bit UltraSPARC-Prozessor ausgeliefert wurde, es wurden Versionen mit einer Taktfrequenz von 143, 167 und 200 MHz hergestellt. Zudem gab es noch eine "ES"-Serie, die anstelle von 10 MBit Ethernet einen 100 MBit Adapter hat, Fast/Wide-SCSI unterstützt sowie den UPA-Port besitzt, der für die Nutzung von Graphikkarten wie der "Creator 3D" notwendig war.

Mein Rechner ist eine Sun Ultra 1 170E, also mit 167 MHz Taktfrequenz, 265 MB RAM, einer 9,1 GB SCSI-Platte und der Creator 3D Graphikkarte.

Auf dieser SPARC Ultra 1 Workstation von Sun habe ich Debian Linux (Sarge) installiert. Viel gibt es wirklich nicht zu sagen, die Installation verlief unspektakulär unkompliziert. Das einzige nennenswerte Problem war die on-Board-Netzwerkkarte, die zur zuverlässigen Funktion eines Patches bedurfte. Bei neueren Kernel-Versionen scheint das Problem jedoch inzwischen behoben zu sein.

Hier ein paar Notizen zu meiner Installation. Fragen und Ergänzungen sind willkommen.

Netzwerk

Die Netzwerkkarte lief zunächst scheinbar problemlos, allerdings gab es dann wiederholt Probleme: Plötzlich war kein Netzwerkzugriff mehr möglich. In den Logdateien gab es folgende Meldungen:

 
 Apr  3 19:46:46 plasmatic kernel: NETDEV WATCHDOG: eth0: transmit timed out
 Apr  3 19:46:50 plasmatic kernel: eth0: Link is up using internal transceiver at 100Mb/s, Full Duplex.
 Apr  3 19:49:02 plasmatic kernel: eth0: Link is up using internal transceiver at 100Mb/s, Full Duplex.
 Apr  3 19:50:50 plasmatic kernel: eth0: Link is up using internal transceiver at 100Mb/s, Full Duplex.

Weiterer Recherche zufolge ist die Ursache ein Problem in der on-Board-Netzwerkkarte der Sun Ultra 1. Andere Sun Ultras haben diese Problem nicht, wenngleich die Netzwerkkarte sich auch als "Happy Meal" ausgibt wie auf der Sun Ultra 1. Abhilfe bringt zunächst nur ein Neustart des gesamten Rechners.

Das Problem ist allerdings bekannt und es existiert ein Patch, mit dem ich den Kernel 2.4.27 gepatcht habe. Seitdem sind die Netzwerkverbindungen stabil.

Update: Das beschriebene Problem tauchte nur bei einem 2.4.18er-Kernel auf. Ich nutze inzwischen einen ungepatchten 2.4.27-Kernel und das Netzwerk bleibt stabil.

Grafik

Die in meiner Sun Ultra eingebaute Graphikkarte läuft recht unkompliziert - sowohl auf der Console sowie unter X-Free. Es sind aber einige Besonderheiten zu beachten; dazu unten mehr. Meine Konfigurationstdatei /etc/X11/XF86Config-4:


Section "Files"
        FontPath        "unix/:7100"                    # local font server
        # if the local font server has problems, we can fall back on these
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
        Load    "GLcore"
        Load    "bitmap"
        Load    "dbe"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "pex5"
        Load    "record"
        Load    "speedo"
        Load    "type1"
        Load    "vbe"
        Load    "xie"
EndSection

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "sun"
        Option          "XkbModel"      "type5"
        Option          "XkbLayout"     "us"
EndSection

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/sunmouse"
        Option          "Protocol"              "BusMouse"
        Option          "Emulate3Buttons"       "true"
        Option          "ZAxisMapping"          "4 5"
EndSection

Section "InputDevice"
        Identifier      "Generic Mouse"
        Driver          "mouse"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ImPS/2"
        Option          "Emulate3Buttons"       "true"
        Option          "ZAxisMapping"          "4 5"
EndSection

Section "Device"
        Identifier      "Generic Video Card"
        Driver          "sunffb"
        Option          "UseFBDev"              "true"
EndSection

Section "Monitor"
        Identifier      "Generic Monitor"
        HorizSync       28-50
        VertRefresh     43-75
        Option          "DPMS"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "800x600" "640x480"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        InputDevice     "Generic Mouse"
EndSection

Section "DRI"
        Mode    0666
EndSection

Vorsicht Falle: Sie Sun Ultra hat einen Monitoranschluß, der nicht der PCs üblichen Norm entspricht (Sogenannter 13W3-Anschluß). Für den Betrieb von PC-Monitoren benötigt man einen Adapter.

Besonderheiten des "Sun Frame Buffers" (sunffb)

Für eine Besonderheit habe ich recht lange gebraucht um sie zu verstehen. Und hilfreiche Geister der Debian Sparc Mailingliste haben mir mit bewundernswerter Geduld und Ausdauer geholfen, dafür vielen Dank.

Hintergrund

Die Einstellungen des sunffb wie Auflösung und Bildwiederholrate werden beim Booten des Systems festgelegt und können dann nicht mehr ohne erneutes Booten geändert werden. Sie betreffen nicht nur die Textconsole sondern auch XFree. Es ist also vollkommen zwecklos, in der Konfiguration des X-Servers Auflösungen oder Bildwiederholraten anzugeben - sie haben schlicht keine Wirkung auf das, was man auf dem Bildschirm zu sehen bekommt.

Konfiguration des Framebuffers

Es gilt also den Framebuffer zu konfigutieren. Hier bieten sich prinzipiell zwei Methoden an.

Die Liste der verfügbaren Auflösungen und Refresh-Raten ist in der sehr empfehlenswerten Framebuffer FAQ enthalten - auch für andere Sun-Rechner.

Boot me up ...

Der Output von dmesg

PROMLIB: Sun IEEE Boot Prom 3.11.1 1997/12/03 15:44
Linux version 2.4.27-1-sparc64 (joshk@fortissimo.triplehelix.org) (gcc version 3.3.4 (Debian 1:3.3.4-7)) #1 Mon Aug 23 23:59:55 PDT 2004
ARCH: SUN4U
Ethernet address: 08:00:20:7d:50:23
On node 0 totalpages: 31855
zone(0): 49059 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Found CPU 0 (node=f006497c,mid=0)
Found 1 CPU prom device tree node(s).
Kernel command line: root=/dev/sda1 ro
Console: colour dummy device 80x25
Calibrating delay loop... 333.41 BogoMIPS
Memory: 250160k available (1880k kernel code, 296k data, 160k init) [fffff80000000000,0000000017f46000]
Dentry cache hash table entries: 32768 (order: 6, 524288 bytes)
Inode cache hash table entries: 16384 (order: 5, 262144 bytes)
Mount cache hash table entries: 512 (order: 0, 8192 bytes)
Buffer cache hash table entries: 8192 (order: 3, 65536 bytes)
Page-cache hash table entries: 32768 (order: 5, 262144 bytes)
POSIX conformance testing by UNIFIX
PCI: Probing for controllers.
SYSIO: UPA portID 1f, at 000001fe00000000
sbus0: Clock 25.0 MHz
dma0: HME DVMA gate array 
Sparc Zilog8530 serial driver version 1.68.2.2
Sun Mouse-Systems mouse driver version 1.00
tty00 at 0xf1100004 (irq = 12,7e8) is a Zilog8530
tty01 at 0xf1100000 (irq = 12,7e8) is a Zilog8530
tty02 at 0xf1000004 (irq = 12,7e8) is a Zilog8530
tty03 at 0xf1000000 (irq = 12,7e8) is a Zilog8530
Sun TYPE 5 keyboard detected without keyclick
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
VFS: Disk quotas vdquot_6.5.1
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x0
Console: switching to colour frame buffer device 128x54
fb0: Creator 3D at 000001fc00000000 type 11 DAC 10
pty: 256 Unix98 ptys configured
rtc_init: no PC rtc found
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb.c: registered new driver usbmouse
usbmouse.c: v1.6:USB HID Boot Protocol mouse driver
usb.c: registered new driver usbkbd
usbkbd.c: :USB HID Boot Protocol keyboard driver
mice: PS/2 mouse device common for all mice
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 32768)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: cramfs filesystem found at block 0
RAMDISK: Loading 3296 blocks [1 disk] into ram disk... done.
Freeing initrd memory: 3296k freed
VFS: Mounted root (cramfs filesystem).
Unimplemented SPARC system call 188
Unimplemented SPARC system call 188
Unimplemented SPARC system call 188
Unimplemented SPARC system call 188
Unimplemented SPARC system call 188
Unimplemented SPARC system call 188
Journalled Block Device driver loaded
SCSI subsystem driver Revision: 1.00
qlogicfc : PCI not present
qlogicisp : PCI not present
esp0: IRQ 4,7e0 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C9XF(espfast)
ESP: Total of 1 ESP hosts found, 1 actually in use.
scsi0 : Sparc ESP366-HME
  Vendor: IBM       Model: DDRS39130SUN9.0G  Rev: S98E
  Type:   Direct-Access                      ANSI SCSI revision: 02
  Vendor: TOSHIBA   Model: CD-ROM XM-5701TA  Rev: 0317
  Type:   CD-ROM                             ANSI SCSI revision: 02
Attached scsi disk sda at scsi0, channel 0, id 1, lun 0
esp0: target 1 [period 100ns offset 15 20.00MHz FAST-WIDE SCSI-II]
SCSI device sda: 17689267 512-byte hdwr sectors (9057 MB)
Partition check:
 /dev/scsi/host0/bus0/target1/lun0: p1 p2 p3
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Adding Swap: 1659024k swap-space (priority -1)
EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal
sunhme.c:v2.01 26/Mar/2002 David S. Miller (davem@redhat.com)
eth0: HAPPY MEAL (SBUS) 10/100baseT Ethernet 08:00:20:7d:50:23 
IPv6 v0.8 for NET4.0
IPv6 over IPv4 tunneling driver
Disabled Privacy Extensions on device 0000000000612688(lo)
eth0: Link is up using internal transceiver at 100Mb/s, Full Duplex.
lp: driver loaded but no devices found
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 6, lun 0
esp0: target 6 asynchronous
sr0: scsi-1 drive
Uniform CD-ROM driver Revision: 3.12
sunmouse: Successfully adjusted to 1200 baud.

Die Meldung "Unimplemented SPARC system call 188" scheint einen eher harmloseren Charakter zu haben, wenn man Google trauen darf.

Aus den Bootmeldungen gehen noch ein paar wichtige Informationen hervor: die eingebaute "Happy Meal"-Ethernet-Karte benötig das Modul sunhme, der SCSI-Adapter wird von "esp" unterstützt. Letzteres empfiehlt sich fest in der Kernel einzubauen, so man von der Festplatte booten will.

Performance

Vorweg: ich habe keine Benchmarks gemacht. Mein Eindruck: Die Kiste läuft ganz ordentlich, nicht zuletzt dank 265 MB RAM. Echte Wunderdinge sind nicht zu erwarten, aber über SSH starten selbst Monster wie OpenOffice.org in respektablen 40 Sekunden. Firefox ist durchaus brauchbar: als Window Manager ist zur Zeit Windowmaker installiert.

Die Sun Ultra 1 ist unter Linux gut als kleiner Server nutzbar, auch für eine Verwendung als X-Terminal dürfte der Rechner sehr gut geeignet sein.

Hardware

Der Rechner kommt in einem "Pizza-Box"-Gehäuse einher: einem recht ansehnlich aussehenden obendrein. Wirklich leise ist die Kiste leider nicht. Aber sehr solide gebaut. Der Rechner macht einen sehr durchdachten Eindruck.

Update auf Kernel 2.6

Ich habe ein Update auf Kernel 2.6.8 gemacht. Dabei sind einige Besonderheiten zu beachten, die auf einer Seite bei Debian beschrieben sind.

Nötige Änderungen

Anschließend die Datei /etc/X11/XF86Config-4. Und der Tip, daß es sehr hilfreich ist, bei dem Upgrade eine funktionierende Netzwerkverbindung zu haben. Sage nicht, Du seiest nicht gewarnt worden.

Section "Files"
        FontPath        "unix/:7100"                    # local font server
        # if the local font server has problems, we can fall back on these
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/CID"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
        Load    "GLcore"
        Load    "bitmap"
        Load    "dbe"
        Load    "ddc"
        Load    "dri"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "record"
        Load    "speedo"
        Load    "type1"
        Load    "vbe"
        Load    "xtt"
EndSection

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "de"
        Option          "XkbVariant"    "nodeadkeys"
EndSection

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "PS/2"
        Option          "Emulate3Buttons"       "true"
EndSection

Section "Device"
        Identifier      "SunFFB"
        Driver          "sunffb"
EndSection


Section "Monitor"
        Identifier      "Sony"
        HorizSync       30-92
        VertRefresh     48-160
        Option          "DPMS"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "SunFFB"
        Monitor         "Sony"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1280x1024" "1280x960" "1152x864"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1280x1024" "1280x960" "1152x864"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1280x1024" "1280x960" "1152x864"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1280x1024" "1280x960" "1152x864"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1280x1024" "1280x960" "1152x864"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1280x1024" "1280x960" "1152x864"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection

Section "DRI"
        Mode    0666
EndSection

Links


Home
Sebastian Niehaus

Last modified: Sat Oct 24 12:43:52 CEST 2009
$Id: Sun-Ultra1-Linux.html,v 1.13 2009/10/24 10:43:57 niehaus Exp $