Debian on a Sun Sparc Ultra 10 - Lessons Learned

I recently had trouble installing/running Debian on my Sun Sparc Ultra 10. Lessons learned:

  1. There seems to be a huge crowd of people out there who own SPARCs (lots more than I would have expected)! I received tons of helpful comments, thanks everyone!
  2. Booting into single-user mode with "boot -s" requires you to enter the root password. However, you can use "boot -b", an undocumented feature, to do the equivalent of "init=/bin/sh". It doesn't quite work for me, I get "Cannot write to /foo/bar" errors (and I'm then asked to provide the root password, very funny), but that might be an unrelated problem...
  3. The problems I experienced (screen turns black, nothing happens) had a simple reason: there are two video cards in the box, but I only had a monitor attached to one of them. As things go, the bootloader used exactly the one where the screen was attached, but as soon as Debian started to boot, it would use the other video card. Which had no monitor attached. Hence I would not see anything. The installer was waiting for me to choose a keyboard layout and I was waiting for the installer to do just something... I suck. Solution: attach second monitor. Smarter solution: use some boot parameters to choose the video card I want to use (todo).
  4. None of the Debian boot images come with cfdisk or just plain fdisk (I tested businesscard, netinst, and the full install CD). Why? Do you use some other tool on SPARCs? Which?
  5. I cannot seem to mount my disks. There's no /dev/hda* (should I create them with mknod?) and trying to mount /dev/ide/* fails with some strange errors. I guess I need to read more docs, both SPARC-related as well as udev-related.

In related news: Sun has released the design of the OpenSparc T1 under the terms of the GPL. Great news, thanks Sun!

Help: How do I boot Debian on a Sun Sparc Ultra 10? [Update]

Dear Lazyweb,

I was trying to boot Debian on a Sun Sparc Ultra 10 box yesterday, without success. I got myself this Sparc box from eBay many months ago, but until yesterday it was merely standing around here and taking up valuable space (just like the other dozen or so computers standing around in my room). So I thought I should really make some use of it, finally...

I booted it up and noticed that it came with SunOS 5.8 pre-installed. It boots quite fine into the graphical login prompt, but I don't have the root password (or the password for any other account). So my first task was to reset the root password. But I failed so far.

Out of curiosity I connected the machine to my laptop and ran nmap on it. It has several ports open (e.g. ntp, ssh, X11, nfs, ...), so I could probably try to find a remote root exploit (or run an ssh brute-force attack) and crack it open that way ;) While I might try that later just for the fun of it, I wanted to simply boot a Debian first and change the root password manually. That sounded simpler at first...

Anyways, here's what I tried so far:

Boot into single-user mode

As I had no experience whatsoever with Sparcs, it took me some time to read up all the stuff I needed... After a bit of googling, I found out that I need to press STOP+A to get into the boot prompt (the box has OpenBoot 3.19). There, I can type boot -s to boot into single user mode. Unfortunately, you still need the root password to boot into single-user mode. Argh!

Boot from CD-ROM

Next, I found out how to boot from CD-ROM. Typing boot cdrom in the boot prompt should do the trick. So I downloaded and burned a the current Debian "businesscard" image for Sparc:

cdrecord -eject -v speed=2 dev=/dev/hdc -data -pad debian-31r1a-sparc-businesscard.iso

Booting seems to work partially. SILO seems to start fine, and I get to the "boot:" prompt. When I press Enter I get to the point where it says "Loading Linux..." but then the screen turns black and nothing happens anymore (hangup). The same happens when I type "linux" or "rescue" on the "boot:" prompt.

The monitor works fine, SunOS 5.8 can display graphics etc., so it's probably not a hardware problem.


After that, I tried to perform a network boot. This was fun and I learned a lot about RARP and TFTP, as I have never played with this stuff before. While the netboot part itself worked, it didn't solve my real problem, unfortunately...

First, I installed rarpd and tftpd on my laptop:

apt-get install rarpd tftpd

