Debian Sparc64 port

Rationale for such a port

Installing the Debian SPARC64 Port

Installation is performed much like any other Debian release architecture. The best way to get started is to download the latest Debian SPARC64 Network Installer ISO image, burn the image to a CD/DVD, and boot the machine from the internal CD/DVD drive. Both Sun and Oracle branded machines are classified under the sun4 architecture. As mentioned earlier, the Debian SPARC64 port only supports 64 bit SPARC processors which correspond to the following sun4 architectures / processors.

The Debian SPARC64 port is stable on most machines using these architectures / processors, but not all of them. Kernel support for the hardware found in these machines is the biggest factor in whether a particular machine is supported or not.

NOTICE: Currently the Linux kernel is not working on at least two systems with SPARC64 CPUs from Fujitsu. And a thread on the linux-sparc mailing list - although already from 2015 - also speaks of "adding support for SPARC64 machines". It is hence assumed that systems with SPARC64 CPUs are not yet supported by Linux. If you can proof otherwise please let us know.

Debian SPARC64 ISO Images

Current installer ISO images for SPARC64 are available on Debian's official cdimage mirror:

Known Caveats

  1. The "Select and Install Software" step of the installation process is known to fail on every machine. This is due to the installer not recognizing the Debian Ports GPG key. This issue is being worked on, but for now you can skip this step and move on to installing SILO on the hard disk. After you have rebooted into your new installation you can install the default Debian utilities by executing the following command.

apt-get install $(tasksel --task-packages standard | tr '\n' ' ')

Known Working System Configurations



Sun Fire V210/V240

Debian installs normally on these machines, however when selecting a built in network interface they do show up in the correct order. Listed below is the order they show up in the installer corresponding to their port number on the chassis.

enP3p0s2f0 = Port 2
enP3p0s2f1 = Port 3
enp0s2f0 = Port 0
enp0s2f1 = Port 1

Sun Ultra Enterprise 3/4/5/6000 & Enterprise 3/4/5/6500

These machines can be tricky to install on as currently the driver modules they rely upon do not support uevents. This prevents the Debian installer and initramfs from loading them automatically. The steps needed to successfully install Debian on these machines is as follows.

  1. These machines use a Sun ESP SCSI controller for their CD/DVD drives. After booting into the installer it will fail to find the CD/DVD drive. At this point you need to execute a shell in the installer environment and issue a modprobe sun_esp command. Afterwards you can exit the shell and start the CD/DVD drive detection step of the installer again.

  2. The 10/100Mbit Ethernet controller built into the I/O boards are Sun HME controllers. The installer will fail to detect these and will prompt you to choose a driver for the network card. The correct driver to choose is sunhme.

  3. There are a few different SCSI controllers that are typically used for accessing hard disks. The installation notes for each are below.
    • Sun ESP (Built In): These drivers were loaded in step one. The partitioner should start normally.

    • Differential Sun ESP (SBUS): These drivers were loaded in step one, but this card is known to cause a kernel panic during the partitioning process.

    • Differential QLogic ISP (SBUS): You'll need to obtain a copy of the isp1000.bin firmware. This is free firmware, but is not included in any Debian package at the moment. In this case the partitioner will fail to find any hard disks and you will need to execute a shell in the installation environment. If you have a PCI I/O board with a USB controller you can mount a USB flash drive to /media and copy isp1000.bin to /lib/firmware/qlogic. If you do not have a way to attach a USB flash drive you can connect a second SCSI CD/DVD drive to one of the built in Sun ESP controller ports. If you're machine has a slot for a tape drive you can install a second CD/DVD drive in that slot. You can burn the isp1000.bin file to a CD/DVD and mount it to /media using the second CD/DVD drive. Afterwards issue a modprobe qlogicpti command and exit the shell. You can then restart the hard disk detection step of the installer.

  4. The installation will proceed normally from this point forward. After you have completed the installation DO NOT reboot or else you will have a non-bootable system! You need to execute one more shell in the installation environment and issue the following commands.

