Skip to content

Instantly share code, notes, and snippets.

@bclswl0827
Last active January 8, 2024 11:41
Show Gist options
  • Save bclswl0827/ed618547c43928bf7419ee4e18315bcf to your computer and use it in GitHub Desktop.
Save bclswl0827/ed618547c43928bf7419ee4e18315bcf to your computer and use it in GitHub Desktop.
Setup Debian MIPS & MIPSEL on QEMU

Setup Debian MIPS & MIPSEL on QEMU

Preparation

$ sudo apt install -y qemu-utils qemu-system-mips qemu-system-gui
$ mkdir -p ~/qemu/mips ~/qemu/mipsel

MIPS

$ curl -o ~/qemu/mips/initrd.gz -L http://ftp.debian.org/debian/dists/buster/main/installer-mips/current/images/malta/netboot/initrd.gz
$ curl -o ~/qemu/mips/vmlinux-4.19.0-21-4kc-malta -L http://ftp.debian.org/debian/dists/buster/main/installer-mips/current/images/malta/netboot/vmlinux-4.19.0-21-4kc-malta
$ qemu-img create -f qcow2 ~/qemu/mips/debian.buster.qcow 32G

MIPSEL

$ curl -o ~/qemu/mipsel/initrd.gz -L http://ftp.debian.org/debian/dists/buster/main/installer-mipsel/current/images/malta/netboot/initrd.gz
$ curl -o ~/qemu/mipsel/vmlinux-4.19.0-21-4kc-malta -L http://ftp.debian.org/debian/dists/buster/main/installer-mipsel/current/images/malta/netboot/vmlinux-4.19.0-21-4kc-malta
$ qemu-img create -f qcow2 ~/qemu/mipsel/debian.buster.qcow 32G

Installation

MIPS

$ qemu-system-mips -nographic \
    -m 512 -cpu 24Kc -M malta \
    -initrd ~/qemu/mips/initrd.gz \
    -append "root=/dev/sda1 nokaslr" \
    -hda    ~/qemu/mips/debian.buster.qcow \
    -kernel ~/qemu/mips/vmlinux-4.19.0-21-4kc-malta

MIPSEL

$ qemu-system-mipsel -nographic \
    -m 512 -cpu 24Kc -M malta \
    -initrd ~/qemu/mipsel/initrd.gz \
    -append "root=/dev/sda1 nokaslr" \
    -hda    ~/qemu/mipsel/debian.buster.qcow \
    -kernel ~/qemu/mipsel/vmlinux-4.19.0-21-4kc-malta

Follow the installation wizards to complete.

After the installation is complete, to exit from QEMU, use Ctrl + A, then press X.

Extraction

$ sudo modprobe nbd max_part=8

MIPS

$ sudo qemu-nbd --connect=/dev/nbd0 ~/qemu/mips/debian.buster.qcow
$ sudo mount /dev/nbd0p1 /media
$ cp /media/boot/initrd.img-4.19.0-21-4kc-malta ~/qemu/mips
$ sudo umount /media
$ sudo qemu-nbd --disconnect /dev/nbd0

MIPSEL

$ sudo qemu-nbd --connect=/dev/nbd0 ~/qemu/mipsel/debian.buster.qcow
$ sudo mount /dev/nbd0p1 /media
$ cp /media/boot/initrd.img-4.19.0-21-4kc-malta ~/qemu/mipsel
$ sudo umount /media
$ sudo qemu-nbd --disconnect /dev/nbd0

Booting

MIPS

$ qemu-system-mips -nographic \
    -cpu 24Kc -M malta -m 2048 \
    -append root=/dev/sda1 \
    -hda    ~/qemu/mips/debian.buster.qcow \
    -kernel ~/qemu/mips/vmlinux-4.19.0-21-4kc-malta \
    -initrd ~/qemu/mips/initrd.img-4.19.0-21-4kc-malta

MIPSEL

$ qemu-system-mipsel -nographic \
    -cpu 24Kc -M malta -m 2048 \
    -append root=/dev/sda1 \
    -hda    ~/qemu/mipsel/debian.buster.qcow \
    -kernel ~/qemu/mipsel/vmlinux-4.19.0-21-4kc-malta \
    -initrd ~/qemu/mipsel/initrd.img-4.19.0-21-4kc-malta
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment