UltraLinux FAQ

Version: 2.29
Last Update: August 23, 2025

Table of Contents

Section 1: General

1. About the UltraLinux FAQ

The entire contents of this document are copyright 1995 – 2000 by Jim Mintha and Pieter Krul, all rights reserved. Last updated in 2025 to reproduce archival contents for future reference.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license can be found at http://www.gnu.org/copyleft/fdl.txt.

2. What is the history/design/philosophy of UltraLinux?

See The UltraLinux paper from the 1997 Uselinux conference by David Miller and Miguel de Icaza, which gives an overview from the start of the project up to the first Linux distribution with SPARC support, Red Hat Linux 4.0.

3. What is up with all the names (Ultra, SPARC, S/Linux)?

A bit of history. In the beginning the port was called SparcLinux. Unfortunately the owners of the SPARC trademark (SPARC International) felt that this was not a valid use of their trademark and that customers might feel that SPARC Intl. was sponsoring or endorsing the product in some way. So, in order not to get sued I changed the name on the web site to S/Linux. When David Miller, Jakub Jelinek and Eddie C. Dost began to develop the 64-bit port for the UltraSPARC machines, they used the term UltraLinux. It made the most sense to call the project as a whole UltraLinux.

4. Why are there two ports for the SPARC, 32- and 64-bit?

Originally the port was done to 32-bit SPARC machines. Later a kernel was developed to exploit the 64-bit features of Sun’s newer UltraSPARC chips. Under Linux, the 32-bit SPARC architecture is known as “sparc”, and the 64-bit as “sparc64”. The architecture dependent parts for the sparc64 were included in the Linux kernel tree as of version 2.2.5

5. Is everything 64-bit on sparc64, and can I compile 64-bit applications?

The kernel and kernel modules are 64-bit on sparc64, userland is still 32-bit, and in fact the same as on sparc32. The conversion between native 32- and 64-bit function calls is being done via the kernel. Although you can compile a kernel with egcs64, you can’t really use this compiler for building 64-bit userland binaries. See also “Why can’t I compile certain software on my sparc64?” in Section 6.

6. When will it be done?

Done implies that there is no more work to do. In that sense it will never be done. There will always be more features to add, machines to support, and better performance to be had. On the other hand, things work quite well right now. There are a number of distributions available now.

7. I’m having a problem with …. What should I do?

The best thing to do when you find a problem is to send a message to one of the mailing lists. All of the developers read the lists and possibly someone else can help you. David (and the other developers) are too busy to answer every email that gets sent to them. For more information about the available mailing lists, see http://www.ultralinux.org/lists.html. The SPARC-HOWTO also provides more information on Linux on SPARC.

8. Does David Miller work on UltraLinux full-time?

Dave works for Red Hat now.

9. Will UltraLinux run regular Linux (Intel) binaries?

No. Among other things (such as completely different processors), Intel machines are little-endian and SPARC machines are big-endian.

10. Will UltraLinux run SunOS/Solaris binaries?

Yes, there is SunOS emulation, you will require the shared libraries from SunOS (See the related question in the Running section). Solaris as well as NetBSD/OpenBSD support is being worked on. Miguel on the Solaris emulation:

Solaris emulation is not yet finished, but will let you run small Solaris programs (Solaris Netscape does not work for example). You need the ibcs2 package, compile it, create the devices with the script on the package and insert the module. You may need Solaris shared libraries and configuration files. Make sure you host your Solaris stuff under /usr/gnemul/solaris

With later 2.2.x kernels and higher on sparc64, you have the option to choose Solaris Binary Emulation (CONFIG_SOLARIS_EMUL), which will produce a kernel module called solaris.o. See the question in the Running section for more details.

11. How good is the SunOS/Solaris emulation?

From Miguel:

Mhm, this one is hard to tell. I can tell you that achieving 100% SunOS binary compatibility is not possible without making UltraLinux incompatible with the other ports. We have a pretty good SunOS emulation that should be able to run most SunOS programs though.

12. What kind of file systems does UltraLinux use?

The native file system for UltraLinux is ext2fs. The later 2.0.x kernels can read UFS (standard Sun) file systems. The 2.2.x kernels can read and write UFS partitions, which makes it easy to share information with Solaris systems.

13. Can I share a swap partition between SunOS/Solaris and UltraLinux?

It should not be a problem at all. The only prerequisite is that you run “mkswap /dev/sda1” on that partition in your startup scripts on the Linux installation. This is because SunOS uses the swap as just a raw device and doesn’t have magic numbers etc. like Linux does. So if you didn’t do the mkswap then SunOS would spam all the control information and Linux wouldn’t be able to use the swap partition anymore. SunOS doesn’t care what is on there.

14. Can I use the Logical Volume Manager (LVM) on UltraLinux?

At this time, the Sistina LVM for Linux doesn’t work out of the box on UltraLinux. Most major distributions (Debian, SuSE) support Sistina’s LVM however in their latest and/or development releases.

If you are going to use LVM, beware that LVM starts writing at the very start of the disk device and will overwrite the Sun disk label. This could result in not being able to boot anymore from that disk. The LVM partition should start at cylinder 1 or higher, allowing the Sun disklabel, also an essential part for SILO, to be spared.

Probably another good idea is to take a good look at LVM’s lvmcreate_initrd. This should allow you to initialize LVM before all filesystems are mounted. You might have to change the initial ramdisk size to 8kB, which can be done by adding append = “ramdisk_size=8192” to /etc/silo.conf, setting this from the boot: prompt, or when configuring your kernel.

15. I heard that UltraLinux is faster then SunOS/Solaris. Is this true?

Faster is a very relative term. UltraLinux takes a smaller amount of memory to start up, so for machines with a small amount of memory it will tend to seem faster. For most low level kernel functions UltraLinux is faster as you can see from these benchmark results:

                    L M B E N C H  1 . 0   S U M M A R Y
                    ------------------------------------

            Processor, Processes - times in microseconds
            --------------------------------------------
Host                 OS  Mhz    Null    Null  Simple /bin/sh Mmap 2-proc 8-proc
                             Syscall Process Process Process  lat  ctxsw  ctxsw
--------- ------------- ---- ------- ------- ------- ------- ---- ------ ------
trombetas  Linux 2.0.27   50      10    4.8K   59.3K    159K  182     58     77
shakedown   SunOS 5.5.1   49      34   36.0K  158.9K    290K  471    163    201
造型
geneva.ru     SunOS 5.5   50      31   33.7K  148.2K    274K  596    174    205
negro.rut SunOS 4.1.3_U   49     124   18.3K   63.9K    110K  470    152    262

            *Local* Communication latencies in microseconds
            -----------------------------------------------
Host                 OS  Pipe       UDP    RPC/     TCP    RPC/
                                            UDP             TCP
--------- ------------- ------- ------- ------- ------- -------
trombetas  Linux 2.0.27     209     972    1608    1183    2160
shakedown   SunOS 5.5.1     556    1646    2125    1423    2518
geneva.ru     SunOS 5.5     530    1563    2080    1354    2398
negro.rut SunOS 4.1.3_U     890    1375    2287    1573    2804

            *Local* Communication bandwidths in megabytes/second
            ----------------------------------------------------
