Differences between revisions 28 and 29
Revision 28 as of 2017-06-14 18:58:35
Size: 16680
Editor: ?AdrianGlaubitz
Comment: Fix configure line for qemu
Revision 29 as of 2017-06-14 19:01:17
Size: 16529
Editor: ?AdrianGlaubitz
Comment: parted can now be used from the distribution
Deletions are marked like this. Additions are marked like this.
Line 131: Line 131:
'''Note''': This requires a relatively recent version of ''parted'' (Debian Stretch or newer).
Line 134: Line 136:
   # apt build-dep parted
Line 159: Line 160:
5. Build a patched version of parted from source
   $ git clone https://github.com/glaubitz/parted.git
   $ cd parted
   $ ./bootstrap
   $ ./configure --disable-gcc-warnings
   $ make
. Run parted to create partitions in the newly created disk images (as root)
   # /path/to/parted-git/parted/parted debian-68k.img
5. Run parted to create partitions in the newly created disk images (as root)
   # parted/parted debian-68k.img
Line 190: Line 183:
7. Create a new loop-back device on the host from the disk image file (as root) 6. Create a new loop-back device on the host from the disk image file (as root)
Line 203: Line 196:
8. Mount the disk image and install a minimal Debian/m68k base system into it (as root) 7. Mount the disk image and install a minimal Debian/m68k base system into it (as root)
Line 209: Line 202:
9. Configure ARAnyM to boot the image 8. Configure ARAnyM to boot the image
Line 228: Line 221:
10. Configure ARAnyM for Linux 9. Configure ARAnyM for Linux
Line 243: Line 236:
11. Download kernel and initrd 10. Download kernel and initrd
Line 248: Line 241:
12. Boot ARAnyM 11. Boot ARAnyM
Line 252: Line 245:
13. Once ARAnyM has booted up, run the second stage of debootstrap 12. Once ARAnyM has booted up, run the second stage of debootstrap
Line 258: Line 251:
14. Set a root password and a hostname 13. Set a root password and a hostname
Line 263: Line 256:
15. Shutdown ARAnym 14. Shutdown ARAnym
Line 269: Line 262:
16. Boot the system normally 15. Boot the system normally

Remember that a minimal sources.list must contain one line for the “unstable” distribution and one line for the “unreleased” distribution!

Installing Debian/m68k


ARAnyM images

Pre-made ARAnyM hard disc images (byte-swapped, i.e. directly usable by ARAnyM) are here, configuration and kernels included. Last Update: 2015-01 (January 2015)


http://people.debian.org/~wouter/d-i/ contains a d-i build by WouterVerhelst. Last Update: 2012-12 (December 2012)

Installing from d-i is currently untested and most likely not working because it uses debootstrap, which can only install from unstable without taking the Debian-Ports "unreleased" suite into account. A workaround is being worked on.

This version of d-i currently supports Amiga and Atari computers.

Pre-made filesystems

Filesystem images

Pre-made ext2fs (448 MiB) with base system (debootstrap --variant=base) plus a couple of packages, pre-configured, (does not include 128 MiB swapfile, forgot about it, sorry, next time); login root:root ⇒ download; Last Update: 2015-01 (January 2015)

Filesystem tarballs

Pre-made tarball with base system (debootstrap --variant=base) plus a couple of packages, pre-configured except fstab; login root:root ⇒ download; Last Update: 2015-01 (January 2015)

build chroot tarballs

Pre-made tarball with package build system (debootstrap --variant=buildd) and policy-rc.d to deny dæmon start ⇒ download from people.debian.org; Last Update: 2012-12 (December 2012)

Pre-made /var/cache/pbuilder/base.cow image (from “cowbuilder --create”) can be downloaded here. Last Update: 2012-04 (April 2012)


Linux 3.2.35-2 (Debian ABI 3.2(.0)-4) ⇒ download from people.debian.org

We don’t offer later kernels because they require a Debian-generated initrd.