In /etc/ethers I added a line which tells rarpd which MAC address should be assigned to which IP address. I looked up the MAC address of the Sparc box (it's displayed when you boot) and then added "xx:xx:xx:xx:xx:xx" to /etc/ethers. I configured my laptop to have the IP address ifconfig eth0 broadcast netmask Of course, I plugged an ethernet cable in the Sparc box and in my laptop so they can talk to each other.

Then, I created /etc/xinetd.d/foobar which contained:

service tftp
disable = no
socket_type = dgram
protocol = udp
user = nobody
wait = no
server = /usr/sbin/in.tftpd
# server_args = /tftp

This should tell tftpd to serve the Debian netinst boot image from /tftp, but that didn't work for me. So I commented out the "server_args = /tftp" and let tftpd fall back to the default location /tftpboot. You need to reload xinetd after any change: /etc/init.d/xinetd reload. Also, tftpd is compiled with TCP wrapper support, so you have to temporarily allow the respective connections, e.g. by adding "ALL:" to /etc/hosts.allow. Don't forget to remove that line again later on!

Now I downloaded the Debian netinst boot image for Sparc (hopefully the correct one):

mkdir /tftpboot
mv boot.img /tftpboot/XXXXXXX

You need to place that image into /tftpboot using the name under which the Sparc box requests it. I found that name by net-booting the Sparc machine and watching the network traffic with Ethereal on my laptop...

The final steps: boot the Sparc box, type STOP+A, type boot net. The Sparc machine gets the boot image from my laptop just fine (it seems), and I get to the "Loading Linux..." part again. But then I have the same problem as with the CD-ROM boot: the screen turns black, nothing happens anymore...


Update 2006-03-22: I have posted some lessons learned.

Nexuiz - a fast-paced, GPL'd ego shooter

Nexuiz screenshot

Although I'm not a "gamer", I enjoy playing computer games from time to time. First-person shooters are especially well-suited for relaxing after a long and exhausting day ;-)

IMHO a very good choice, if you're looking for a fun Free Software first-person shooter running on Linux, is Nexuiz.


  • is GPL'd (and not only the code, but also the data!)
  • is based on the Darkplaces engine, which in turn is based on the Quake engine
  • should be packaged for Debian sooner or later
  • has an unpronouncable name, which is always a bonus ;-)

Nexuiz version 1.5 has recently been released, which features new maps, new characters, better AI and lots more. Check it out!

Mplayer remote and local vulnerability + security fix

The well-known video player Mplayer is vulnerable to a heap overflow when playing ASF files locally or from remote (streaming). The potential risks:

High (arbitrary remote code execution under the user ID running the player) when streaming an ASF file from a malicious server, medium (local code execution under the user ID running the player) if you play a malicious ASF file locally. At the time the buffer overflow was fixed there was no known exploit.

Users of the older MPlayer 1.0pre7try2 should apply this patch in order to fix the security issue. CVS users should update to the most recent revision.

I tried to do the latter, but I stumbled over several problems. First, I noticed and filed a bug (I think) in Debian's libavcodec-dev package which prevented a successful compile. After a few more problems I gave up and stayed with 1.0pre7try2 by applying the above-mentioned patch. I'll wait a few more days until the MPlayer developers fix the build issues in CVS...

There's no known exploit in the wild yet, but I bet it won't take too long until one appears. So better fix your Mplayer!

Beagle 0.2.1 released - fancy desktop search tool for Linux

Beagle screenshot 1

Beagle 0.2.1 is out. Beagle is a very useful desktop search engine for GNOME (but you can use it with KDE, too, or even without any desktop environment like I do). Despite the low version number it is already quite stable and usable, and has lots of features.

It can index all kinds of files and information on your computer (txt, pdf, doc, emails, IM logs, IRC logs, source code, images, music, and whatnot) and provides a very nice (new) search interface (see screenshot).

Yes, Google Desktop Search and Spotlight do the same thing, but neither is available for Linux, and neither of them is Free Software. They can "phone home" without telling you and do other funny things. With Beagle you can easily check what it does (use the source, Luke!).

Oh, and Beagle can now also parse Ruby files, a simple filter I had written and submitted has been included in the latest release (well, actually it was there in 0.2.0 already, but I didn't tell anybody ;-)).

Syndicate content