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:
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.
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!)