It is currently not possible to simply debootstrap because we require both the “unstable” and “unreleased” suite. A combined repository of both (only the most important gigabyte of packages) is however available, and you can debootstrap from that as follows:

  • run debootstrap with several additional options:
    • --include must be passed and the package debian-ports-archive-keyring listed

    • use “sid” as suite
  • pick your favourite Debian unofficial ports mirror (we’ll be using 「http://ftp.de.debian.org/debian-ports」) and create an /etc/apt/sources.list inside the chroot with, at the very least, the following two lines:

    • deb http://ftp.de.debian.org/debian-ports unstable main

    • deb http://ftp.de.debian.org/debian-ports unreleased main

  • Now you can run dselect update, apt-get --purge dist-upgrade, etc. (with eatmydata if you wish)


It should be possible to use that and pull directly from official Debian-Ports repositories, from an installed system that’s more up-to-date than etch-m68k. (The only “upgrade” path from etch-m68k we support is un-tarring one of the tarballs above and booting into them.) There’s no multistrap configuration as of yet, but if you know how to write one already, use the following two APT repositories combined into one:

  • pick your favourite Debian unofficial ports mirror (we’ll be using 「http://ftp.de.debian.org/debian-ports」)

    • deb http://ftp.de.debian.org/debian-ports unstable main

    • deb http://ftp.de.debian.org/debian-ports unreleased main

Of course, feel free to paste a working configuration below ;-)

Platform-specific notes

The following Debian releases are available for installation on Amiga, Atari and Mac platforms.

Installation guides are available for the official releases.

Booting and installing Debian/m68k on an Amiga

To boot Debian on Amiga systems, a utility called amiboot is required. There are two commonly used versions of amiboot available, 5.6 and 6.0snapshot. Version 5.6 was shipped up to including Debian Sarge, while Etch and newer releases use 6.0snapshot. However, amiboot 6.0snapshot has some issues (see http://lists.debian.org/debian-68k/2013/04/msg00037.html for example) and it is therefore sometimes advisable to resort to amiboot 5.6 which usually works fine in these cases but requires the kernels to be decompressed prior use. This can be achieved using the UnARC utility part of AmigaOS 3.9 or similar utility from AmiNet.

A typical command line to boot Linux with amiboot looks like this:

amiboot -d -k vmlinuz-3.2.0-4-amiga -r initrd.gz root=/dev/ram video=pal

This enables debugging through serial console, loads the kernel from vmlinuz-3.2.0-4-amiga and the compressed initrd from initrd.gz (both located in the same directory as amiboot in this case) and tells the kernel to set the video output standard to "pal" (use "ntsc" if you're in the US or any other countries which uses NTSC). Omitting the "video=" setting may result in the Amiga video showing a blank screen after booting the Linux kernel.

It can be helpful to redirect the console output to the serial console of the Amiga by adding "console=ttyS0,9600n8" (Note: Use "debug=ser" instead on Kernel 3.10-2-m68k as the kernel may crash otherwise, but it works fine now on more recent kernels like 3.14-1-m68k) to the kernel command line for the first boot attempts if you should have issues with the video output. If everything goes right, the machine should boot into Linux without problems.

It's highly recommended to copy all installer files onto an AmigaOS partition, then running amiboot to boot into Linux. This allows to conveniently edit the command line for amiboot in a Amiga shell script which can later be used to boot into Linux by double-clicking its icon. Editing the amiboot; command line can be necessary when changing the version of amiboot used, enabling serial console or extra debugging (see above). Copying all installer files onto hard disk also helps avoiding problems with SCSI controllers unsupported by Linux which attach the CD-ROM drive used to the Amiga. The very popular Squirrel SCSI PCMCIA adaptor is unsupported on Linux, for example. Accessing installer files on a hard disk will always work (provided that the disk is connected to the internal IDE controller, in case of Amiga 600/1200).

There are several Amiga shell scripts available to boot into Linux for installation, depending on the video card used:

  • StartInstall - Amiga chipset graphics

  • StartInstall_CV3D - Cybervision 3D graphics

  • StartInstall_CV64 - Cybervision 64 graphics

  • StartInstall_clgen - Cirrus Logic graphics

  • StartInstall_retz3 - Retina Z3 graphics

Installation notes for the various graphics cards are supplied in the Amiga installation directory. StartInstall; should work for most users. If no video output can be seen after booting Linux, it may help to use serial console (see above).

After successfully booting into Linux, Debian Installer will start and try to detect the available disks and hardware. In order to do a network installation, a supported network card is required (see http://www.g-mb.de/pcmcia_e.html for an incomplete list of PCMCIA network cards supported on the Amiga 600/1200, for example; not all PCMCIA network adapters supported by the Linux kernel actually work on Amiga hardware due to a different PCMCIA driver layer used for the Amiga).

A detailed HowTo which explains how to install a more recent version of Debian on Amiga is explained here: http://www.amiga.org/forums/showthread.php?t=65146.

Hardware limitations on Atari

4 MiB ST-RAM are not enough. (Although that was for 3.2; we should recheck this with the modularised 3.10 which is much smaller, when loading the initrd into TT-RAM.)

The EtherNAT and EtherNEC patches are not yet in the mainline kernel, and thus also not in the Debian kernel. You can hand-compile your own m68k-queue kernel if you dare and need support for that hardware.

The x.org fbdev driver does not seem to support any of the Atari video modes (yet; an experimental patch is said to have been written).

Installing Debian/m68k on a Macintosh

Michael Tomkins has written about Installation of Debian sid on Quadra 605 from scratch, although he uses slightly older images than which are currently available (and one shouldn’t use the base.cow / “buildd” image, but rather the “base” image, which contains e.g. the DHCP client already, to run the system). Similar instructions for the Quadra 650 exist.

Read also this mailing list thread as it contains important additional information. Remember to use the ‘p’ tar(1) option when extracting the tarballs, i.e. “tar xzpf file.tgz” or similar.

Instructions for installing old Debian releases 2.0, 2.1 and 2.2 on Macs can be found at M68k/Archive. These are mostly kept for posterity; if for some reason an old Linux 2.2 kernel was desired, it would be better to install Debian release 3.1.

Installing Debian/68k in ARAnyM from scratch

Note: This requires a relatively recent version of parted (Debian Stretch or newer).

1. Install required packages on the host machine (as root)

   # apt install aranym parted debootstrap git

2. Create a new folder for ARAnym

   $ mkdir debian-68k
   $ cd debian-68k

3. Run ARAnyM with the GUI and do the initial setup

   $ aranym --gui

4. In ARAnym, first create a new disk image

  • Click "Disks"
  • Click "Path:"
  • In the "Choose a file" dialog, type an image filename after "File:",
    • for example "debian-68k.img", then click "OK"
  • In the field "Disk Size:", enter the desired disk image size in Megabytes
  • Click "Generate Disk Image"
  • Write down the Geometry data, that is the value for Cylinders, Heads and
    • Sectors per track (not sure if necessary)
  • Tick the option "Present"
  • Click "Apply"
  • Click "Shutdown" to close ARAnym

5. Run parted to create partitions in the newly created disk images (as root)

   # parted/parted debian-68k.img
  • Type "mklabel atari" to create an empty partition table
  • Type "u", then "b" to switch the units to bytes
  • Create an ext3 partition with "mkpart":
    • - Type "primary" for the type - Type "ext3" for the filesystem - Type "0" for the start - Type a number dividable by 1024 for the end,
      • e.g. type "21474836480" for a 20 GiB partition
  • Create a swap partition with "mkpart"
    • - Type "primary" for the type - Type "linux-swap" for the filesystem - Type the end block of the first partiion
      • as start, e.g. "21474836480"
      - Type a number dividable by 1024 for the end,
      • then add this value to the start value e.g. type "25769803776" for a 4 GiB swap partition after the first partition
  • Exit parted by typing "quit"

6. Create a new loop-back device on the host from the disk image file (as root)

   # losetup /dev/loop0 debian-68k.img
  • The two partitions should now show up as:
    • - /dev/loop0p1 - /dev/loop0p2
  • Create a new ext4 filesystem on the primary partition

   # mkfs.ext4 /dev/loop0p1

7. Mount the disk image and install a minimal Debian/m68k base system into it (as root)

   # mount /dev/loop0 /mnt
   # debootstrap --arch=m68k --foreign --include=apt,nano unstable /mnt http://ftp.de.debian.org/debian-ports
   # umount /mnt

8. Configure ARAnyM to boot the image

  • Create a new text file for the ARAnyM configuration

   $ $EDITOR debian-68k.cfg
  • Use the values for Cylinders, Sectors and Heads from step 4.

   Present = Yes
   IsCDROM = No
   ByteSwap = Yes
   ReadOnly = No
   Path = debian-68k2.img
   Cylinders = 1058
   Heads = 16
   SectorsPerTrack = 63
   ModelName = Master

9. Configure ARAnyM for Linux

   FastRAM = 768
   Floppy =
   BootstrapArgs =
   BootDrive =
   GMTime = No

   Kernel = vmlinuz-3.16.0-4-m68k
   Args = root=/dev/nfhd8p1 init=/bin/bash rw devtmpfs.mount=1 video=atafb:vga16
   Ramdisk = initrd.img-3.16.0-4-m68k
   LoadToFastRam = No

10. Download kernel and initrd

   $ wget https://people.debian.org/~glaubitz/chroots/kernels/initrd.img-3.16.0-4-m68k
   $ https://people.debian.org/~glaubitz/chroots/kernels/vmlinuz-3.16.0-4-m68k

11. Boot ARAnyM

   $ aranym-mmu -c debian-68k.cfg -l

12. Once ARAnyM has booted up, run the second stage of debootstrap

   # /debootstrap/debootstrap --second-stage
  • This takes quite some time, especially the unpacking of the base system

13. Set a root password and a hostname

   # passwd (type new password, twice)
   # echo "aranym-host" > /etc/hostname

14. Shutdown ARAnym

   # sync
  • Close the ARAnyM window to kill the emulator

15. Boot the system normally

   $ $EDITOR debian-68k.cfg
  • Remove the line "init=/bin/bash" from the "Args" line
  • Save the file and exit editor

   $ aranym-mmu -c debian-68k.cfg -l

Installing on qemu-m68k-system

1. Preparing QEMU

# apt-get install qemu-system
# apt-get build-dep qemu
# git clone https://github.com/vivier/qemu-m68k.git
# cd qemu-m68k
# ./configure --target-list=m68k-softmmu --disable-glusterfs
# make

2. Preparing the disk image

# qemu-img create -f qcow2 m68k-system.img 40G
# modprobe nbd max_part=8
# qemu-nbd --connect=/dev/nbd0 m68k-system.img
# cfdisk /dev/nbd0 (Partition drive)
# partprobe /dev/nbd0
# mkfs.ext4 -F /dev/nbd0p1
# mount /dev/nbd0p1 /mnt

3. Setting up the m68k chroot

# wget https://people.debian.org/~glaubitz/chroots/unstable-m68k-20150315.tar.gz
# tar xf unstable-m68k-20150315.tar.gz 
# rm unstable-m68k-20150315.tar.gz
# rmdir unstable-m68k-20150315/
# mv unstable-m68k-20150315/* .
# ls
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# cd
# umount /mnt
# qemu-nbd --disconnect /dev/nbd0
/dev/nbd0 disconnected

4. Downloading kernel and initrd

# wget https://people.debian.org/~glaubitz/chroots/kernels/vmlinuz-3.16.0-4-m68k https://people.debian.org/~glaubitz/chroots/kernels/initrd.img-3.16.0-4-m68k

5. Preparing the kernel

# gzip -d -c < vmlinuz-3.16.0-4-m68k > vmlinux-3.16.0-4-m68k

6. Booting QEMU

# qemu-system-m68k -M q800 -serial none -serial mon:stdio -m 1000M -drive file=m68k-system.img,format=qcow2 -net nic,model=dp83932,addr=08:00:07:12:34:56 -net user -nographic -append "root=/dev/sda1 rw console=ttyS0" -kernel vmlinux-3.16.0-4-m68k -initrd initrd.img-3.16.0-4-m68k