Download the zipped image file from the releases page
Extract the image, and write it to an SD card: dd if=installer.bin of=/dev/mmcblk0 bs=1M status=progress
default username is pi
no password is set, pi has sudo
.
The source tree is added as a sub-tree to speed up the build process ~(from https://github.com/raspberrypi/linux.git); and locked to 3a33f11c48572b9dd0fecac164b3990fc9234da8~ but it can be
updated with git subtree
(Note: patches in https://github.com/clockworkpi/uConsole.git depend on this commit, so it will likely need to be updated later.)
updated again Sat 28th September 2024 in commit: c36050235066eb04c98f429384739faa2632ac15
recently updated to: https://github.com/ak-rex/ClockworkPi-linux.git (rpi-6.6.y HEAD) (7-9-24)
Minimum SD size is 4GB, to scale up:
qemu-img resize installer.bin 16G
losetup -P /dev/loop127 installer.bin
parted /dev/loop127
delete the second partition, and recreate it; then run:
btrfs filesystem resize +12G /dev/loop127p2
losetup -d /dev/loop127
dd if=installer.bin of=/dev/mmcblk0 bs=1M status=progress
My current version of QEmu only has a raspi3b machine type, but the 4b is apparently supported in newer versions. For more info: https://www.qemu.org/docs/master/system/arm/raspi.html
use losetup
and mount the first partition to retrieve the kernel and dtbs, then:
qemu-system-aarch64 \
-M raspi3b \
-kernel kernel8.img \
-dtb bcm2710-rpi-3-b.dtb \
-drive format=raw,file=installer.bin \
-append "console=serial0,115200n8 console=tty0 root=/dev/mmcblk0p2 rootfstype=btrfs fsck.repair=yes rootwait" \
-netdev user,id=net0,net=169.254.0.0/16,dhcpstart=169.254.0.2,hostfwd=tcp::2222-:22 \
-device usb-net,netdev=net0 \
-device usb-kbd \
-device usb-mouse