Host                 OS Pipe  TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                  reread reread (libc) (hand) read write
--------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
trombetas  Linux 2.0.27    9  7.3   16.9   24.3     19     25   40    37
shakedown   SunOS 5.5.1    7  6.9   18.0   19.6     18     24   40    36
geneva.ru     SunOS 5.5    8  7.0   12.6   19.5     18     18   40    36
negro.rut SunOS 4.1.3_U    4  2.0   19.5    8.2     18     24   41    36

            Memory latencies in nanoseconds
            (WARNING - may not be correct, check graphs)
            --------------------------------------------
Host                 OS   Mhz  L1 $   L2 $    Main mem    TLB    Guesses
--------- -------------   ---  ----   ----    --------    ---    -------
trombetas  Linux 2.0.27    49    20    172         180     -1    No L2 cache?
shakedown   SunOS 5.5.1    49    20    175         182    600    No L2 cache?
geneva.ru     SunOS 5.5    49     -      -           -      -    Bad mhz?
negro.rut SunOS 4.1.3_U    49    20    175         183    659    No L2 cache?

Also lm@neteng.engr.sgi.com (Larry McVoy) wrote:

OK, I think I can handle this. Tell your friend that I used to work at SunSoft, in the kernel group, I did posix, ufs clustering, the sun source mgmt system, started 100baseT, architected the cluster product line (from which came vlans which I invented), etc. I think my credentials are probably enough to impress a sys admin 🙂

The main reasons that Linux is faster than commercial Unices:

  • the system call entry is a better design. All Unix systems other than Linux use the design done by Bell Labs 20 years ago and the Linux design is simply lighter – it approaches a procedure call in cost. The complaint is always that Linux can’t possibly be supporting all the features, such as restartable system calls, if it is that fast. Those claims turn out to be false – Linux supports the same features, including security, as any commercial Unix. It’s just designed better. And commercial Unices are starting to pick up the ideas.
  • Linux kernel hacks count instructions and cache misses and eliminate them. This is a biggy. When each “feature” is added into a kernel, people will do gross measurement to show that it made no difference. And each feature doesn’t make a measurable difference – one or two more cache misses in a code path won’t show up. But do that a 100 times and all the “features” taken together start to hurt. Linux is far ahead of the rest of the world, including NT, in that Linus and the other senior kernel folks do not kid themselves that a cache miss here and there doesn’t matter. I frequently see the Linux development effort keep working at it until the feature they are working on can not go faster because it is running at hardware speeds – there is no more room for optimization. Contrast that with the commercial approach of “well, it didn’t slow down for me” and you can start to see how things get out of hand. Kudos to Linus, David and Alan for being the smartest coders in this regard. I’d like to be that good.
  • Linux is a redesign. Many ideas have been rethought using current thinking. All other Unix implementations (exceptions are things like QNX – which also performs at Linux like speeds and has also been shown to be posix/xpg4 etc compliant) are basically the same under the covers. It isn’t surprising that fresh minds can do better – one would hope that we have learned something in 20 years.

Section 2: Hardware

1. What machines WILL currently run UltraLinux?

Supported by the 32-bit UltraLinux project (sparc):

  • Sun4c architecture:
    • SPARCstation SLC (4/20)
    • SPARCstation ELC (4/25)
    • SPARCstation IPC (4/40)
    • SPARCstation IPX (4/50)
    • SPARCstation/server 1 (4/60)
    • SPARCstation/server 1+ (4/65)
    • SPARCstation/server 2 (4/75)
  • Sun4d architecture:
    • SparcCenter 2000
  • Sun4m architecture:
    • SPARCclassic
    • SPARCstation LC (4/15)
    • SPARCstation LX (4/30)
    • SPARCstation 4
    • SPARCstation/server 5 (70, 85, 110, and 170 MHz)
    • SPARCstation/server 10 (with most MBUS processor cards)
    • SPARCstation/server 20 (with most MBUS processor cards)
    • JavaStation 1
    • JavaStation 10
    • JavaStation E
    • JavaEngine 1

Notes:

  1. There are some kernel related memory management problems with sun4c. This is being worked on.
  2. The 170MHz SPARC 5 (Also known as the TurboSPARC) is only supported in the newer kernel releases. There is not much active development, and UltraLinux on this processor is not very stable.
  3. See the related question further in this section.

The following MBUS modules are known to work:

  • SuperSPARC Model 20, 30, 40, 402, 41, 412, 51, 512, 514, 52, 54, 61, 612, 71, 712, 81
  • All HyperSPARC modules
  • Cypress modules

Supported by the 64-bit UltraLinux project (sparc64):

  • Sun4u architecture:
    • UltraSPARC Sbus based workstations: Ultra1, Ultra2, Ultra1 Creator, Ultra2 Creator
    • UltraSPARC Sbus based servers: Netra i, Enterprise 1, 2, 150
    • UltraSPARC Sbus based large servers: Enterprise 3000, 3500, 4000, 4500, 5000, 6000, 6500, 10000
    • UltraSPARC PCI based board computers: SPARCengine CP1400, CP1500
    • UltraSPARC PCI based workstations: Ultra30, UltraAXe, UltraAXi, UltraAXmp, Ultra5, Ultra10, Ultra60, Ultra80, SunBlade 100, SunBlade 1000
    • UltraSPARC PCI based servers: Netra X1, Netra T series, Fire V100, Fire V120, Enterprise 250, 450

Notes:

  1. These boards are known to work without any modifications, see also (3).
  2. Currently completely supported except the embedded network interfaces.
  3. Eric Brower has written a Sun Microsystems CP1400/CP1500/Netra-T1 Platform Support Document.

2. What additional hardware is supported?

Sun workstations and servers up and until the Ultra-2 uses internally the SBUS, Ultra-5 and later uses (normal) PCI.

Currently the following SPARC hardware is supported:

  • SCSI:
    • Sun/PTI Qlogic SCSI cards
    • SCSI/Ethernet Sbus expansion cards
    • SCSI CD-ROM drives
    • SCSI Tape drives
  • 3rd party SCSI:
    • NCR53c8xx
    • Adaptec SCSI
    • Qlogic/ISP
  • Network cards:
    • ATM Fore SBA-200 (Sbus)
    • Myricom Gigabit Ethernet (Sbus)
    • Onboard SunLance
    • Sun QuadEthernet
    • Sunswift Happy Meal SCSI/Ethernet
    • Several Linux supported PCI based ethernet cards
  • Framebuffers:
    • MG1/MG2 – bwtwo (monochrome)
    • CG3 – cgthree (8-bit)
    • GX, GX+, TGX and TGX+ – cgsix (8-bit)
    • SX – cgfourteen (8 and 24-bit)
    • TCX – SS4 and SS5 (resp. 8-bit and 24-bit, AFX bus)
    • LEO – ZX/TurboZX (24-bit)
    • FFB/FFB2 – Creator/Creator3D (24-bit)
    • PGX – ATI Rage Pro (8-bit)
    • PGX24 – ATI Mach64 (8 and 24-bit)
    • AFB – Elite3D (accelerated only, 24-bit)
  • OEM framebuffers:
    • cgRDI (cgthree, 8-bit)
    • Raptor GFX (8-bit and 24-bit)
  • Storage:
    • All tape drives and changers
    • StorEdge T3
  • Miscellaneous:
    • serial console
    • CS4231 based audio
    • Floppy drive

