[GH-ISSUE #162] multi-arch support #73

Closed
opened 2026-02-27 14:50:15 +03:00 by kerem · 23 comments
Owner

Originally created by @aeryncaen on GitHub (Jun 28, 2017).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/162

Originally assigned to: @antonym on GitHub.

It would be lovely to see support for multiple architectures, especially ARM

Originally created by @aeryncaen on GitHub (Jun 28, 2017). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/162 Originally assigned to: @antonym on GitHub. It would be lovely to see support for multiple architectures, especially ARM
Author
Owner

@antonym commented on GitHub (Jun 29, 2017):

Will probably start looking at this in the coming weeks... anything in particular your looking for?

<!-- gh-comment-id:311831554 --> @antonym commented on GitHub (Jun 29, 2017): Will probably start looking at this in the coming weeks... anything in particular your looking for?
Author
Owner

@aeryncaen commented on GitHub (Jul 8, 2017):

Arch for ARM, ubuntu for ARM, CoreOS for ARM. Those I think cover most use-cases for ARM right now

<!-- gh-comment-id:313874074 --> @aeryncaen commented on GitHub (Jul 8, 2017): Arch for ARM, ubuntu for ARM, CoreOS for ARM. Those I think cover most use-cases for ARM right now
Author
Owner

@yzgyyang commented on GitHub (Aug 21, 2017):

It would be awesome if FreeBSD for ARM is available!

<!-- gh-comment-id:323757550 --> @yzgyyang commented on GitHub (Aug 21, 2017): It would be awesome if FreeBSD for ARM is available!
Author
Owner

@marcmerlin commented on GitHub (Jul 26, 2018):

Just to confirm, can netboot.xyz be installed on any arm64 platform at the moment?
Like hikey960 https://www.96boards.org/product/hikey960/
Or vim2 https://www.khadas.com/vim
?

<!-- gh-comment-id:408239826 --> @marcmerlin commented on GitHub (Jul 26, 2018): Just to confirm, can netboot.xyz be installed on any arm64 platform at the moment? Like hikey960 https://www.96boards.org/product/hikey960/ Or vim2 https://www.khadas.com/vim ?
Author
Owner

@marcmerlin commented on GitHub (Jul 27, 2018):

Actually I see "arm64" in http://boot.netboot.xyz/boot.cfg. Is there any pre-built image that works on any arm64 platform?

<!-- gh-comment-id:408273271 --> @marcmerlin commented on GitHub (Jul 27, 2018): Actually I see "arm64" in http://boot.netboot.xyz/boot.cfg. Is there any pre-built image that works on any arm64 platform?
Author
Owner

@vielmetti commented on GitHub (Oct 8, 2019):

Offering to help here with @worksonarm resources, per https://github.com/WorksOnArm/cluster/issues/179 and hoping to get this taken care of during my hacking time at Arm TechCon Oct 8-10 in San Jose. (Expo tickets free.)

cc @edolnx

<!-- gh-comment-id:539455525 --> @vielmetti commented on GitHub (Oct 8, 2019): Offering to help here with @worksonarm resources, per https://github.com/WorksOnArm/cluster/issues/179 and hoping to get this taken care of during my hacking time at Arm TechCon Oct 8-10 in San Jose. (Expo tickets free.) cc @edolnx
Author
Owner

@antonym commented on GitHub (Oct 8, 2019):

I put a PR up to split the menus by arch and to add an option for testing github branches on arm in the menu, which should make things easier to hack on as you'll be able to put changes in your own branch and then reload the menu from that branch.

https://github.com/antonym/netboot.xyz/pull/364

I played around with CentOS a bit last week and it appears to get an exec format error when loading up the installer kernels on a packet host running EFI. I'm not sure if this is related to the installer kernels being compressed (need to test an uncompressed image) or if we need to use an EFI stub of some sort to load the kernel up. I'd guess it'll be a similar issue with the other install kernels as well that'll need to be worked through.

<!-- gh-comment-id:539535472 --> @antonym commented on GitHub (Oct 8, 2019): I put a PR up to split the menus by arch and to add an option for testing github branches on arm in the menu, which should make things easier to hack on as you'll be able to put changes in your own branch and then reload the menu from that branch. https://github.com/antonym/netboot.xyz/pull/364 I played around with CentOS a bit last week and it appears to get an exec format error when loading up the installer kernels on a packet host running EFI. I'm not sure if this is related to the installer kernels being compressed (need to test an uncompressed image) or if we need to use an EFI stub of some sort to load the kernel up. I'd guess it'll be a similar issue with the other install kernels as well that'll need to be worked through.
Author
Owner

@vielmetti commented on GitHub (Oct 8, 2019):

^ yes @antonym there has generally been a need to test uncompressed kernels; I don't recall where the lack of compression tools happens, but generally speaking vmlinux good, vmlinuz bad.

<!-- gh-comment-id:539706766 --> @vielmetti commented on GitHub (Oct 8, 2019): ^ yes @antonym there has generally been a need to test uncompressed kernels; I don't recall where the lack of compression tools happens, but generally speaking `vmlinux` good, `vmlinuz` bad.
Author
Owner

@NiKiZe commented on GitHub (Oct 8, 2019):

IPXE does not perform any decompression, so in the cases where the kernel can't decompress itself or initrd it will fail, in EFI kernel must be a valid efi binary, with the correct bitness. You can check in iPXE efi with imgstat, also auto detection of arch and bitness should be used IMHO.

<!-- gh-comment-id:539734851 --> @NiKiZe commented on GitHub (Oct 8, 2019): IPXE does not perform any decompression, so in the cases where the kernel can't decompress itself or initrd it will fail, in EFI kernel must be a valid efi binary, with the correct bitness. You can check in iPXE efi with imgstat, also auto detection of arch and bitness should be used IMHO.
Author
Owner

@antonym commented on GitHub (Oct 16, 2019):

I was able to get CentOS 8 text installer booting on a packet arm host by passing through ipxe -> grub -> centos installer kernels by just adding a variable and loading the grub EFI bootloader. This method didn't require modification/decompressing the installer kernels.

It's not the most ideal but it does appear to work. To try it out, you can boot an arm instance via packet PXE via https://boot.netboot.xyz, select ipxe shell and punch this in:

set net0/root-path centos-8-aarch64-text
kernel https://boot.netboot.xyz/grub/grubaa64-1.efi
boot
<!-- gh-comment-id:542843032 --> @antonym commented on GitHub (Oct 16, 2019): I was able to get CentOS 8 text installer booting on a packet arm host by passing through ipxe -> grub -> centos installer kernels by just adding a variable and loading the grub EFI bootloader. This method didn't require modification/decompressing the installer kernels. It's not the most ideal but it does appear to work. To try it out, you can boot an arm instance via packet PXE via https://boot.netboot.xyz, select ipxe shell and punch this in: ``` set net0/root-path centos-8-aarch64-text kernel https://boot.netboot.xyz/grub/grubaa64-1.efi boot ```
Author
Owner

@github-actions[bot] commented on GitHub (Nov 24, 2020):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

<!-- gh-comment-id:732531605 --> @github-actions[bot] commented on GitHub (Nov 24, 2020): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Author
Owner

@vielmetti commented on GitHub (Nov 24, 2020):

Based on https://github.com/netbootxyz/netboot.xyz/issues/162#issuecomment-542843032 it looks like this might have an acceptable workaround for booting on Arm servers. Next time I'm in Fedora-land I'll try to replicate again.

<!-- gh-comment-id:733024772 --> @vielmetti commented on GitHub (Nov 24, 2020): Based on https://github.com/netbootxyz/netboot.xyz/issues/162#issuecomment-542843032 it looks like this might have an acceptable workaround for booting on Arm servers. Next time I'm in Fedora-land I'll try to replicate again.
Author
Owner

@antonym commented on GitHub (Nov 24, 2020):

It just needs some more research and trial and error. I don't really have any access to arm64 machines currently but if I can get access to resources, I can probably see how much further I can get. I have a netboot.xyz POC iPXE boot loader working on an RPI4 but there are a lot of little oddities to work around with on it.

<!-- gh-comment-id:733027821 --> @antonym commented on GitHub (Nov 24, 2020): It just needs some more research and trial and error. I don't really have any access to arm64 machines currently but if I can get access to resources, I can probably see how much further I can get. I have a netboot.xyz POC iPXE boot loader working on an RPI4 but there are a lot of little oddities to work around with on it.
Author
Owner

@vielmetti commented on GitHub (Nov 24, 2020):

@antonym There's a project at @WorksOnArm with support for netboot.xyz that has been approved, but I'm guessing that there's no current use of that account / those systems. Let me know if you're interested here or at https://github.com/WorksOnArm/cluster/issues/179 and I can get you a system to test against.

<!-- gh-comment-id:733035665 --> @vielmetti commented on GitHub (Nov 24, 2020): @antonym There's a project at @WorksOnArm with support for netboot.xyz that has been approved, but I'm guessing that there's no current use of that account / those systems. Let me know if you're interested here or at https://github.com/WorksOnArm/cluster/issues/179 and I can get you a system to test against.
Author
Owner

@antonym commented on GitHub (Nov 24, 2020):

@vielmetti Yeah, I'd be interested to hack on it here and there when I have some extra cycles. I know we had started something there but it never seemed to get off the ground.

<!-- gh-comment-id:733046364 --> @antonym commented on GitHub (Nov 24, 2020): @vielmetti Yeah, I'd be interested to hack on it here and there when I have some extra cycles. I know we had started something there but it never seemed to get off the ground.
Author
Owner

@github-actions[bot] commented on GitHub (Dec 25, 2020):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

<!-- gh-comment-id:751148958 --> @github-actions[bot] commented on GitHub (Dec 25, 2020): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Author
Owner

@vielmetti commented on GitHub (Jun 28, 2021):

If there's anyone with spare cycles and interest for this, I have a use case and user for it (they are stuck trying to get OpenSUSE booted). @antonym I don't know where things stand on this or generally with the project but if you're willing to give it a go....

<!-- gh-comment-id:870068261 --> @vielmetti commented on GitHub (Jun 28, 2021): If there's anyone with spare cycles and interest for this, I have a use case and user for it (they are stuck trying to get OpenSUSE booted). @antonym I don't know where things stand on this or generally with the project but if you're willing to give it a go....
Author
Owner

@antonym commented on GitHub (Jun 28, 2021):

Still waiting for some equipment or resources to test on. I really only have access to x86 hardware currently other than a few raspberry pi's. If I can get physical or remote access to some arm hardware, I can set aside some time to look into it.

<!-- gh-comment-id:870071244 --> @antonym commented on GitHub (Jun 28, 2021): Still waiting for some equipment or resources to test on. I really only have access to x86 hardware currently other than a few raspberry pi's. If I can get physical or remote access to some arm hardware, I can set aside some time to look into it.
Author
Owner

@anthr76 commented on GitHub (Jun 29, 2021):

@vielmetti I was successful with a older compile of PiPXE from @antonym 's fork opensuse kubic... Though failing to chain now with HTTP.

<!-- gh-comment-id:870680919 --> @anthr76 commented on GitHub (Jun 29, 2021): @vielmetti I was successful with a older compile of PiPXE from @antonym 's fork opensuse kubic... Though failing to chain now with HTTP.
Author
Owner

@antonym commented on GitHub (Jun 29, 2021):

I ran into some hiccups on the RPI mainly when trying to load the images that looked similar to this where it would hang after loading the EFI stub:

https://pbs.twimg.com/media/E4u0TF2XoAkcDd3?format=png&name=small

<!-- gh-comment-id:870684960 --> @antonym commented on GitHub (Jun 29, 2021): I ran into some hiccups on the RPI mainly when trying to load the images that looked similar to this where it would hang after loading the EFI stub: https://pbs.twimg.com/media/E4u0TF2XoAkcDd3?format=png&name=small
Author
Owner

@antonym commented on GitHub (Aug 28, 2021):

Put some changes up today with https://github.com/netbootxyz/netboot.xyz/pull/971 that allows arm64 builds to now work. I've been able to load up several kickstart builds successfully with these changes so far.

<!-- gh-comment-id:907697876 --> @antonym commented on GitHub (Aug 28, 2021): Put some changes up today with https://github.com/netbootxyz/netboot.xyz/pull/971 that allows arm64 builds to now work. I've been able to load up several kickstart builds successfully with these changes so far.
Author
Owner

@antonym commented on GitHub (Sep 2, 2021):

Framework and a few arm64 installers are rolled out now so closing this up. Hopefully, we can start adding additional operating systems on arm over time as we can test and qual them.

<!-- gh-comment-id:911115748 --> @antonym commented on GitHub (Sep 2, 2021): Framework and a few arm64 installers are rolled out now so closing this up. Hopefully, we can start adding additional operating systems on arm over time as we can test and qual them.
Author
Owner

@razvanphp commented on GitHub (Apr 29, 2024):

so basically we should be able to use netboot.xyz.efi on an ARM device? Or only specific images?

I tried and I get nothing after I see it downloaded the image but then a blank screen and goes back into the boot selection menu. Trying on Nvidia Jetson SoC, with live-arm.ipxe the same...

»Start PXE over IPu4.
Station IP address is 192.168.10.178
Server IP address is 192.168.10.2
NBP filename is live-arm.ipxe
NBP filesize Is 468 Bytes
Downloading NBP file...
NBP file downloaded successfully.

LE: worked with netboot.xyz-arm64.efi, which makes sense, my bad.

Can we somehow join the menus so that they work on both archs? Asking because many DHCP servers do not work with multi arch, like Unifi, would be nice to handle this internally in netboot.

<!-- gh-comment-id:2083306143 --> @razvanphp commented on GitHub (Apr 29, 2024): so basically we should be able to use `netboot.xyz.efi` on an ARM device? Or only specific images? I tried and I get nothing after I see it downloaded the image but then a blank screen and goes back into the boot selection menu. Trying on Nvidia Jetson SoC, with `live-arm.ipxe` the same... ``` »Start PXE over IPu4. Station IP address is 192.168.10.178 Server IP address is 192.168.10.2 NBP filename is live-arm.ipxe NBP filesize Is 468 Bytes Downloading NBP file... NBP file downloaded successfully. ``` LE: worked with `netboot.xyz-arm64.efi`, which makes sense, my bad. Can we somehow join the menus so that they work on both archs? Asking because many DHCP servers do not work with multi arch, like Unifi, would be nice to handle this internally in netboot.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/netboot.xyz#73
No description provided.