diff --git a/msg/machine.scm b/msg/machine.scm index 9243f19..02b1d6c 100644 --- a/msg/machine.scm +++ b/msg/machine.scm @@ -77,33 +77,29 @@ (exit 0))) (cond ((string=? arch "arm64") - (system (format #f "/opt/homebrew/bin/qemu-system-aarch64 \ - -machine virt,highmem=on \ - -accel hvf \ - -cpu host \ - -smp ~a \ - -display none \ - -hda $HOME/.guix/qemu/guix-user.qcow2 \ - -m ~aG \ - -virtfs local,path=$HOME/.guix/home,security_model=mapped,mount_tag=macos \ - -bios /opt/homebrew/opt/qemu/share/qemu/edk2-aarch64-code.fd \ - -device virtio-net,netdev=vmnic \ - -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22 &" cpu-conf mem-conf))) + (system (format #f "/opt/homebrew/bin/qemu-system-aarch64 \ + -machine virt,highmem=on \ + -accel hvf \ + -cpu host \ + -smp ~a \ + -display none \ + -hda $HOME/.guix/qemu/guix-user.qcow2 \ + -m ~aG \ + -virtfs local,path=/Users,security_model=mapped,mount_tag=macos \ + -bios /opt/homebrew/opt/qemu/share/qemu/edk2-aarch64-code.fd \ + -device virtio-net,netdev=vmnic \ + -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22 &" cpu-conf mem-conf))) ((string=? arch "x86_64") - ;; (system "/usr/local/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg-system-x86_64guix-user-x86.qcow2.tar.gz -O $HOME/.guix/qemu/guix.qcow2.tar.gz") - ;; (system "tar -xvzf $HOME/.guix/qemu/guix.qcow2.tar.gz -C $HOME/.guix/qemu/") - ;; (system "/usr/local/bin/qemu-system-x86_64 \ - ;; -machine type=q35,accel=hvf \ - ;; -smp 4 \ - ;; -hda $HOME/.guix/qemu/guix-user.qcow2 \ - ;; -m 4G \ - ;; -display none \ - ;; -cpu Nehalem \ - ;; -virtfs local,path=$HOME/.guix,security_model=mapped,mount_tag=macos \ - ;; -device virtio-net,netdev=vmnic \ - ;; -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22") - (display "x86_64 is not currently supported") - (exit 0))) + (system (format #f "/usr/local/bin/qemu-system-x86_64 \ + -machine type=q35,accel=hvf \ + -smp ~a \ + -hda $HOME/.guix/qemu/guix-user.qcow2 \ + -m ~aG \ + -display none \ + -cpu Nehalem \ + -virtfs local,path=/Users,security_model=mapped,mount_tag=macos \ + -device virtio-net,netdev=vmnic \ + -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22 &" cpu-conf mem-conf)))) (display "MSG has been started") ) @@ -124,41 +120,68 @@ (system "/opt/homebrew/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg-system-aarch64guix-installer.qcow2.tar.gz -O $HOME/.guix/qemu/guix.qcow2.tar.gz") (system "tar -xvzf $HOME/.guix/qemu/guix.qcow2.tar.gz -C $HOME/.guix/qemu/") (system "/opt/homebrew/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg-system-aarch64config.scm -O $HOME/.guix/home/config.scm") + ;; Get msg ssh-key + (system "/opt/homebrew/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg_rsa -O $HOME/.guix/ssh-cert/msg_rsa") + (system "chmod 400 ~/.guix/ssh-cert/msg_rsa ") + (system "/opt/homebrew/bin/qemu-system-aarch64 \ + -machine virt,highmem=on \ + -accel hvf \ + -cpu host \ + -smp 4 \ + -display none \ + -hda $HOME/.guix/qemu/guix-user.qcow2 \ + -m 4G \ + -virtfs local,path=$HOME/.guix/home,security_model=mapped,mount_tag=macos \ + -bios /opt/homebrew/opt/qemu/share/qemu/edk2-aarch64-code.fd \ + -device virtio-net,netdev=vmnic \ + -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22 &") + + (update-uid) + + (build-msg) + + (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa root@127.0.0.1 -p 9001 'shutdown'") + (system "ssh-keygen -R \"[127.0.0.1]:9001\"") + (sleep 30) + (system "rm ~/.guix/qemu/guix-user.qcow2") + (system "mv ~/.guix/home/guix-user.qcow2 ~/.guix/qemu/") (start) - ) + (sleep 15) + (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa admin@127.0.0.1 -p 9001 'sudo mkdir /Users /boot/efi'") + (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa admin@127.0.0.1 -p 9001 'sudo mount /dev/vda1 /boot/efi'")) ((string=? arch "x86_64") - ;; (system "/usr/local/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg-system-x86_64guix-user-x86.qcow2.tar.gz -O $HOME/.guix/qemu/guix.qcow2.tar.gz") - ;; (system "tar -xvzf $HOME/.guix/qemu/guix.qcow2.tar.gz -C $HOME/.guix/qemu/") - ;; (system "/usr/local/bin/qemu-system-x86_64 \ - ;; -machine type=q35,accel=hvf \ - ;; -smp 4 \ - ;; -hda $HOME/.guix/qemu/guix-user.qcow2 \ - ;; -m 4G \ - ;; -display none \ - ;; -cpu Nehalem \ - ;; -virtfs local,path=$HOME/.guix,security_model=mapped,mount_tag=macos \ - ;; -device virtio-net,netdev=vmnic \ - ;; -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22") - (display "x86_64 is not currently supported") - (exit 0))) + (system "/usr/local/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg-system-x86_64guix-installer.qcow2.tar.gz -O $HOME/.guix/qemu/guix.qcow2.tar.gz") + (system "tar -xvzf $HOME/.guix/qemu/guix.qcow2.tar.gz -C $HOME/.guix/qemu/") + (system "/usr/local/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg-system-x86_64config.scm -O $HOME/.guix/home/config.scm") + ;; Get msg ssh-key + (system "/usr/local/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg_rsa -O $HOME/.guix/ssh-cert/msg_rsa") + (system "chmod 400 ~/.guix/ssh-cert/msg_rsa ") + (system "/usr/local/bin/qemu-system-x86_64 \ + -machine type=q35,accel=hvf \ + -smp 4 \ + -hda $HOME/.guix/qemu/guix-installer.qcow2 \ + -m 4G \ + -display none \ + -cpu Nehalem \ + -virtfs local,path=$HOME/.guix/home,security_model=mapped,mount_tag=macos \ + -device virtio-net,netdev=vmnic \ + -netdev user,id=vmnic,hostfwd=tcp:127.0.0.1:9001-:22 &") + (sleep 5) + (update-uid) + + (build-msg) + + (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa root@127.0.0.1 -p 9001 'shutdown'") + (system "ssh-keygen -R \"[127.0.0.1]:9001\"") + (sleep 30) + (system "rm ~/.guix/qemu/guix-installer.qcow2") + (system "mv ~/.guix/home/guix-user.qcow2 ~/.guix/qemu/") + (start) + (sleep 15) + (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa admin@127.0.0.1 -p 9001 'sudo mkdir /Users'"))) - ;; Get msg ssh-key - (system "/opt/homebrew/bin/wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfgkze2xif1/b/guix-system/o/msg_rsa -O $HOME/.guix/ssh-cert/msg_rsa") - (system "chmod 400 ~/.guix/ssh-cert/msg_rsa ") - (update-uid) - (build-msg) - - (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa root@127.0.0.1 -p 9001 'shutdown'") - (system "ssh-keygen -R \"[127.0.0.1]:9001\"") - (sleep 30) - (system "rm ~/.guix/qemu/guix-user.qcow2") - (system "mv ~/.guix/home/guix-user.qcow2 ~/.guix/qemu/") - (start) - (sleep 15) - (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa admin@127.0.0.1 -p 9001 'sudo mkdir /Users /boot/efi'") - (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa admin@127.0.0.1 -p 9001 'sudo mount /dev/vda1 /boot/efi'") (newline) (display "Reconfiguring MSG, this may take a few minutes...") (system "ssh -o StrictHostKeyChecking=no -i $HOME/.guix/ssh-cert/msg_rsa admin@127.0.0.1 -p 9001 'sudo guix system reconfigure --allow-downgrades /etc/config.scm'")