Notes:

  1. Booting from these cards requires OBP firmware.
  2. The sun4c platform has problems with these card due to firmware problems.
  3. Only the Ethernet part on combined SCSI/HME PCI cards can be used. Devices are recognized by the OBP, but not by the kernel.
  4. Use the Xsun24 X server with the “-noFFB” option to disable acceleration, or if you have the Solaris driver, see the related question in Section “Running”.
  5. See http://open-projects.linuxcare.com/t3 for more driver information.
  6. Booting from floppy might not work on certain sparc64 based machines.

3. What machines do not YET run UltraLinux?

These machines are not yet supported, either due to lack of time, lack of access to test machines, or simply because they’re very new. It is expected that they will be supported in the near future, especially the Sparcbook 3:

  • Solbourne clones
  • Tadpole SPARCbooks

The older SPARCbooks (1,2) have very different hardware and are likely to be difficult to support. The newer 3 and up ones are much more standard. The Tadpole Sparcbook 3 is now supported to the point where it will run X in the vger CVS tree, and soon in 2.3 kernels. A way to run Linux on a TadPole SPARCbook 3GX is described in the SparcBook F.A.Q., by Hugo van der Kooij.

4. What Sun machines will NEVER run UltraLinux?

The Sun i386 which is based on the Intel 80386, and not on a SPARC chip, can’t run UltraLinux nor Linux/Intel.

If you are interested in running something other than SunOS on these machines you should take a look at the NetBSD project which also does support some of them.

5. Can Linux work on a Sun3?

The Sun 3 (or for that matter the really old Sun 2 and Sun 1) machines (such as Sun 3/50, Sun 3/60) are based on the Motorola 680×0 processor, as opposed to the SPARC processor. There is experimental support for Sun3 series of workstations in later Linux/m68k kernels.

There is a port for the Sun 3/50, 3/60, 3/1xx (except 110) and 3/2xx machines, which can be found at The Linux/sun3 homepage. There is a mailing list for Linux/Sun3, which you can subscribe to by sending an email with “subscribe” in the body to: sun3-list-request@redhat.com. Can Linux work with a Sun4 (such as 4/330)? There are quite a few differences with the Sun4 machines vs. the Sun4cdmu types, such as MMU, ethernet chip, disk controller and graphics cards. In more recent kernels, there is limited support for sun4 (only 4/300 series).

There has been a mailing list set up for people who are interested in the Sun4 port. This list does not seem to exist anymore, but Red Hat does have the intention to restore the mailing list archive in the near future.

6. Where can I find more information on older Sun hardware?

Gregory Leblanc, James Birdsall and others started a project to resurrect the Sun Hardware Reference, to describe all Sun hardware, old and new. The new Sun Hardware Reference project can be found at http://sun-ref.sunhelp.org.

James Birdsall’s original Sun Hardware Reference, which describes Sun hardware up to the year 1995 is also available at http://sun-ref.sunhelp.org.

http://www.obsolyte.com also has practical information about older Sun hardware.

The FAQABOSS, the Frequently Asked Questions About Buying an Old (Used) Sun System is also a must to read if you wish to get an (Ultra)SPARC machine, or if you would like to learn more about which part is compatible with what machine.

7. Where can I find out lots more information about Sun stuff?

http://www.sunhelp.org has a fairly comprehensive list of resources for Sun related things including a list of FAQs.

8. Can I use every Weitek POWER uP chip?

The chips with at least revision code 9518 or later are known to work perfectly, lower revisions do not. This code can be found in the lower right hand corner if you look at the top of the chip. The bottom line reads eg. “Weitek 9518-T”, with 9518 being the revision number. A close-up picture of this chip can be found at the Auxio hardware archive, with thanks to Tad Bilby.

9. Can I use ISA/PCI cards from my PC on my (Ultra)SPARC machine?

This depends on your system. If your system is Sbus based, the answer is no. The same for ISA cards. On PCI based systems however your card can work if there is driver support within Linux. Known to work are PCI SCSI cards, PCI TV cards, PCI video cards, PCI (Fast)EtherNet cards.

10. How can I make my JavaStation/Engine to work?

You will need a very recent 32-bit Linux kernel compiled on a SPARC machine with several options enabled in order to get the JavaStation/Engine to boot. There several projects about Linux on Sun JavaStation’s, for example Linux on the Sun JavaStation NC HOWTO and The unofficial Javastation documentation project.

11. How can I make my Netra X1 / Txx to work?

The Netra X1 and T series are supported in very recent kernels. You can install Linux either via the serial port, or from CD-ROM. For the serial ports on the X1, you should use the combined RJ45 console/LOM port (ttya, the upper one). Please note that the cables you use for the serial ports on the X1 do not have to be null-modem cables. If you would like to install Linux via a network, you should probably use an external interface which you can connect to the USB port. For more information about Linux on the X1, please see Sparc Netra X1 Linux, a document written by Joseph N. Wilson. For more information about Linux on the T1, please see Eric Brower’s Sun Microsystems CP1400/CP1500/Netra-T1 Platform Support Document.

12. How can I make a Linux X-Terminal from my old SPARCstation?

You can try the SLXT package for the SPARC, available from http://www.pucebaboon.com/SLXT. The package is still actively being developed, although slowly.

A description and references on how to use a Sun3/50 as a Linux X-Terminal can be found at http://www.bitlink.cx/Library/sunxterm.html.

13. Can I use the ISDN capabilities of my SPARCstation?

Unfortunately no. Several SPARCstation models, such as the SPARCstation 10, 20, LX and Voyager, use an Sbus based DBRI chip (Dual Basic Rate ISDN), often combined with an audio part either onboard or in a Sun SpeakerBox. The audio part works under Linux, but the ISDN part has not been completed. There are no drivers known for other Sbus based ISDN cards. Probably the best what can be done is to connect an external ISDN terminal adapter to a serial port.

14. Is there support for audio on my SPARC?

Yes, there is (experimental) support for audio in recent kernels. For a complete list of supported audiodevices you can visit the Linux/SPARC audio subsystem information page.

15. Can I select the internal speaker or line-out for audio?

You can use the program audioctl for that. Audioctl is a utility for displaying or setting various audio system driver variables on SPARC systems, and can be used to display or change the settings for audio parameters like volume, sampling rate and output device. It ships with most distributions, but the original sourcecode for Linux can be downloaded from ftp://ftp.dementia.org/pub/linux/sparc/audio.

Section 3: Distributions

1. What distributions are available for UltraLinux?