mount -t proc proc /target/proc && \
mount --rbind /sys /target/sys && \
mount --make-rslave /target/sys && \
mount --rbind /dev /target/dev && \
mount --make-rslave /target/dev
chroot /target /bin/bash
source /etc/profile
  1. At this point you will be chrooted into your new Debian installation. At this point you need to add the necessary kernel modules into /etc/initramfs-tools/modules. For example if your CD/DVD drive is attached to the built in Sun ESP SCSI controller and your hard disk is attached to a QLogic ISP SBUS controller, then the following command would add the necessary modules to /etc/initramfs-tools/modules

echo sun_esp >> /etc/initramfs-tools/modules && \
echo qlogicpti >> /etc/initramfs-tools/modules
  1. Finally, all that is left to do is execute a update-initramfs -u -k $(uname -r) command. Afterwards you can exit the shell, finalize the installation, and reboot the system. After the reboot you should be welcomed by a Debian login prompt!



SPARC Enterprise T5120/T5220

Debian installs normally on these machines, however you will have to append the console kernel argument to the kernel at boot time or else you will not get a login prompt. After finishing the installation you need to execute a shell in the installation environment. Add The following to /target/boot/silo.conf as seen below.


Afterwards you can exit the shell, finish the installation, and reboot. If you accidentally reboot before adding the above changes you can still boot into your new installation by appending the following to the SILO boot prompt.

boot: Linux console=ttyS0

After booting into the system you can make the necessary changes to /boot/silo.conf

sparc64 buildd status

Bootstrapping sparc64

If you are currently on Debian sparc, you cannot point to sparc64 packages directly. In the meanwhile, you might be able to run it on a chroot.


The usual tool for putting together a root filesystem in Debian is debootstrap. In the past this was limited to bootstraps from a single suite only (e.g. from "unstable" but not from "unstable" and "unreleased"), but with a handy tool provided by JH Chatenet in a message to the debian-alpha/debian-68k/debian-hppa mailing lists in 2014, bootstraps from both "unstable" and "unrelease" are also possible for debootstrap.

Download this tool with e.g. the following command and check its SHA256 hash value before unpacking and using it:

$ wget -c -O debian-ports.gz

$ sha256sum debian-ports.gz 
0418a8e2f3f0b530508da0a4a0afafd32a8344105bcc24a3aa01aff350fa5772  debian-ports.gz

$ gunzip debian-ports.gz

Afterwards you can use it as follows with debootstrap:

# debootstrap [--arch=sparc64] unstable sparc64-port ./debian-ports

--arch=sparc64 should be only needed when bootstrapping from a Debian sparc architecture installation.


multistrap can also be used to pull from the debian-ports mirror and can cope with multiple suites by itself alone. You can select the mirror nearest to you via Debian Ports page.

$ cat >> sparc64.conf <<"EOF"
# Example multistrap configuration file for a sid build chroot
# Need to use cascading to select the toolchain for a cross arch.

# same as --tidy-up option if set to true
# same as --no-auth option if set to true
# keyring packages listed in each debootstrap will
# still be installed.
# extract all downloaded archives (default is true)
# the order of sections is not important.
# the debootstrap option determines which repository
# is used to calculate the list of Priority: required packages.
debootstrap=Base Base-unreleased

packages=apt dpkg-dev apt-utils whiptail locales


$ /usr/sbin/multistrap -f sparc64.conf
$ sudo mount --bind /dev sparc64-port/dev
$ sudo mount --bind /sys sparc64-port/sys
$ sudo mount --bind /proc sparc64-port/proc
$ sudo chroot sparc64-port dpkg --configure -a

When asked if you want to use dash as the default system /bin/sh to improve performance, say "n" or the setup will fail.

$ echo "export debian_chroot=chroot1" >> sparc64-port/root/.bashrc
$ sudo chroot sparc64-port

(Test and Enjoy)


deb unstable main
deb-src unstable main
deb unreleased main
deb-src unreleased main


Running Debian under qemu-system-sparc64 Sparc64Qemu

Mailing List

Other links on the wiki