Skip to content

Quirks & Gotchas

Amix is a "quick and dirty" 1990โ€“1992 SVR4 port โœ…, and it shows: the kernel hard-codes SCSI IDs and a RAM ceiling, the bootstrap predates the 68040 and Zorro III, the clock breaks in 2000, and the userland is pre-POSIX. This page is the checklist of port-specific surprises โ€” the things that are technically correct, technically broken, or just unexpected, that cost people hours before they realize "it's just Amix."

Each item is one line: what it is, the โœ…/๐ŸŸก confidence tag carried from the research brief ยง12 (and ยง2/ยง9/ยง11), and a cross-link to the page that covers it in depth.

TL;DR checklist

# Quirk Tag Deeper coverage
1 Tape must be ID 4 (hard-coded /dev/rmt/4h); disk ID 6 by convention โ€” installer prompts for the target, but the ID is baked into device names, so don't change it post-install โœ…/๐ŸŸก Hardware, Filesystems & disks
2 16 MB Fast RAM ceiling; more mis-maps the SCSI drive โœ… Hardware
3 No Zorro III โ€” memory-mapping layer can't address it; unfixable โœ… Hardware, Zorro autoconfig
4 No 68040/68060 โ†’ the A4000 can't officially run Amix โœ… Hardware
5 Superkickstart dual-boot by holding the right mouse button at power-on โœ… Boot process
6 DNS resolution is OFF by default (/etc/hosts only) โœ…/๐ŸŸก Networking
7 Y2K bugs: setclk %02d year + kernel date cap at 1999 โœ…/๐ŸŸก Versions, Patch ADF anatomy
8 SLIP is buggy โ€” reboot between sessions; no PPP at all ๐ŸŸก Networking
9 X keymap is wrong: y/z swapped, / is SHIFT-8 ๐ŸŸก X11 & desktop
10 amixpkg is widely reported broken (the wrapper, not pkgadd) ๐ŸŸก Install walkthrough
11 Clock drift via SCSI interaction ๐ŸŸก Networking
12 /bin/sh is pre-POSIX: no $(...), no grep -q โœ… Driver model, Writing a char driver
13 Enabling DNS adds ~3 min to every boot unless the boot-time ifconfigs (S69inet lo0, network-config aen0) use literal IPs instead of hostnames โœ… Networking, Networking on the LAN

The rest of this page expands each item.

Hardware & addressing quirks

1. SCSI IDs: tape fixed at 4, disk 6 by convention โœ…/๐ŸŸก

The tape drive must sit at ID 4 โ€” the root-floppy install scripts hard-reference the literal /dev/rmt/4h and look nowhere else for it โœ…. The hard disk is ID 6 by convention, not by kernel mandate: the installer prompts for the disk target and computes the boot partition from a $SCSI variable (BPART=/dev/dsk/c${SCSI}d0s${BOOTPART}), reserving only ID 4 for the tape โ€” so Amix will install on a disk at another target ๐ŸŸก. The catch is that the chosen ID is baked into the device names (c6d0sโ€ฆ) the installed system records in /etc/vfstab (the SVR4 mount table) and the boot partition, so you can't change the disk's SCSI ID after install without editing /etc/vfstab to match ๐ŸŸก (amix_21_root.adf analysis via tools/inspect-adf.sh; see hardware).

Consequence for emulation: attach your tape image at SCSI ID 4 (the installer looks only there) and your hardfile (RDB) at SCSI ID 6 โ€” any target works for the disk, but 6 is the convention and saves you re-pointing /etc/vfstab later. See the mapping in the WinUAE setup and the FS-UAE setup. Disk geometry and partitioning are covered in filesystems & disks.

2. The 16 MB Fast RAM ceiling โœ…

The kernel hard-codes a Fast RAM ceiling of 16 MB (minimum 4 MB) โœ…. Going above 16 MB mis-maps the SCSI drive โœ… โ€” the symptom is disk corruption / failure rather than an honest "too much RAM" error, which makes it a nasty trap. Set your emulator's Fast RAM to โ‰ค 16 MB. Background in hardware.

3. No Zorro III โœ…

Amix's memory-mapping layer cannot address Zorro III space โœ…. It is Zorro II only. Worse, the relevant kernel source was never shipped, so this can't be patched by the community โœ… โ€” there is no community fix and there won't be one. Any expansion board you intend to use must present a Zorro II window; see Zorro autoconfig for how boards are discovered via the AUTOCONFIG / autocon() path, and hardware for the supported-board list.