The following distributions are known at this moment (in alphabetical order):

  • Aurora SPARC Linux
  • Debian GNU/Linux
  • Gentoo Linux
  • Kondara MNU/Linux, in the Japanese language, based on Red Hat’s Raw Hide
  • Linux-Mandrake
  • PLD GNU/Linux
  • Red Hat Linux
  • Rock Linux
  • Splack Linux
  • SuSE Linux
  • UltraPenguin
  • Vine Linux, in the Japanese language, based on Red Hat Linux

TurboLinux has included a developer version for SPARC in their WorkStation Pro 6.1 release.

For more information about the available mailing lists for these distributions, please see http://www.ultralinux.org/lists.html.

2. Aurora SPARC Linux

A new initiative to build a distribution based on the recent sources of new Red Hat releases has started in October 2001 under the name of the Aurora SPARC Project, and released version 1.0 (Ansel), based on Red Hat Linux 7.3 in the year 2003. Intentions are to base the next release on Red Hat 9.x

The Aurora SPARC project homepage can be found at http://auroralinux.org. See also the mailing lists and list archives at http://lists.linuxpower.org/mailman/listinfo.

3. Debian GNU/Linux

Debian GNU/Linux is the result of a volunteer effort to create a free, high-quality Unix-compatible operating system, complete with a suite of applications.

Debian was created by Ian Murdock in 1993, initially under the sponsorship of the Free Software Foundation’s GNU project. Today, Debian’s developers think of it as a direct descendent of the GNU project. The Debian SPARC port was included as of version 2.1 (slink).

Unlike for instance Red Hat, Debian does not produce their own CD’s, but instead builds ISO images which are distributed to CD vendors like Cheap*Bytes, LinuxMall or For a list of vendors, visit http://www.debian.org/CD/vendors.

What the latest version is of Debian GNU/Linux can be seen at http://www.debian.org/releases. All Debian versions have codenames like Red Hat has, to be able to keep stable versions apart from the unstable. All about the Debian codenames can be found at http://www.debian.org/doc/FAQ/ch-ftparchives.html.

ISO CD images of Debian GNU/Linux can be downloaded from http://cdimage.debian.org.

You can also download Debian via anonymous FTP from ftp://ftp.debian.org.

For more information and documentation about Debian for SPARC, see the Debian SPARC Port, or Debian SPARC 64 Port pages.

Debian SPARC Errata contains a list of well-known problems with Debian SPARC, and also includes the status and errata of sparc64.

Debian security updates can be found at http://security.debian.org.

4. Gentoo Linux

Gentoo Linux started making Linux distributions somewhere around the year 1999, and supports the 32-bit and 64-bit SPARC based machines.

You can download their latest bootable ISO images.

In addition, Jack Morgan has put some of his configuration files here. The Gentoo Sparc/Sparc64 Linux Installation Guide can be found here.

5. Linux-Mandrake

Linux-Mandrake is a Linux distribution, being produced and published by MandrakeSoft S.A., located in Paris, France.

You can download bootable ISO images of Linux-Mandrake Corporate Server for SPARC and UltraSPARC via anonymous FTP. A list of FTP servers can be found at http://www.linux-mandrake.com/en/ftp.php3.

6. PLD GNU/Linux

PLD Linux is a distribution mainly made in Poland, and are currently preparing to release their first distribution, which contains a version for SPARC. The distribution can be downloaded from ftp://ftp.pld.org.pl/PLD-1.0/sparc. ISO 9660 cd images are not present at this time.

7. Red Hat Linux

Red Hat, Inc. has been releasing versions of its distribution for SPARC since 1996 and was the first company to have a SPARC version. The latest version of Red Hat Linux for SPARC was 6.2 (Zoot).

Red Hat has so far released the following versions for SPARC:

  • Red Hat 3.0.4 (beta for 4.0) (Rembrandt)
  • Red Hat 4.0 (Colgate)
  • Red Hat 4.1 (Vanderbilt)
  • Red Hat 4.2 (Biltmore)
  • Red Hat 5.1 (Manhattan)
  • Red Hat 5.2 (Apollo)
  • Red Hat 6.1 (Cartman)
  • Red Hat 6.2 (Zoot)

As you can see, there is a sort of “tradition” in not releasing x.0 versions for SPARC. However, Red Hat will not release new “official” versions for SPARC. Their “Raw Hide”, the development version of Red Hat Linux, is available for SPARC, but hasn’t been updated recently.

You can download the older 6.2 version via anonymous FTP from ftp://ftp.redhat.com/pub/redhat/redhat-6.2/sparc/, and as ISO CD image (English only) at ftp://ftp.redhat.com/pub/redhat/redhat-6.2-en/iso/sparc. A list of mirror sites can be found at http://www.redhat.com/mirror.html. Raw Hide can be downloaded from for instance Rpmfind.Net.

Various errata and fixes for the Red Hat Linux distribution are listed at http://www.redhat.com/support/errata.

8. Splack Linux

Slackware Linux, started by Patrick Volkerding, was one of the first Linux distributions available, since April of 1993.

An experimental version for the SPARC processor was put on the Slackware FTP server in December 2000, but Slackware has not officially released any distribution for the SPARC. Splack is a volunteer effort set up to continue work on the now defunct Slackware Sparc port, and claims to be 100% Slackware compliant. More information about Splack can be found at http://www.splack.org.

9. SuSE Linux

SuSE Linux AG is a European company that exists since 1992, and has released the SPARC version of their distribution since SuSE Linux 7.0. The latest version is 7.3, and will probably be the last since SuSE dropped support for Sun hardware.

Five ISO-images containing the US-version of SuSE Linux for SPARC can be downloaded via anonymous FTP from ftp://ftp.suse.com/pub/suse/sparc.

10. UltraPenguin

This is the original port to the sparc64 machines, based on the 32-bit Red Hat Linux distribution. David Miller and Jakub Jelinek announced April 27th, 1999, that they had stopped general maintenance of UltraPenguin. One of the reasons for this was that as most of the differences between the Red Hat 5. distribution and UltraPenguin 1.1.9 had been merged into Red Hat 6.0, it was just duplicated work for them.

Several mirrors still have a copy of the UltraPenguin distributions available, for instance at rpmfind.net.

If you want to learn more about Linux on UltraSPARC machines, there is a mailing list. Send a message to Majordomo@vger.kernel.org. The message doesn’t need a subject just a line like: subscribe ultralinux your_email@your.domain

Section 4: Building

1. What operating systems can I use to build a kernel?

Except Linux itself, the only guaranteed environment is SunOS 4.1.x where x>3. It is possible to build it under Solaris using the same tools, and Pete Zaitcev’s (zaitcev@metabyte.com) elf2aout program to convert the kernel at the end.

2. What tools do I need to compile an UltraLinux kernel from SunOS?

You will need the following tools in order to compile the kernel. Make sure they are in your path ahead of the SunOS versions.

  • GNU binutils
  • GCC 2.6.3 (later versions will most likely work, but 2.6.3 definitely does work)
  • GNU bash (having it in /bin is the easiest)
  • GNU make

You can find these tools for Sun Solaris 2.3 and up at http://www.ibiblio.org/pub/solaris/sparc.

Please note that for the newer kernels you will need GCC version 2.7.x, or EGCS 1.0.3 and up. See also the GCC Home Page.

3. What tools do I need to compile a new kernel on an UltraSPARC?

In order to produce a 64-bit kernel for an UltraSPARC based machine (sparc64), you will need an appropriate compiler and libraries. In this case that’s egcs64, the Experimental GNU Compiler System for sparc64. If you are not using any distribution, the best thing to do next to build it from the sources (see the GCC homepage) is extract the 64-bit EGCS or GCC for sparc64 from one.

As Jakub states, the 64-bit support in gcc is complicated:

  • egcs64 (which is a snapshot of egcs 1.0.x CVS) supports 64-bit -mno-fpu only (= kernel)
  • gcc 2.95.x doesn’t support sparc 64-bit
  • gcc 2.96-RH should support both 64-bit kernel (-mno-fpu) and userland (ie. floating point too. There is one known miscompilation of kernel currently though, see earlier mail on this list about a fix. The fix is not packaged yet).
  • gcc 3.0.x is untested for sparc 64-bit, but basically could do -mno-fpu (kernel), provided it is tested and possible bugs are fixed
  • gcc 3.1 (ie. current CVS) should support sparc 64-bit, both kernel and userland, but any testing helps obviously

4. Why does the program “make” complain about a non-existent sparc64-linux-gcc?

You will need egcs64 or GCC 3.x. Please see the question above.

5. Can I just grab the latest Linux source tree and compile it?

As of kernel version 2.2.5 UltraLinux (sparc and sparc64) is completely supported, although there are issues for older SPARC hardware with the newer 2.4.x kernels. If you need earlier kernel versions you can get some precompiled versions from ftp://ftp.auxio.org/pub/vger/Sparc/kernel/v2.0.

6. Where can I find the most recent kernel anyway?

The most recent kernel versions are being kept at BitKeeper. You will need the Bitkeeper software to obtain the most recent kernel, which can be found at http://www.bitkeeper.com. The BK Linux FAQ provides good information on BK usage, how to work with it, and how you can get to the Linux kernel sources. Another option is, since the SPARC development tree is synchronized with the Linus tree, to download the latest version from http://www.kernel.org or one of its mirrors. You can find all versions of the linux kernel there, including development versions.

7. When I configure the kernel what options should I choose?

The default configuration has already been set to provide maximal compatibility for all sparc and sparc64 machines. The default options are stored in arch/sparc[64]/defconfig.

8. How do I compile the kernel for UltraLinux?

Compile the kernel in the normal way (Follow the instructions in /usr/src/linux/README), but at the end, instead of make zImage or make zlilo, you should do

# make vmlinux
# make modules
# make modules_install

9. What should I do after a new kernel has been compiled?

A few simple steps after the compiling of the kernel, the modules, and the installation of the modules:

  • Copy linux/System.map to your bootfile directory (eg. /boot), and rename this file to System.map-<kernel-version>.
  • Copy linux/vmlinux to your bootfile directory, and rename this file to vmlinux-<kernel-version>.
  • Edit /etc/silo.conf, and add your new kernel to this file.
  • Reboot your machine.

Of course there are various ways of doing this, but this way works best for me. See also the questions about SILO in the section Booting of this FAQ.

10. Do I need to compress the kernel?

There are no size limitations on the SPARC architecture so you don’t need to compress (gzip or bzip2) the kernel. It will save you some space at the cost of a slightly longer bootup. The slower SPARC machines do not really like the compressed images (zImage, bzImage).

This is partially true, as there is a size limit: it is about 2.6MB. In case vmlinux is already smaller than 2.6MB, it only saves some meager KB on your disk, at the expense of a longer startup-time, quite some for slower systems. If SILO detects a compressed file, it will inflate it. This is also the reason it is useless to compress it if the kernel is too big.

The alternatives are:

  • Use (more) modules instead of built-in if possible.
  • strip(1) the kernel image.

11. What do I need to put in the root directory?

(This is still a bit sketchy…)

In the directory that you exported the kernel from, you need to create the directories: etc/ lib/ bin/ tmp/ dev/ sbin/ proc/ usr/ var/. You will need to create all the devices in dev/. The MAKEDEV script will do this (although it seems to want to be run on a Linux machine which might create a chicken and egg problem).

Then, check out the UltraLinux archives in: ftp://ftp.auxio.org/pub/vger/Sparc and grab anything that looks interesting to you. Unpack these from the root or your exported directory (they should fill up your usr/ sbin/ and etc/ directories).

12. What is this RPM stuff people keep talking about?

RPM is a software packaging tool, originally pushed by the Red Hat GNU/Linux people. It can be used to build and install software packages. See http://www.rpm.org, or the RPM Documentation Project at http://www.rpmdp.org.

If you need to get a statically linked RPM binary (so you can unpack the latest version of RPM which itself is an RPM file) you can find it at ftp://ftp.rpm.org/pub/rpm/dist.

13. How do I set up init?

The best thing to do is grab SysVinit, for example from http://www.ibiblio.org/pub/Linux/system/daemons/init.

Commands such as shutdown and halt can be found at ftp://ftp.kernel.org/pub/linux/utils/util-linux. They used to be part of the SysVinit package.

14. What do I need to get networking running?

This is what I do once I have logged in to the UltraLinux machine as root:

Notes: 137.82.51.3 is the IP address of the UltraLinux machine named dodo. 137.82.51.254 is our gateway to the internet.

  • Add the loopback interface:
    # ifconfig lo 127.0.0.1
  • Add a route to it:
    # route add -net 127.0.0.0
  • Add the ethernet interface and address:
    # ifconfig eth0 137.82.51.3 broadcast 137.82.51.255 netmask 255.255.255.0
  • Add a route to it:
    # route add -net 137.82.51.0 netmask 255.255.255.0
  • Add a route to the outside world:
    # route add default gw 137.82.51.254 metric 1
  • Give my machine a name:
    # hostname dodo

15. How do I get YP (NIS) working?

If you are running a recent distribution then NIS support is compiled into the libc library. To enable it:

  • Set the domainname for your NIS domain:
    # domainname physics.ucla
  • Edit /etc/yp.conf with the line:
    ypserver NIS.SERVER.IP.ADDRESS
    ypserver 137.81.56.22
  • Edit /etc/nsswitch.conf to make sure that the correct services will query NIS (ie passwd, hosts, groups) E.g.:
    passwd:     files nis
    group:      files nis

NOTE: Always use yppasswd instead of passwd when changing your passwd or else a little feature will happen… your local passwd file will be appended with the NIS passwd…

16. What do I need to do to get X11r6 running?

You need the following:

  • An X11r6 ‘tree’ mounted under /usr/local. I use the tree from SunOS and mount it like:
    # mount -t nfs 137.82.51.1:/share/sunos/local /usr/local
  • Create the devices that X11 needs:
    # mknod /dev/kbd c 11 0
    # mknod /dev/sunmouse c 10 6
    # mknod /dev/fb0 c 29 0
  • Create a symbolic link from /dev/sunmouse to /dev/mouse.
  • Create links from your graphics card (you only need the relevant one, but having all doesn’t hurt):
    # ln -s /dev/fb0 /dev/cgsix0
    # ln -s /dev/fb0 /dev/bwtwo0
    # ln -s /dev/fb0 /dev/cgthree0
  • Start the X server (-ac turns off access control):
    $ Xsun -ac

