Running illumos aarch64 on Asahi Linux on M1/M2 ----------------------------------------------- # git clone the 6.1.0 branch git clone --branch osport/qemu-6.1.0 https://github.com/n-hys/qemu/ # copy the patched files to the $SRC/ (where you cloned qemu) cp ebpf_rss.c $SRC/qemu/ebpf/ cp fdmon-io_uring.c $SRC/qemu/util/ cd qemu ./configure --target-list=aarch64-softmmu make sudo make install # Make sure you have the following file cat /usr/local/etc/qemu/bridge.conf allow br0 # Then just use the ready made images + scripts # You can download the ready-made images from here https://astr0baby.online/Solaris/illumos-aarch64/ - Download disk.img.xz and uncompress (unxz disk.img.xz) - Download flash.bin - Download intetboot.bin - Download intetboot.out - Download run.sh # Additional tools need to be pulled for the below bridging to work on the Asahi sudo pacman -S bridge-utils net-tools # And most importanly the wget http://user-mode-linux.sourceforge.net/uml_utilities_20070815.tar.bz2 bunzip uml_utilities_20070815.tar.bz2 tar -xvf uml_utilities_20070815.tar cd tools-20070815 make # The make will error on uml_net/hoct.c:215 undefined # reference to ` makedev` # this does not really matter, the tunctl binary will be built which we can copy over to /usr/bin like this cd tunclt sudo cp tunctl /usr/bin # Make sure you have the /dev/tun node created (it was not by default on the Asahi fresh install) sudo mkdir -p /dev/net sudo mknod /dev/net/tun c 10 200 # Then just reboot Asahi for this to work # My host networking script for Qemu (bridge) # (On the Linux-aarch64 host) tunctl -t tap0 -u user ifconfig tap0 up brctl addbr br0 brctl setfd br0 0 ifconfig br0 10.0.2.2 netmask 255.255.255.0 broadcast 10.0.2.255 up brctl addif br0 tap0 tap1 ifconfig tap0 0.0.0.0 sysctl net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # SSHD can be started manually from the root shell console # /usr/local/sbin/sshd # Credentials: # user:p4ssw0rd # root:p4ssw0rd