4. No 68040/68060 โ€” the A4000 is out โœ…

The kernel predates the 68040 MMU โœ…, so it runs only on a 68020 or 68030 with a real MMU plus a 68881/68882 FPU โœ…. There is no soft-float and the MMU-less 68EC020/030 variants cannot run Amix โœ…. Practical upshot: an A4000 cannot officially run Amix โœ…. Targets are the A3000(UX) and the A2500UX. See hardware.

5. Superkickstart dual-boot via the right mouse button โœ…

A3000UX machines ship a "Superkickstart 1.4" bootstrap ROM โœ…. At power-on:

  • Default (do nothing) โ†’ boot Amix from the SCSI disk.
  • Hold the right mouse button at power-on โ†’ load an AmigaOS Kickstart instead.

So the "gotcha" is the inverse of what AmigaOS users expect: the machine boots Unix by default, and you reach AmigaOS only by holding a mouse button. Details in the boot process.

Networking quirks

6. DNS resolution is off by default โœ…/๐ŸŸก

Out of the box, name resolution uses /etc/hosts only โ€” DNS is disabled โœ…/๐ŸŸก. To turn DNS on you relink the socket library and add config:

ln -f /usr/lib/libsockdns.so /usr/lib/libsocket.so   # swap in the DNS-capable socket lib
# then provide /etc/netconfig, start in.named (or point elsewhere), and write /etc/resolv.conf

Also note the routing gotcha: the default route needs an explicit metric โ€” route add default <gw> 1 (the trailing 1 is required) โœ…/๐ŸŸก. Full procedure in networking.

8. SLIP is buggy; no PPP ๐ŸŸก

SLIP works but is buggy: you must reboot between SLIP sessions ๐ŸŸก, and there is no PPP at all ๐ŸŸก. If you need a serial IP link, plan for a reboot cycle rather than re-dialing. See networking.

11. Clock drift via SCSI interaction ๐ŸŸก

The system clock drifts, reportedly because of an interaction with SCSI activity ๐ŸŸก. On a networked box you'll want a time-sync workaround; combined with the Y2K issues below, treat timekeeping as something to actively manage rather than trust. See networking.

13. Enabling DNS adds ~3 minutes to every boot โœ…

Turning DNS on (quirk 6 above) drops a hidden tax on the boot path: with DNS enabled the box stalls ~3 minutes at The system is coming up. Please wait. on every boot โœ… (reproduced locally on Amix 2.1c under Amiberry). Stock Amix, with DNS off, does not.

The cause is two boot-time ifconfig calls that take hostnames, each forcing a gethostbyname() โœ…:

  • ifconfig lo0 localhost up โ€” in /etc/rc2.d/S69inet
  • ifconfig aen0 `uname -n` up -trailers โ€” in /etc/inet/network-config

Both run before the default route is installed (route add default โ€ฆ happens later, in /etc/inet/rc.inet). With DNS on, gethostbyname() tries DNS first, but there is no route to the nameservers yet, so each lookup burns the full resolver retransmit schedule โ€” ~90 s each, ~180 s total โ€” before falling back to /etc/hosts โœ…. With DNS off the same names resolve instantly from /etc/hosts, which is exactly why this trap appears only after you enable DNS.

This is independent of the /etc/domain weirdness โœ…: a box with an already-empty /etc/domain still hangs the full 180 s โ€” the domain-append bug and this no-route hang are two different problems.

Fix (boot 210 s โ†’ 29 s; runtime DNS unaffected): give both boot-time ifconfigs a literal IP so no resolver call happens before the network is up โœ…:

# /etc/rc2.d/S69inet
-   /usr/sbin/ifconfig lo0 localhost up
+   /usr/sbin/ifconfig lo0 127.0.0.1 up
# /etc/inet/network-config
-   /usr/sbin/ifconfig aen0 `uname -n` up -trailers
+   /usr/sbin/ifconfig aen0 <this-host-static-ip> up -trailers

lo0 is always 127.0.0.1; aen0 uses the host's own static address (the one already in /etc/hosts). Configuring your own interface should never depend on a name service, so this is the correct design regardless โ€” and DNS for clients/mail/etc. is untouched. Full procedure in networking and networking on the LAN.

Time & Y2K quirks

7. Y2K: setclk and the kernel's 1999 date cap โœ…/๐ŸŸก

