Debian Sparc64 port
- Debian Sparc64 port
- Installing the Debian SPARC64 Port
- sparc64 buildd status
- Bootstrapping sparc64
- Mailing List
- Other links on the wiki
Rationale for such a port
- Debian wheezy only supported 64-bit kernels.
- The wheezy userland is 32-bit, but needs a SPARC V9 CPU, which supports 64-bit instructions.
- 32-bit toolchain is not anymore supported upstream.
More and more softwares are dropping 32-bit support
The use of > 4GB per process is not that uncommon those days, especially in scientific computation applications.
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.
- SPARC64 VI
SPARC64 VII (The Linux kernel is not working on SPARC Enterprise M3000 systems according to this thread)
- SPARC64 VII+
- UltraSPARC I
- UltraSPARC II
- UltraSPARC III
- UltraSPARC IV
- UltraSPARC II
SPARC64V+ (The Linux kernel is not working on PRIMEPOWER 250 systems, please see this message on the debian-sparc mailing list for details)
- SPARC T3
- SPARC T4
- SPARC T5
- SPARC T7
- SPARC64 X
- SPARC64 X+
- UltraSPARC T1
- UltraSPARC T2
- UltraSPARC T2+
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:
- 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
- Ultra 10
- Ultra 80
- Enterprise 250
- Ultra Enterprise 3/4/5/6000
- Enterprise 3/4/5/6500
- Blade 100/150
- Sun Fire V210/V240/V440
- Sun Fire V245/V445
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.
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.
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.
- 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.
- 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
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
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 T1000
- SPARC Enterprise T5120/T5220
- SPARC Enterprise T5240
- SPARC T4-2
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.
image=/vmlinuz append="console=ttyS0" label=Linux initrd=/initrd.img
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
Contact: sparc64 buildd maintainers <firstname.lastname@example.org>
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 https://lists.debian.org/debian-alpha/2014/06/binjTWsWTaXTc.bin -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 http://ftp.ports.debian.org/debian-ports/ ./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. [General] arch=sparc64 directory=sparc64-port # same as --tidy-up option if set to true cleanup=true # same as --no-auth option if set to true # keyring packages listed in each debootstrap will # still be installed. noauth=true # extract all downloaded archives (default is true) unpack=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 aptsources=Base [Base] packages=apt dpkg-dev apt-utils whiptail locales source=http://ftp.ports.debian.org/debian-ports/ keyring=debian-ports-archive-keyring suite=unstable omitdebsrc=true [Base-unreleased] packages= source=http://ftp.ports.debian.org/debian-ports/ suite=unreleased omitdebsrc=true EOF $ /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 http://deb.debian.org/debian-ports unstable main deb-src http://deb.debian.org/debian unstable main deb http://deb.debian.org/debian-ports unreleased main deb-src http://deb.debian.org/debian-ports unreleased main
Running Debian under qemu-system-sparc64 Sparc64Qemu
Other links on the wiki