Windows on ARM
-
@george1421
I have mode some progress: Using FOG 1.5.10.1593 on Ubuntu Server 24.04
I was able to find the DHCP boot parameters using wireshark, and I’ve added this to my dhcpd.conf:class "UEFI-ARM64" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00011"; filename "arm64-efi/snponly.efi"; }
This makes the iPXE part work and I can boot to the FOG menu. I then tried to run a Full Host Registration. The first problem was that FOG is sending it the x86 bzImage and init, so I (temporarily) made this change to the FOG config, having downloaded the ARM kernel and the ARM init using the FOG GUI.
This gets me a little further but now the process stops here for a few seconds, then the laptop reboots. Same hapens if I try the Compatability Checker.
So currently the summary is that FOG is sending the x86 bzImage and init, and when I hack it to send the ARM ones, those don’t work.
I don’t remember which version of the ARM inits and kernels I tried, so I’ll try a few more and if I get any further I’ll post back.
-
@MarkG So that leaves me with a few notes already:
- Need a storage for global arm Kernel and Init
- Need to associate architecture to appropriate kernel/init.
- Later we need to get kernel/init actually loading/booting?
-
Need a storage for global arm Kernel and Init
Need to associate architecture to appropriate kernel/init.Yeah. I don’t know how you detect that you need the ARM kernels at that point but atm it thinks it needs to send the x86 kernels. (I’m not actually using any x86 PCs so I haven’t actually broken anything by changing that config )
Later we need to get kernel/init actually loading/booting?
Not completely sure I’ve understood that, but with the config hack I’ve done it is definitely downloading the arm_Image and the ARM init, I can see that the filenames are correct just before it gets to the point where it stops.
I tried the most recent 3 builds (including the experimental one) of the ARM kernels and inits but it made no difference.
-
@MarkG What i mean is loading the actual system.
RIght now it seems (to me from the image provided) that it doesn’t get you into FOS. It loads, just gets stuck?
-
@Tom-Elliott
Yes I think that’s correct if I’m correct that getting into FOS would mean the kernel started to boot. What you see there is what happens immediately after I make a selection from the FOG menu. It downloads the kernel and the init. The next thing that appears onscreen is what you see there, and then after a couple of seconds it reboots. -
@george1421 Thanks for such a fast and detailed response. Yes I fully understand that we are in uncharted waters and that few people have this hardware yet so I am happy to be usefull to the community with these devices for as long as I can keep them before they are provisioned.
I will attempt to do this after the weekend and report back my results.
How do I go about this step? “Get that file name and key it into the dhcp server/s option 67 value”
-
@Tom-Elliott said in Windows on ARM:
So that leaves me with a few notes already:
Tom, I did some testing back in 2021 trying to get a rpi to pxe boot. I never did but here is what I found with FOG and a few changes that needed to happen: https://forums.fogproject.org/topic/14959/raspberry-pi-4-unable-to-pxe-boot
I’m only adding this here for reference.
-
@stokehall said in Windows on ARM:
How do I go about this step? “Get that file name and key it into the dhcp server/s option 67 value”
The question back to you is what is your dhcp server for the imaging network? That is where you would set the value for the boot loader. BUT the OP of this thread has already done that and has proven how to get into the FOG iPXE menu, so the inits work. He has already figured out the arch type (11) for the dhcp server (what i needed the tcpdump/wireshark pcap for). Right now we have an issue with the fos linux (engine that clones disks) starting up. If I remember right the person that developed the FOG arm kernel was building it for a cortex CPU. It might not have all of the bits in it needed to boot the dell/lenovo. This is nothing unsolvable, we just need to find out about the processors in your system(s) and look at the kernel configs. This hardware is so new there aren’t a lot of info out there about it.
It would be interesting to see if you could find a live linux OS for the arm cpus and get that to boot. We could then reverse engineer the kernel settings for that live boot OS. (just thinking out loud)
-
@MarkG said in Windows on ARM:
class “UEFI-ARM64” {
match if substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00011”;
filename “arm64-efi/snponly.efi”;
}Well done working out the hard bits. It sounds like there needs to be some fog ui updates and we need to get that FOS kernel to boot cleanly. In the FOG Global configuration settings. There should be a field for log level, set that to 7 to see if there are any additional log entries that gets displayed. The default value of 0 or 4 masks most of the kernel messages. The level 7 is only used for debugging.
-
FWIW It looks like snapdragon support will first be available in linux kernel 6.11
https://www.phoronix.com/news/Qualcomm-Adreno-X1-85-GPU-Linux
additional linux support docs
https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-3/features.html -
I will be getting a snapdragon laptop on Monday for FOG/FOS testing.
It looks like kernel 6.11 will most likely be released Sunday but there already is a release candidate that I could build to test with.@Tom-Elliott Implemented some changes to support ARM by default on the 1.6-alpha branch of FOG.
I am currently porting it over to the 1.5 dev-branch -
@rodluz On that laptop, what is the processor model? From what I’m gathering (I’m a bit ignorant on arm systems) but snapdragon is akin to the word pentium. There are a few models that fit behind that banner. Is your system the x elite or one of the older processors like the 850?
-
@george1421 I’m getting an X Plus, X1P-64-100 (10 cores up to 3.4GHz, NPU integrated). I’ll be getting an X Elite probably a few weeks later but from my understanding, they are the same generation.
-
@george1421 This is all very encouraging! I tried kernel debug level 7 but there was no additional information.
-
@rodluz I have 2 X-Elite’s one running Hyper-V which I am hoping to do the majority of testing in and one which is yet to be opened incase the business decides to return them.
edit: X Elite - X1E80100
-
@george1421 I was not thinking when I asked that, but have not got the laptops to the FOG menu, I tried to register but immediately failed as expected. Interestingly when I tried from a VM on the ARM Laptop I got a blank FOG menu and an error “synchronous exception at 0x00000000DE6A82DC”.
We are on FOG 1.5.10 and we are currently updating our UBUNTU to 24.04 LTS and will then install Kernel 6.11. I will try this afternoon to get linux to build on hyperV and then attempt to instal it on the second laptop.
-
@george1421 I have run the install for UBUNTU server 24.04.1 LTS ARM64 and that gives me the same error as MarkG,
I am going to continue to hunt for a live OS that will boot.
-
@stokehall said in Windows on ARM:
UBUNTU to 24.04 LTS and will then install Kernel 6.11
Just be aware the needed kernel is for fos linux and not the fog server’s host OS.
-
@stokehall said in Windows on ARM:
UBUNTU server 24.04.1 LTS ARM64 and that gives me the same error as MarkG,
Please keep testing, but I’m going to suspect the current class of linux kernels will need to be updated to 6.11 to support these new processors. Its the linux kernel devs that need to have one of these devices in their hands to debug. We’ll see mainstream linux support soon on this. This isn’t really a fog problem, but a linux kernel issue. We’ll get there when one of the fog developers have one of these systems soon too.
-
@george1421 is this the kernel that is downloaded and installed inside the fog web interface? I’m currently working through a tftp authentication issue to upgrade this.