2 # doesn't actually fully work yet...
4 if [[ "$(id -u)" != 0 ]]; then
5 exec sudo bash
"$0" "$@"
7 build_dir
="$(mktemp -d)"
8 iso_dir
="$build_dir/iso"
12 for i
in "${mounts[@]}"; do
15 rm -rf --one-file-system "$build_dir"
18 mmdebstrap
-v --variant=apt
--include=grub-ieee1275-bin
,xorriso
,gdbserver
,linux-image-powerpc64le
--architecture=ppc64el bullseye
"$build_dir"
19 echo "gdb-vm-build" > "$build_dir"/etc
/debian_chroot
20 if [[ "$(arch)" != "ppc64le" ]]; then
21 cp /usr
/bin
/qemu-ppc64le-static
"$build_dir"/usr
/bin
/qemu-ppc64le-static
23 cp /etc
/resolv.conf
"$build_dir"/etc
/resolv.conf
24 mount
--bind /dev
"$build_dir"/dev
25 mounts
=("$build_dir"/dev
"${mounts[@]}")
26 mount
--bind /dev
/pts
"$build_dir"/dev
/pts
27 mounts
=("$build_dir"/dev
/pts
"${mounts[@]}")
28 mount
--bind /proc
"$build_dir"/proc
29 mounts
=("$build_dir"/proc
"${mounts[@]}")
30 mount
--bind /sys
"$build_dir"/sys
31 mounts
=("$build_dir"/sys
"${mounts[@]}")
33 cat > "$build_dir"/etc
/initramfs-tools
/hooks
/gdbserver
<<'EOF'
49 . /usr/share/initramfs-tools/hook-functions
51 echo copying gdbserver...
52 copy_exec /usr/bin/gdbserver /usr/bin/gdbserver
56 chmod +x
"$build_dir"/etc
/initramfs-tools
/hooks
/gdbserver
57 cat > "$build_dir"/etc
/initramfs-tools
/scripts
/init-top
/gdbserver
<<'EOF'
74 # TODO: call gdbserver on serial port instead...then poweroff
75 sh <>/dev/tty1 >&0 2>&0
79 chmod +x
"$build_dir"/etc
/initramfs-tools
/scripts
/init-top
/gdbserver
80 chroot
"$build_dir" update-initramfs
-k all
-u
81 cp "$build_dir"/boot
/vmlinu?
-* "$iso_dir"/vmlinux
82 cp "$build_dir"/boot
/initrd.img-
* "$iso_dir"/initrd.gz
83 mkdir
-p "$iso_dir"/boot
/grub
84 cat > "$iso_dir"/boot
/grub
/grub.cfg
<<'EOF'
90 # not a real UUID, just makes initrd work...
91 set root=(ieee1275/cdrom,apple3)
92 linux /vmlinux root=UUID=2942fbed-5e30-4bbd-b1ba-5ac1875bc41c debug
96 chroot
"$build_dir" grub-mkrescue
-o gdb-vm.iso
/iso
97 install -m 644 "$build_dir"/gdb-vm.iso gdb-vm.iso