Section 5: Booting

Below is the HTML-ready content for Section 5: Booting from the UltraLinux FAQ, formatted for easy pasting into a WordPress blog. Each question is linked for quick navigation within the section, and the content retains the original structure and details, with added styling for readability. The table of contents at the top links to each question, and the section is self-contained for easy integration.
html

 

UltraLinux FAQ – Section 5: Booting

Version: 2.29
Last Update: October 12, 2003

Table of Contents

Section 5: Booting

1. What is a boot prompt, and how can I get to it?

Sun SPARC-based machines have an OpenBoot PROM which takes control of the computer when you turn it on. This is somewhat similar to the BIOS in a PC computer, except that the Sun boot PROMs have a built-in Forth interpreter which lets you do quite a number of things with the computer without/before booting an operating system, such as listening to the network, looking at the SCSI bus, testing memory, setting the default boot device, and setting other parameters.

In order to get to the OpenBoot PROM command line (we’ll call it the boot prompt (ok) from here), you need to hold down the Stop key (or L1 key on older type 4 keyboards) and simultaneously press the A key. This will bring you to the prompt (usually ok but see the next question). If there is an operating system running on the system, it will be suspended if you use this key combination. To resume where you were, type go.

Normally you would hold Stop-A while the machine is checking its memory before boot time, or by typing halt from the SILO boot prompt if SILO is already installed. If you want to see or change a number of settings, you can also use the program eeprom from a running system. It is included with Solaris and most major UltraLinux distributions. Jakub Jelinek has made the Linux version, included in his prtconf package. This package can be obtained from distribution sources, or alternatively from ftp://ftp.auxio.org/pub/linux/SOURCES.

2. Why can’t I see “ok” at the boot prompt?

Older Sun machines default to the > prompt. You can change this to the new command mode by typing the letter n, which will give the ok prompt. If you want to make this permanent, type:

ok setenv sunmon-compat? false

3. How can I see all the PROM parameters?

From the ok prompt, type printenv, or use eeprom from a shell.

4. What other commands are available at the boot prompt?

The OpenBoot Command reference at docs.sun.com provides detailed information. Here’s a small list of handy commands:

help           Display command line help
banner         Display power-on banner
module-info    Display CPU speed (OpenBoot 2.x)
.speed         Display CPU and bus speeds (OpenBoot 3.x)
.version       Display version of the Boot PROM
.enet-addr     Display ethernet address
watch-net      Monitor network connection
test-net       Test the onboard network interface
devalias       Display all current device aliases
probe-scsi     Identify the devices attached to the onboard SCSI bus
probe-scsi-all Identify the devices attached to all SCSI busses
show-disks     Display device paths of installed SCSI disks
show-displays  Display device paths of installed display devices
show-sbus      Display a list of probed SBus devices

Examples for commands such as boot and setenv can be found throughout this FAQ.

5. How can I boot directly from the floppy/CD-ROM/Tape Drive?

At the boot prompt (ok), you can type the command boot, followed by the device that you want to boot from. Examples:

ok boot floppy    Boot from the floppy disk
ok boot fd(0,0,0) Boot from the floppy disk
ok boot cdrom     Boot from the CD-ROM
ok boot sd(0,6,2) Boot from the CD-ROM
ok boot tape      Boot from the tape device
ok boot sd(0,4,0) Boot from the tape device
ok boot disk      Boot from the hard drive
ok boot disk2     Boot from the hard drive with SCSI ID: 2
ok boot sd(0,2,0) Boot from the hard drive with SCSI ID: 2
ok boot sd(0,1,3) Boot from the 4th partition of SCSI ID: 1

Some older PROMs do not understand some of the “short” device aliases (i.e., cdrom), and you will need to use the longer explicit form.

6. How can I eject my floppy disk or CD?

Besides running the command eject floppy or eject cdrom from a shell, you can also run this from the boot prompt (ok).

7. How can I set it to automatically boot from a different device?

With older PROM versions, you can change the boot device by altering the boot-from parameter from the boot (ok) prompt:

ok setenv boot-from disk2     to boot from SCSI ID: 2 by default
ok setenv boot-from sd(0,2,0) to boot from SCSI ID: 2 by default
ok setenv boot-from disk3:a   to boot from SCSI ID: 3 partition 0 or a

Set the boot-device parameter on newer systems, for example:

ok setenv boot-device disk2 cdrom net

to let the system boot from the second disk, if that fails the CDROM, then the network device, and so on. You can also see and modify these parameters from a running system by using the eeprom command. See also the question “What is a boot prompt, and how can I get to it?”.

8. How can I unset a PROM parameter?

Use set-default followed by the variable name. At the boot prompt (ok), you can type, for example:

ok set-default boot-file

With the command printenv, you can also see what all the default settings are for each parameter.

9. How can I install UltraLinux software from the network?

The basic idea is this:

  • Add an entry for the new machine to the ARP/RARP cache.
  • Set up a TFTP server where the boot image can be transferred from.
  • Set up a file server where you can install the software from (NFS, FTP, etc.).
  • Boot the machine and install the software.

Most distributions allow the client to boot via either an NFS-mounted root or a network-loaded ramdisk where the root filesystem is loaded in memory. Be sure that server and client are allowed access to the services that are needed when your system is using tcp-wrappers. See also the manual page for hosts_access(5).

10. How do I set up RARP so I can boot my Sun via the network?

This will depend on what type of machine you want to set up as a RARP server. First of all, you will need to obtain the hardware ethernet address, which you can find on your screen when you start the machine. An example:

SPARCSTATION 5, No Keyboard
ROM Rev. 2.15 Pilot, 64 MB memory installed, Serial #1234567.
Ethernet address 8:0:20:1f:cd:8e, Host ID: 12345a9b.

So we now know that 8:0:20:1f:cd:8e is our hardware ethernet address.

Under Solaris and newer 2.4 Linux kernels, you will need to make sure that the hardware ethernet address for the UltraLinux machine is in the ethers database (either /etc/ethers or via NIS/NIS+), and that it is listed in the hosts database. If so, simply start the RARP daemon:

# /usr/sbin/in.rarpd -a
or
# /usr/sbin/rarpd

If you want to use a machine running older Linux versions (< 2.2.3), without a RARP daemon, you will need to populate the kernel’s RARP table. You might need to use the arp command in addition to the rarp command. Linux used to use a single rarp/arp cache in which case you used the arp command, but it uses separate commands so just a rarp should be sufficient.

# /sbin/rarp -s  phoenix   08:00:20:1f:cd:8e
# /sbin/arp -s 137.82.51.3 08:00:20:1f:cd:8e

