utils-pcbios.ipxe.j2 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!ipxe
  2. menu Utilities - Image Sig Checks: [${img_sigs_enabled}]
  3. item --gap Utilities:
  4. {% for key, value in utilitiespcbios.items() | sort(attribute='1.name') %}
  5. {% if value.enabled %}
  6. item {{ key }} ${space} {{ value.name }}
  7. {% endif %}
  8. {% endfor %}
  9. item --gap netboot.xyz tools:
  10. item nbxyz-custom ${space} Set Github username [user: ${github_user}]
  11. item testdistro ${space} Test Distribution ISO
  12. item testpr ${space} Test forked netboot.xyz branch or hash
  13. choose --default ${menu} menu || goto utils_exit
  14. echo ${cls}
  15. goto ${menu} ||
  16. chain ${menu}.ipxe || goto utils_exit
  17. goto utils_exit
  18. {% for key, value in utilitiespcbios.items() | sort %}
  19. {% if value.enabled | bool and value.type == "memdisk" %}
  20. :{{ key }}
  21. set util_path {{ value.util_path }}
  22. set util_file {{ value.util_path | basename }}
  23. set util_version {{ value.version }}
  24. goto boot_{{ value.type }}
  25. {% endif %}
  26. {% endfor %}
  27. {% for key, value in utilitiespcbios.items() | sort %}
  28. {% if value.enabled | bool and value.type == "direct" %}
  29. :{{ key }}
  30. imgfree
  31. kernel {{ value.kernel }}
  32. initrd {{ value.initrd }}
  33. boot
  34. goto utils_exit
  35. {% endif %}
  36. {% endfor %}
  37. :boot_memdisk
  38. imgfree
  39. kernel ${memdisk} iso raw
  40. initrd --name ${util_file} ${util_path}
  41. echo
  42. echo MD5sums:
  43. md5sum memdisk ${util_file}
  44. iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
  45. :verify_sigs
  46. echo
  47. echo Checking signatures...
  48. imgverify memdisk ${sigs}memdisk.sig || goto error
  49. imgverify ${util_file} ${sigs}${menu}/${util_file}.sig || goto error
  50. echo Signatures verified!
  51. echo
  52. :skip_sigs
  53. boot
  54. goto utils_exit
  55. :memtest
  56. imgfree
  57. kernel {{ utilitiespcbios.memtest.util_path }}
  58. boot
  59. goto utils_exit
  60. :nbxyz-custom
  61. echo EXPERIMENTAL
  62. echo
  63. echo Make sure you have a fork of https://github.com/netbootxyz/netboot.xyz-custom.
  64. echo You can then customize your fork as needed and set up your own custom options.
  65. echo Once your username is set, a custom option will appear on the main menu.
  66. echo
  67. echo -n Please enter your Github username: ${} && read github_user
  68. goto utils_exit
  69. :testdistro
  70. echo This option will allow you to test booting an ISO using memdisk. Please
  71. echo specify the URL of the ISO you want to test and it will automatically
  72. echo attempt to load the ISO using memdisk.
  73. echo -n URL: ${} && read distro_iso
  74. kernel ${memdisk} iso raw
  75. initrd ${distro_iso}
  76. boot
  77. goto utils_exit
  78. :testpr
  79. clear github_user
  80. clear github_branch_or_hash
  81. echo This will chainload into a testing branch of netboot.xyz. You'll need to enter
  82. echo your Github username and the first part of the commit hash of the commit you want
  83. echo to test or the branch name. This assumes you are testing from a forked netboot.xyz
  84. echo repo.
  85. echo
  86. echo -n Specify Github username: ${} && read github_user
  87. echo -n Specify Github branch name or commit hash ( i.e. my_feature or 30b7ca ): ${} && read github_branch_or_hash
  88. echo
  89. echo Attempting to chainload branch or hash:
  90. chain --autofree https://raw.githubusercontent.com/${github_user}/netboot.xyz/${github_branch_or_hash}/src/menu.ipxe || echo Unable to find Github branch or hash... && sleep 5 && goto utils_exit
  91. goto utils_exit
  92. :utils_exit
  93. clear menu
  94. exit 0