NetBSD 1.0 on the Amiga

NetBSD's old logo

NetBSD’s old logo

So while I was on the path of running some ancient Linux on the UAE Amiga 3000 emulator but without any real luck.  So for the heck of it I figured I’d give NetBSD a whirl.  Much like Linux, the first platform other than the i386 to get some mainstream love.

While 4.4 BSD had been adding support for the m68k via the HP 9000-300 series based workstations, the Amiga was something that was sold retail, and could be put in the hands of hackers, rather than lab rats..

So yeah, NetBSD started to integrate Amiga patches as of NetBSD 0.9 as it says from the install notes:

This version is strictly for the kernel hackers among you, there’s no sense in `normal’ users trying to install it, possibly killing their other partitions, facing kernel panics and not knowing what to do. Please keep that in mind, if you feel like going on…

So maybe I’ll try to bring it back to life some time now that I can at least run NetBSD 1.0 .. Or maybe I’m getting ahead of myself.

Installing NetBSD 1.0 on the Amiga is somewhat straight forward, providing you are doing this from a new Amiga.. First just create a small-ish (15MB? lol) partition for AmigaDOS, and make sure it is bootable.  The work partition should be big enough to hold the compressed packages of NetBSD, I went with 60MB, while NetBSD 1.0 is a mere 15MB, well compressed of course.  After that you’ll want to create a ‘root’ partition of say 65MB, a 32MB swap partition and a giant /usr partition.  I created a 384MB virtual hard disk, so my remainder is 209MB which is more than enough.  From there you have to make sure that they are not set to auto mount, and edit the filesystem type to be the following:

root partition  : 0x4e425207
swap partition  : 0x4e425301
other partitions: 0x4e425507

Where the ‘other’ is of course the /usr partition.  Then with that in hand it is a simple matter of loading the boot loader from within AmigaDOS.  The one weird thing I found is that while this part goes all fine,  later on under NetBSD you can only mount AmigaDOS partitions read only, so how do you get a new kernel back onto the Amiga side?  I suppose a working network, and a 2nd machine.. Which would make sure, and of course NetBSD was built with the idea that everyone was collaborating over the internet so people would have net access.

So basically from within AmigaDOS you kick off the bootloader, kernel, and shove in a ‘root filesystem‘ diskette.  Next thing you know we are going through the install where it’ll pick up the partition tags, format the disk, and go ahead  and install..  Again another ‘trick’ is the partitioning scheme where NetBSD maps in the AmigaDOS partitions into NetBSD space.  My install looks like this form the NetBSD side:

NetBSD slices

NetBSD slices

It may not seem too obvious but back here the ‘a’ partition is the root, ‘d’ is the AmigaDOS operating system partition while ‘e’ is the work partition where our install was saved. From there it really is NetBSD and it just acts like any other NetBSD.  So of course I could prattle endlessly about this, how historic it is that NetBSD on the Amiga shows that the older hp300 port could not only be adapted to new platforms, but even eventually extended to support the 68040 processor which had a different and incompatible MMU.

For those of you are are impatient, you too can run NetBSD 1.0!  You can find a pre-installed image here. And just use the prior exe & config from the WinUAE beta that included MMU support.  Just alter the config so that it picks up the NetBSD disk.

NetBSD 1.0

NetBSD 1.0

The only catch I’ve seen so far is that trying to bring up the ethernet adapter hangs the system.  Sadly I don’t have any fix for this as of yet…. (edit: yes beta 4 and beyond work fine!)

6 thoughts on “NetBSD 1.0 on the Amiga

  1. Why would you want to run version 1.0 of NetBSD when this system is still developed for the Amiga and there’s even brand new 6.0 version, which is more stable, has better hardware support! Maybe a bit slower than 1.0 tho’.

    • Because NetBSD 1.0 is a historical release, it is the first version to include binaries for the Amiga.

      This is also the same reason why I setup NetBSD 0.9 for the i386 from an archive I found, and how I resurrected NetBSD 0.8 from a partial CVS dump, along with missing files from NetBSD 0.9 & 386BSD 0.1 Pl24…

      I guess you could run “modern” NetBSD for the Amiga if you so wished, but without a physical Amiga why would you?

      • Ok, I understand your archeological motives.

        I was a bit puzzled, because I’ve been using NetBSD on Amiga since 1.5.2 and I can see see a lot of work then went into it up until now. The newest release still works great on classic Amigas and even supports outrageously modern hardware like PCI network cards behind PCI bridges.

        Naturally, there are also problems, newer gcc versions produce slower code and are more memory-hungry. Amiga port can’t compile itself now because of this (gcc runs out of memory).

        • GCC is kind of a memory disaster… It is a shame the BSD folk switched from PCC to GCC back in the Tahoe days.. And the joke is nobody can even scare up a picture of a Tahoe! ..

          I see ads for 128 & 256MB memory boards for 3000’s and 4000’s .. I wonder how far short does it run out of memory while compiling? Or if anyone has tried building with -O0 or -Os… but yeah both will result in slower exe’s.

          I guess we should be grateful anything gets thrown at the m68k plate as everyone has moved on from the platform… Meanwhile the PPC ultimately went nowhere, and the x86 is still slogging away.

Leave a Reply