You might also need to use the hardware address with or without the padded 0’s. For example, if the hardware address is 8:0:20:1a:15:9e, you might also want to try 08:00:20:1a:15:9e. Also ensure that the machine is listed in the /etc/hosts file.

11. ARP/RARP do not seem to be working on my boot server?

If you have no support for RARP in your 2.2.x Linux kernel, you will either have to compile it in, or build it as a loadable kernel module which is called rarp.o. If you use a Linux distribution on your server, you can try:

# modprobe rarp

The RARP kernel module is included with most distributions by default. On 2.4.x kernels, you will need the RARP daemon (rarpd).

12. My ethernet address is shown as “ff:ff:ff:ff..” and my machine can’t boot from the network.

You probably have a hardware problem and will need to replace the NVRAM. For more information, visit Mark Henderson’s SUN NVRAM/hostid FAQ.

13. I have a dead/corrupted/password protected NVRAM chip.

Please see the previous question.

14. How do I set up a tftp server to boot from?

Under SunOS/Solaris, you need to uncomment the line in your /etc/inetd.conf file that refers to tftpboot. It should look like:

tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot

If necessary, restart the inetd process. You can change /tftpboot to a directory where you want to put the UltraLinux boot image.

Under Linux, tftp does not need the “-s” option. The line in /etc/inetd.conf should look something like this:

tftp   dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd

After this, you will probably have to create a directory /tftpboot on your server, where you can place the boot image and a required symbolic link. (See the next question)

Please note that if you use rarpd under Linux, this server also will try to provide a boot image from the /tftpboot directory. See also the manual page for rarpd(1).

15. What boot image will the client ask from the network?

When the client tries to boot from the network, it will ask for a file with a special name that the boot image should have. The file name is determined by the IP address of the client, and by its architecture on non-sun4u based systems.

This is normally done by placing the appropriate boot image in the directory /tftpboot on the server, and then creating a symbolic link with the special file name that points to the boot image.

To find the name for the link, you will have to convert the four numbers between the dots of the decimal IP address into hexadecimal. You should then put the hexadecimal figures together. Besides calculating the numbers by hand or using a battery-fed calculator, you have several ways of converting the IP address: addr, which is included in the Bind (the name server) package, the program bc, the converter from the package ghex, and of course from the OpenBoot PROM of your machine. An example of converting the IP address 172.28.230.104:

172 = AC
28 = 1C
230 = E6
104 = 68

With the addr utility:

$ addr -p 172.28.230.104
Input: "172.28.230.104"
Network: [af2 len4] ac 1c e6 68
Presentation: "172.28.230.104"

From the OpenBoot PROM:

ok d# 172 .
ac
ok d# 28 .
1c
ok d# 230 .
e6
ok d# 104 .
68

When put together, this will result in AC1CE668, which will become the name of the symbolic link. If the architecture of the client is not sun4u (UltraSPARC), you will have to add the system’s architecture name to the symbolic link, where our example would become AC1CE668.SUN4M for a SPARCstation 5 (sun4m).

Finally, you will have to decide what file to point the symbolic link to. Most distributions support two ways of booting from the network:

  • Booting a kernel with an NFS-mounted root filesystem.
  • Booting from a network-loaded ramdisk (mostly called tftpboot.img).

Boot images can be found in respectively images for Red Hat and Mandrake, and dists/<release>/main/disks-sparc/sun4xx for Debian.

Distribution-specific boot images:

Distribution  sun4cdm           sun4dm-pci        sun4u
Red Hat       images/tftp32.img images/tftp32.img images/tftp64.img
Mandrake      images/tftprd32.img images/tftprd32.img images/tftprd64.img
Debian        sun4cdm/tftpboot.img sun4dm-pci/tftpboot.img sun4u/tftpboot.img

Copy the appropriate boot file for the client’s architecture to /tftpboot on the server, and create the symbolic link. For the example client above, the following would be needed on the server for a Red Hat system:

# cp /mnt/cdrom/images/tftp32.img /tftpboot
# cd /tftpboot
# ln -s tftpboot.img AC1CE668.SUN4M

You will also need to ensure that the directory with the Linux installation software or filesystem tree is being exported via NFS and that your UltraLinux machine will be able to mount it.

16. Is there an easy way to set up the network boot image structure?

Yes, you can use the tftptool utility, written in Python, that comes with the Red Hat distribution. It will ask you for information about your client, and then installs the appropriate image and creates a symbolic link with the special name for your client. The tftptool is located in the utils directory of the Red Hat distribution as of version 6.1. You can also download this tool via one of the many Red Hat mirrors.

17. Running a tftp boot server doesn’t seem to work?

First, go to /tmp on your TFTP server, and try to get the boot image via localhost:

$ tftp localhost
tftp> get AC1CE668.SUN4M
Received 1905590 bytes in 8.3 seconds

If this works, you might want to check for obvious reasons why it does not work, such as a firewall, wrong or bad cabling, etc.

Older tftp daemons for Linux only accepted requests for absolute filenames (i.e., it had to start with a ‘/’), which isn’t what the Sun requests. If the method above does not work, please upgrade your tftp server software to a more recent version.

18. By using what commands can I boot UltraLinux from the network?

From the boot prompt (ok), type the following for an NFS-mounted root:

ok boot net linux nfsroot=nfs.server.ip.address:/exported/path

and the following for the network-loaded ramdisk:

ok boot net

Where nfs.server.ip.address is the IP address of the machine that is providing the RARP and tftpboot services, and exporting the directory /exported/path (or whatever you called it). When no arguments for the exported path are given, the Linux kernel will expect the NFS root path to be /tftpboot/<client.ip.address>/.

19. My Sun doesn’t seem to understand the ‘boot net’ command.

Older Sun’s default to the ‘old command mode’ when you are in the boot PROM. If you get the prompt > instead of ok, then type n to get the new prompt.

20. Booting over the network responds: “receive failed: The file just loaded does not appear to be executable”.

Upon booting, Sun machines look for a file with the name which is the hexadecimal representation of their IP address, followed by the machine architecture. So if your IP address is 137.82.51.4, then it will try to load the file called 89523304.SUN4M (see the question above for information on what file the client asks for on the network). If you are unsure what it is trying to load, try looking at what is happening on the network. Please see “Booting over the network still doesn’t work”.

21. Booting over the network responds: “is not executable”, or: “not in correct format!”.

Nowadays, if you have compiled the kernel sources under Solaris or Linux, the newly built kernel will be in the ELF (Executable and Linking Format) binary format. The PROM, however, will only boot the image served from the network if the image is in a.out (Assembler Output) binary format, which is the original executable format for UNIX.

To convert the format from ELF into a.out, you can use the program elftoaout. Besides with several distributions, you can find the elftoaout utility at ftp://ultra.linux.cz/OS/Linux/Sparc/local/elftoaout or ftp://ftp.auxio.org/pub/vger/Sparc/tools. If you are unsure of what type of file you have, use the command file on the kernel image.

Be certain that if the kernel is compressed (vmlinuz name), you uncompress it first before using the elftoaout program. It might be necessary to add a .gz suffix to the filename. Again, be sure what type of file you have by using the file command.

