GO9PCPU 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. set -e
  3. trap : 2
  4. $HARVEY/util/ufs -root=$HARVEY &
  5. ufspid=$!
  6. export machineflag=q35
  7. if [ "$(uname)" = "Linux" ] && [ -e /dev/kvm ]; then
  8. export kvmflag='-enable-kvm'
  9. export machineflag='pc,accel=kvm'
  10. if [ ! -w /dev/kvm ]; then
  11. # we don't have access as a regular user
  12. export kvmdo=sudo
  13. fi
  14. fi
  15. # vmware-cpuid-freq=on,+invtsc exposes the 0x40000000 hypervisor cpuid values to
  16. # the guest, which we can use to identify the TSC frequency
  17. read -r cmd <<EOF
  18. $kvmdo qemu-system-x86_64 -s -cpu max,vmware-cpuid-freq=on,+invtsc -smp 4 -m 2048 $kvmflag \
  19. -usb \
  20. -serial stdio \
  21. --machine $machineflag \
  22. -net nic,model=rtl8139 \
  23. -net user,id=user.0,\
  24. hostfwd=tcp::5555-:1522,\
  25. hostfwd=tcp::9999-:9,\
  26. hostfwd=tcp::17010-:17010,\
  27. hostfwd=tcp::1666-:1666,\
  28. hostfwd=tcp::5356-:5356,\
  29. hostfwd=tcp::17013-:17013 \
  30. -object filter-dump,id=f1,netdev=user.0,file=/tmp/vm0.pcap \
  31. -append "service=cpu nobootprompt=tcp maxcores=1024 fs=10.0.2.2 auth=10.0.2.2 nvram=/boot/nvram nvrlen=512 nvroff=0 acpiirq=1" \
  32. -kernel $HARVEY/sys/src/9/amd64/harvey.32bit $*
  33. EOF
  34. echo $cmd
  35. eval $cmd
  36. kill $ufspid
  37. wait
  38. # TO ENABLE FACTOTUM replace append with this
  39. #-append "nobootprompt=tcp maxcores=1024 fs=10.0.2.2 auth=10.0.2.2 nvram=/boot/nvram nvrlen=512 nvroff=0" \
  40. # -nographic \
  41. #-S -gdb tcp::1234 \
  42. # -nographic \
  43. #-kernel mnt/hdd/kernel $*
  44. # if you need the dump.
  45. #-object filter-dump,id=f1,netdev=user.0,file=/tmp/vm0.pcap \
  46. #sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 4096 -nographic \
  47. #-net nic,model=rtl8139 mnt/hdd268mb.img \
  48. #-net user,hostfwd=tcp::5555-:23 \
  49. #-object filter-dump,id=f1,netdev=user.0,file=/tmp/vm0.pcap \
  50. #-kernel mnt/hdd/kernel $*
  51. #
  52. #sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 6024 -nographic -net nic,model=rtl8139 mnt/hdd268mb.img -netdev user,id=mynet0 -kernel mnt/hdd/kernel $*
  53. #sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 6024 -nographic -net nic,model=rtl8139 mnt/hdd268mb.img -netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9 -kernel mnt/hdd/kernel $*
  54. #