Amix has two millennium problems โœ…/๐ŸŸก:

  1. The setclk utility uses a %02d format for the year, so it mishandles dates โ‰ฅ 2000.
  2. The kernel caps the date at 1999 โ€” even the finishing-touches install step (amixadm) only accepts a date โ‰ค 1999 โœ….

These are community-patched โœ…/๐ŸŸก: applying the patch disk (which upgrades to 2.1p2a / kernel 2.1c) ships Y2K fixes, after which you run the corrected setclk โœ…. See the patch mechanism in the patch ADF anatomy and the version timeline in versions.

X11 & desktop quirks

9. The X keymap is wrong ๐ŸŸก

Under X11 the default keymap is mis-mapped ๐ŸŸก:

  • y and z are swapped.
  • / is produced by SHIFT-8.

There are other X annoyances in the same family โ€” xload crashes and the X11R4 server leaks memory ๐ŸŸก. The modern RTG path (Xrtg / VA2000) sidesteps the old server but not the keymap mapping itself. Full X11 notes (mono tvtwm, A2410 color via TIGA, OpenLook font-path breakage on the R5 upgrade) are in X11 & desktop.

Userland & packaging quirks

10. amixpkg is flaky ๐ŸŸก

The amixpkg wrapper around the SVR4 packaging tools is widely reported to be broken ๐ŸŸก โ€” note this is the wrapper, not the underlying pkgadd/pkgmk/pkgtrans, which work. Despite the reputation, the official install path does drive it: the root-floppy installer runs amixpkg -i -m -d -r /mnt -y standard โœ…. A related packaging gotcha: pkgproto omits symlinks ๐ŸŸก. See the install walkthrough.

12. /bin/sh is pre-POSIX โœ…

Amix's /bin/sh predates POSIX โœ…. The two bites that catch driver authors and scripters:

  • No command substitution with $(...) โ€” you must use backticks `...`.
  • No grep -q โ€” redirect to /dev/null and test $? instead.

This was discovered the hard way porting the VA2000 driver: install scripts written with modern shell syntax silently misbehave โœ…. The default interactive shell is ksh (with sh/csh/tcsh also present), but build and install scripts that run under /sbin/sh or /bin/sh must stay pre-POSIX โœ…. See the driver model and writing a char driver for the driver-build implications, including the companion rule to rm -f stale objects before relinking the kernel.

See also

  • Hardware โ€” the machines, RAM ceiling, Zorro II, FPU/MMU requirements in full.
  • Boot process โ€” Superkickstart, the bootstrap, and on-disk layout.
  • Networking โ€” DNS, routing, SLIP, NFS, and clock notes.
  • X11 & desktop โ€” the X server, window managers, and keymap.
  • Glossary โ€” RDB, AUTOCONFIG, STREAMS, Superkickstart, and other terms used here.

Sources

  • Research brief ยง12 (quirks checklist), with specifics pulled from ยง2 (hardware & limits), ยง9 (install flow + viper_kludge/Y2K), and ยง11 (networking, X11, userland).
  • amix_21_root.adf analysis via tools/inspect-adf.sh โ€” /dev/rmt/4h, BPART=/dev/dsk/c${SCSI}d0s${BOOTPART}, amixpkg -i -m -d -r /mnt -y standard.
  • amix_21_patch.adf analysis via tools/inspect-adf.sh โ€” patch-disk Y2K/inet fixes (โ†’ 2.1p2a / kernel 2.1c).
  • asokero/va2000-amix (pre-POSIX /bin/sh, no $(...), no grep -q; relink hygiene) โ€” https://github.com/asokero/va2000-amix.
  • Michael Ditto, Writing Amix Device Drivers, 1990 European Amiga Developer's Conference (driver/kernel model behind the SCSI-ID and /bin/sh notes).
  • amigaunix.com DokuWiki โ€” requirements, networking, x11, patch-disk, y2k-dst, tips-tricks, dual-boot pages (community-reported items): https://www.amigaunix.com/doku.php/home.
  • BlitterStudio/amiberry issue #1376 and WinUAE/FS-UAE docs (emulation consequences of the SCSI IDs and RAM ceiling).
  • The A4091-on-Amix project โ€” networking investigation, 2026-06-07 (reproduced locally โœ…): instrumented /etc/rc2 per-script timing on Amix 2.1c under Amiberry isolated S69inet at 180 s; boot 210 s โ†’ 29 s after switching the boot-time ifconfigs to literal IPs. Files: /etc/rc2.d/S69inet, /etc/inet/network-config, /etc/inet/rc.inet on the running system (quirk 13).