Another thing to try: (this is untested, and may not even be relevant anymore!)

If you build an UltraLinux kernel on a SunOS system, then you will find that an SLC will refuse to net-boot it directly. It will say “not executable” or something like that. Just change the 4th byte of the file to a control-g (ASCII 7) to fix it. You can use emacs and ^Q^G to insert the control-g.

22. Booting over the network still doesn’t work…

The easiest way to debug network problems is to look at what is happening on the network. There is a program snoop that will display traffic on the network. Something like: (as root)

# snoop dragon

where dragon is your UltraLinux machine. If you have a machine running Solaris, this command is part of the operating system. There is also a program called tcpdump that could prove useful. It is available via ftp.ee.lbl.gov, and is also included in many distributions.

23. How can I connect a machine for an installation via a serial cable?

Essentially, if there is no keyboard plugged in when the Sun has booted, it will use the serial interface (port A). By default, it is set to 9600bps 8,n,1. You can force the serial console from the boot (ok) prompt:

ok setenv input-device ttya
ok setenv output-device ttya

On the other (PC?) side, running any terminal emulator will work (kermit, minicom, seyon).

This will require a serial null-modem cable. A good explanation and examples of null-modem cables can be found at Lammert Bies’ Interfacing pages. A cable with “handshaking” is recommended.

Sun-specific serial port pinouts and cabling information can be found at Stokely’s Unix Serial Port Resources.

24. Why does the system respond “Inconsistent console” when using a serial console?

You might want to check the null-modem cable from the console to the machine. See also the question above.

25. When using a serial console, the installation stops after booting from the network?

Try the argument “serial”:

ok boot net linux serial nfsroot=nfs.server.ip.address:/exported/path

for an NFS-mounted root filesystem, or:

ok boot net serial

if you are booting from a network-loaded ramdisk (e.g., tftpboot.img).

26. Why can’t my sparc64 boot from floppy?

Due to a bug in the firmware of some Ultra-based machines, booting from the floppy drive does not work yet. In this case, you should boot from either the CD-ROM drive or from the network.

27. Why can’t my Ultra5/10 boot when I have more than 512 MB of memory installed?

Linux does not support more than 512 MB of memory in the 2.2.x kernels on Ultra5 and 10 machines. If you have more than 512 MB of physical memory installed, you really should use a 2.4.x kernel (or remove memory boards).

28. Why does the system respond “Wrong label” when I reboot it after installation?

The system needs a Sun disk label to find its partition information. This information is stored in the first block of the drive. If your boot drive doesn’t contain such a disk label, you will have to create it using fdisk. Within fdisk, you have the command s, which can be used to build a new Sun disk label for your drive.

29. Why does the system respond “Could not find /vmlinux..” when I reboot it after installation?

Older machines can only boot properly when the boot image and configuration file are located within the first GB, and sometimes within the first 2 GB of its boot disk. If you want to use a large disk (>2GB), it is generally a good idea to create a separate /boot partition under the 1GB border where the boot images and configuration files can be placed. /etc/silo.conf should also be located under this border, so either create the root directory under the 1 GB border, or put silo.conf in the /boot directory, and create a symbolic link from /boot/silo.conf to /etc/silo.conf. This does not apply to sparc64, since they can read far beyond this limit.

30. Fdisk dies with a segfault during partitioning.

You need to zero the first 5k of the disk (e.g., with dd), if the disk doesn’t contain a Sun disk label. fdisk could not recover from random bits in the disk label area, but if there were a load of zeros, it would get it and create a label. Newer versions of fdisk will complain about the lack of a Sun disk label and will create a disk label for you.

31. Why does the system respond “Bad Magic Number in Disk Label” after replacing a (boot) HDD?

You will have to run fdisk under Linux or format under SunOS first. This will write out a magic number as part of the partition table. Use one of the methods to boot as described above to be able to run fdisk or format.

32. The PROM refuses to recognize my disk.

Possible solution (given in the Sun hardware reference) is to disable “synchronous negotiation initiation” from the disk (by closing a jumper). Apparently, the PROM gets confused if the disk initiates the negotiation.

33. The kernel is panicking, or refuses to boot.

Make sure that you don’t have IPX packets enabled in the kernel configuration. Disable 802/IPX protocols from your kernel, if you have those enabled. This would mean taking away the loadable kernel module from /lib/modules or building a new kernel if they are compiled in.

34. Why does the system respond “the file just loaded doesn’t appear to be executable” after installing SILO?

The SPARC machines do not really have the concept of a Master Boot Record like on a PC. You can boot from any sector of the disk with a SPARC. When you install SILO on /dev/sda (block 0), you must request the PROM to boot from a partition that starts at 0. The default installation FAQs advise users to create /dev/sda1 starting from block 1. Therefore, the partition on boot line must be the partition that spans the whole disk (i.e., from block 0) and not /dev/sda1. If your “whole disk” partition is /dev/sda3, you can boot with boot /sbus/esp/sd@3,0:c (assuming target 3 for sda) on v2 PROMs. I believe it would be boot sd(0,0,2) on v0 PROMs.

35. Do I need to run silo every time I change my silo.conf?

No. SILO understands ext2 filesystems and can therefore read the file silo.conf itself during startup to find out where the kernel you want to boot is. This is different than LILO, which does not know how to read filesystems and must hardcode physical disk offsets into the map loader. That is why LILO must always be reinstalled when lilo.conf changes.

36. SILO doesn’t time out before booting the kernel.

When you need to press enter, or enter a kernel-label each time to get the machine to boot, you can try the following at the boot prompt (ok):

ok setenv boot-file linux
ok setenv auto-boot? true

This will set the default boot image to be linux.

37. I’ve changed silo.conf, rebooted, and the system now responds: “boot: ..wrong syntax..”.

These are messages from SILO to say that you’ve done something wrong in silo.conf. SILO mostly tells you what to do in such a case. If you’re not succeeding, you can still boot from disk with the following command at the boot prompt (ok):

ok boot disk /boot/kernel_name

or one of the other boot methods described above.

38. I’m still having lots of problems with SILO.

Best advice is to get the latest version of SILO and try that. You can get it from http://www.sparc-boot.org or from http://www.nl.ultralinux.org/silo.

39. Why does my machine only boot properly when I hard-boot it?

Older PROMs do not reset the machine on soft boots. You can also type reset at the boot prompt (ok) instead of turning off the machine.

You might also want to do the following command at the boot (ok) prompt:

ok setenv sunmon-compat? false

This will cause old PROMs to come up in the new command mode, and will allow the kernel to call the “reset” command properly for automatic reboots.

40. How can I boot from a mirrored RAID disk?

Make sure that the boot partition has been duplicated on both disks, and that SILO has been installed on both “whole disk” partitions (/dev/sdn3).

On some systems, RAID autodetection does not work properly when using a software RAID. In that case, append lines for your setup to /etc/silo.conf like the following example:

append="md=0,/dev/sda1,/dev/sdb1"

More information about setting up software RAID devices can be found at RAID and Data Protection Solutions for Linux.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top