utils-pcbios.ipxe.j2 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!ipxe
  2. menu Utilities
  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. item nbxyz ${space} netboot.xyz endpoints
  14. choose --default ${menu} menu || goto utils_exit
  15. echo ${cls}
  16. goto ${menu} ||
  17. chain ${menu}.ipxe || goto utils_exit
  18. goto utils_exit
  19. {% for key, value in utilitiespcbios.items() | sort %}
  20. {% if value.enabled | bool and value.type == "memdisk" %}
  21. :{{ key }}
  22. set util_path {{ value.util_path }}
  23. set util_file {{ value.util_path | basename }}
  24. set util_version {{ value.version }}
  25. goto boot_{{ value.type }}
  26. {% endif %}
  27. {% endfor %}
  28. {% for key, value in utilitiespcbios.items() | sort %}
  29. {% if value.enabled | bool and value.type == "direct" %}
  30. :{{ key }}
  31. imgfree
  32. kernel {{ value.kernel }}
  33. initrd {{ value.initrd }}
  34. boot
  35. goto utils_exit
  36. {% endif %}
  37. {% endfor %}
  38. :boot_memdisk
  39. imgfree
  40. kernel ${memdisk} iso raw
  41. initrd --name ${util_file} ${util_path}
  42. echo
  43. echo MD5sums:
  44. md5sum memdisk ${util_file}
  45. boot
  46. goto utils_exit
  47. :memtest
  48. imgfree
  49. kernel {{ utilitiespcbios.memtest.util_path }}
  50. boot
  51. goto utils_exit
  52. :nbxyz-custom
  53. echo EXPERIMENTAL
  54. echo
  55. echo Make sure you have a fork of https://github.com/netbootxyz/netboot.xyz-custom.
  56. echo You can then customize your fork as needed and set up your own custom options.
  57. echo Once your username is set, a custom option will appear on the main menu.
  58. echo
  59. echo -n Please enter your Github username: ${} && read github_user
  60. goto utils_exit
  61. :testdistro
  62. echo This option will allow you to test booting an ISO using memdisk. Please
  63. echo specify the URL of the ISO you want to test and it will automatically
  64. echo attempt to load the ISO using memdisk.
  65. echo -n URL: ${} && read distro_iso
  66. kernel ${memdisk} iso raw
  67. initrd ${distro_iso}
  68. boot
  69. goto utils_exit
  70. :testpr
  71. clear github_user
  72. clear github_branch_or_hash
  73. echo This will chainload into a testing branch of netboot.xyz. You'll need to enter
  74. echo your Github username and the first part of the commit hash of the commit you want
  75. echo to test or the branch name. This assumes you are testing from a forked netboot.xyz
  76. echo repo.
  77. echo
  78. echo -n Specify Github username: ${} && read github_user
  79. echo -n Specify Github branch name or commit hash ( i.e. my_feature or 30b7ca ): ${} && read github_branch_or_hash
  80. echo
  81. echo Attempting to chainload branch or hash:
  82. 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
  83. goto utils_exit
  84. :utils_exit
  85. clear menu
  86. exit 0