opensuse.ipxe.j2 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!ipxe
  2. # openSUSE Operating System
  3. # http://opensuse.org
  4. isset ${dhcp-server} || goto static_ip
  5. set netsetup netsetup=dhcp
  6. goto goto_menu
  7. :static_ip
  8. # Need to convert netmask into prefix, because otherwise the installer
  9. # accepts it but configures the network with /32 prefix, which installs
  10. # fine but breaks connectivity to devices in the same network.
  11. set prefix 32
  12. iseq ${netmask} 0.0.0.0 && set prefix 0 ||
  13. iseq ${netmask} 128.0.0.0 && set prefix 1 ||
  14. iseq ${netmask} 192.0.0.0 && set prefix 2 ||
  15. iseq ${netmask} 224.0.0.0 && set prefix 3 ||
  16. iseq ${netmask} 240.0.0.0 && set prefix 4 ||
  17. iseq ${netmask} 248.0.0.0 && set prefix 5 ||
  18. iseq ${netmask} 252.0.0.0 && set prefix 6 ||
  19. iseq ${netmask} 254.0.0.0 && set prefix 7 ||
  20. iseq ${netmask} 255.0.0.0 && set prefix 8 ||
  21. iseq ${netmask} 255.128.0.0 && set prefix 9 ||
  22. iseq ${netmask} 255.192.0.0 && set prefix 10 ||
  23. iseq ${netmask} 255.224.0.0 && set prefix 11 ||
  24. iseq ${netmask} 255.240.0.0 && set prefix 12 ||
  25. iseq ${netmask} 255.248.0.0 && set prefix 13 ||
  26. iseq ${netmask} 255.252.0.0 && set prefix 14 ||
  27. iseq ${netmask} 255.254.0.0 && set prefix 15 ||
  28. iseq ${netmask} 255.255.0.0 && set prefix 16 ||
  29. iseq ${netmask} 255.255.128.0 && set prefix 17 ||
  30. iseq ${netmask} 255.255.192.0 && set prefix 18 ||
  31. iseq ${netmask} 255.255.224.0 && set prefix 19 ||
  32. iseq ${netmask} 255.255.240.0 && set prefix 20 ||
  33. iseq ${netmask} 255.255.248.0 && set prefix 21 ||
  34. iseq ${netmask} 255.255.252.0 && set prefix 22 ||
  35. iseq ${netmask} 255.255.254.0 && set prefix 23 ||
  36. iseq ${netmask} 255.255.255.0 && set prefix 24 ||
  37. iseq ${netmask} 255.255.255.128 && set prefix 25 ||
  38. iseq ${netmask} 255.255.255.192 && set prefix 26 ||
  39. iseq ${netmask} 255.255.255.224 && set prefix 27 ||
  40. iseq ${netmask} 255.255.255.240 && set prefix 28 ||
  41. iseq ${netmask} 255.255.255.248 && set prefix 29 ||
  42. iseq ${netmask} 255.255.255.252 && set prefix 30 ||
  43. iseq ${netmask} 255.255.255.254 && set prefix 31 ||
  44. iseq ${netmask} 255.255.255.255 && set prefix 32 ||
  45. set netsetup netsetup=hostip,gateway,nameserver hostip=${ip}/${prefix} gateway=${gateway} nameserver=${dns}
  46. :goto_menu
  47. set netsetup ${netsetup} BOOTIF=${netX/mac}
  48. set distro opensuse
  49. set os_arch ${arch}
  50. iseq ${os_arch} x86_64 && set os_arch x86_64 ||
  51. iseq ${os_arch} i386 && set os_arch i586 ||
  52. iseq ${os_arch} arm64 && set os_arch aarch64 ||
  53. menu openSUSE - ${os_arch}
  54. {% for item in releases.opensuse.versions %}
  55. item {{ item.code_name }} ${space} ${os} {{ item.name }}
  56. {% endfor %}
  57. choose version || goto opensuse_exit
  58. set dir ${opensuse_base_dir}/${version}/repo/oss
  59. iseq ${version} tumbleweed && set dir ${version}/repo/oss ||
  60. imgfree
  61. set kernel_url boot/${os_arch}/loader
  62. iseq ${os_arch} aarch64 && set kernel_url boot/${os_arch} ||
  63. kernel ${opensuse_mirror}/${dir}/${kernel_url}/linux ${netsetup} install=${opensuse_mirror}/${dir} ${params} {{ kernel_params }}
  64. initrd ${opensuse_mirror}/${dir}/${kernel_url}/initrd
  65. echo MD5sums:
  66. md5sum linux initrd
  67. boot
  68. :opensuse_exit
  69. clear menu
  70. exit 0