The Mackerel family is a series of Motorola 680x0 single-board computers designed and built from scratch. As of mid-2026 all three boards boot the same mainline Linux 7.1.x kernel, from the 8-bit-bus 68008 up to the MMU-and-FPU-equipped 68030.
Mackerel-08
Mackerel-08 pairs the 52-pin PLCC MC68008 (a stripped-down version of the original 68000) with 512 KB of flash ROM, 3.5 MB of SRAM, and an XR68C681 DUART providing two serial ports and three bit-banged SPI connections (one wired to an SD card). Despite the 8-bit bus and no MMU, it boots a modern 7.1.x kernel into a BusyBox shell, with its root filesystem baked straight into the kernel image. It's quite possibly the slowest CPU mainline still supports.
Mackerel-10
The second phase of the project. Mackerel-10 widens the design to a 16-bit data bus with a 68010 (or 68000) CPU and adds real memory: a DRAM controller implemented in a CPLD drives up to 16 MB DRAM in the form of 30-pin SIMMs. An onboard IDE header turns a real hard drive or a CF-to-IDE adapter into a proper block device. Like the 08 it runs NOMMU - and now the same mainline kernel.
Mackerel-30
The first iteration with a 32-bit external bus. Mackerel-30 is built around a 68030 running at 20 MHz, with the Mackerel-10 DRAM controller upgraded to a 72-pin SIMM for up to 128 MB. It adds an MC68882 FPU and, crucially, a working MMU - so it runs Linux the way a "real" machine does: virtual memory, hardware floating point, IDE storage, and networking through an ENC28J60 over SPI. The same kernel as the 68008, just with a lot more functionality.
Colin Maykish












Tobias Rathje
Ross Bamford
Tom
just built the mackerel-08 1.1 zip release and burned to sd card and it boots
Jumping to 0x400
Linux version 4.4.0-uc0 (none@fedora) (gcc version 4.5.1 (GCC) ) #1 Sun May 24 11:06:30 PDT 2026
Mackerel-08 support by Colin Maykish <crmaykish@protonmail.com>
bootconsole [mackconsole0] enabled
uClinux/MC68000
Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 889
Kernel command line:
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 1024 (order: 0, 4096 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 2180K/3584K available (761K kernel code, 32K rwdata, 96K rodata, 40K init, 42K bss, 1404K reserved, 0K cma-reserved)
Virtual kernel memory layout:
vector : 0x00000000 - 0x00000400 ( 1 KiB)
kmap : 0x00000000 - 0xffffffff (4095 MiB)
vmalloc : 0x00000000 - 0xffffffff (4095 MiB)
lowmem : 0x00000000 - 0x00380000 ( 3 MiB)
.init : 0x000df000 - 0x000e9000 ( 40 KiB)
.text : 0x00000400 - 0x000beb30 ( 762 KiB)
.data : 0x000beb30 - 0x000dede0 ( 129 KiB)
.bss : 0x000e9000 - 0x000f3aac ( 43 KiB)
NR_IRQS:32
Setting up Mackerel timer hardware
Calibrating delay loop... 1.16 BogoMIPS (lpj=5824)
pid_max: default: 4096 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
io scheduler noop registered (default)
XR68C681 serial driver (c) 2024 Colin Maykish
ttyS0 at I/O 0x0 (irq = 1, base_baud = 115200) is a XR68C681 DUART module
console [ttyS0] enabled
console [ttyS0] enabled
bootconsole [mackconsole0] disabled
bootconsole [mackconsole0] disabled
brd: module loaded
uclinux[mtd]: probe address=0xf3aac size=0x54000
Creating 1 MTD partitions on "ram":
0x000000000000-0x000000054000 : "ROMfs"
HACK! hardcoding rootfs mount as romfs filesystem
VFS: Mounted root (romfs filesystem) readonly on device 31:0.
Freeing unused kernel memory: 40K (000df000 - 000e9000)
init started: BusyBox v1.21.0-uc0 (2026-05-24 11:07:22 PDT)
starting pid 31, tty '': '/bin/hostname mackerel-08'
starting pid 32, tty '': '/bin/expand /etc/ramfs.img /dev/ram0'
starting pid 33, tty '': '/bin/mount -t proc proc /proc'
starting pid 34, tty '': '/bin/mount -t ext2 /dev/ram0 /var'
starting pid 35, tty '': '/bin/mkdir /var/tmp'
starting pid 36, tty '': '/bin/mkdir /var/log'
starting pid 37, tty '': '/bin/mkdir /var/run'
starting pid 38, tty '': '/bin/mkdir /var/lock'
starting pid 39, tty '': '/bin/mkdir /var/empty'
starting pid 40, tty '': '/bin/cat /etc/motd'
Welcome to uClinux on
__ __ _ _ __ ___
| \/ |__ _ __| |_____ _ _ ___| | ___ / \( _ )
| |\/| / _` / _| / / -_) '_/ -_) | |___| | () / _ \
|_| |_\__,_\__|_\_\___|_| \___|_| \__/\___/
github.com/crmaykish/mackerel-68k
starting pid 41, tty '': '/bin/cttyhack /bin/nwsh'
# random: nonblocking pool is initialized, so all is good now Thank you for all the work and help