PXE Boot HP X2 210 (Hybrid tablet Windows 10 Pro)
-
@Matthieu-Jacquart Meanwhile you can setup things to be prepared. Go back to the original ipxe.efi binary (so you don’t have to do all the typing). Make sure to register the USB NIC MAC address in the web interface by hand and add
debug earlyprintk=efi
to the kernel parameter for this host.
When I have a new kernel ready you can just go in /var/www/fog/service/ipxe, rename original bzImage to bzImage.orig and bzImage_ng to bzImage… Or change the name of the kernel via web interface (FOG configuration -> FOG settings …) and then boot the tablet. -
@Sebastian-Roth said:
Do you want to give this iPXE binary a try as well?
I would but you guys seem to have found success?
-
@Sebastian-Roth I create tablet on fog interface, I have to put “debug earlyprintk=efi” in “Host Kernel Arguments” right ?
-
@Wayne-Workman and @Matthieu-Jacquart Yes!
-
@Matthieu-Jacquart Here we go, get the new kernel image called bzImage_mj (just making up those extensions). Looking forward to what we will see.
-
@Sebastian-Roth Oh my personalized kernel, nice
Here you are
-
Ok, this is exactly where it hangs: http://lxr.free-electrons.com/source/arch/x86/boot/compressed/eboot.c#L473 (memcpy but allocation of memory seams fine further up in the code)
We’ll see if iPXE devs can help with this or we will need to get in contact with kernel devs as well. I am following this and will keep you all posted.
@Matthieu-Jacquart Meanwhile I’d ask you to try booting the bzImage_mj straight as UEFI binary from a USB stick to see if this works. We cannot use GRUB in between to check (I was told by Michael Brown) because “GRUB has the ability […] to treat the kernel as a bzImage rather than an EFI executable. This enters the kernel via a different path, which probably bypasses the code we’re looking at in eboot.c”
This can be done on Linux and Windows:
- Get an empty USB Stick, partition with one full primary partition (most probably already done!)
- Format with FAT32
- Create
X:\EFI\BOOT
(or/mnt/EFI/BOOT
) - copy and rename ‘bzImage_mj’ to
X:\EFI\BOOT\bootx64.efi
(or/mnt/EFI/BOOT/bootx64.efi
- Grap your tablet and boot of the USB stick in UEFI mode
If you get past the setup_efi_pci issue you will run into a kernel panic. But that’s ok. We just want to see if there is any difference booting the same kernel in real UEFI mode directly or via iPXE.
-
@Sebastian-Roth Ok done, I have exactly same screem than with ipxe boot
-
@Matthieu-Jacquart Thanks a lot for your fast reaction. I somehow thought/hoped this wouldn’t be the case and that it had something to do with iPXE. But from what we see now current main kernel is not able to directly EFI boot on your tablet. I really wonder why we don’t find other people having the same issue. Maybe this is still very new and most people use GRUB (bypassing the kernels efi_init)?!? I am trying to get in contact with kernel devs on this. But I cannot promise anything. Might take some hours but could be weeks as well. I just don’t know. But I am sure we are spot on the issue (which is the main factor for getting it fixed).
-
@Matthieu-Jacquart Just had the idea to try older kernels as well. Would you mind? Just download some older versions and put it on USB as done before. Lets see if any of these works. I doubt it - but it’s valuable information for the kernel devs!
http://sourceforge.net/projects/freeghost/files/KernelList/Kernel.TomElliott.4.1.2.64/download
http://sourceforge.net/projects/freeghost/files/KernelList/Kernel.TomElliott.3.19.3.64/download
http://sourceforge.net/projects/freeghost/files/KernelList/Kernel.TomElliott.3.17.4.64/download -
@Sebastian-Roth Tested but none of them work, screen stays black…
-
Fine then, waiting for some answers. Keeping my fingers crossed. Here if you want to follow:
http://forum.ipxe.org/showthread.php?tid=7938
http://article.gmane.org/gmane.linux.kernel.efi/7361 -
@Sebastian-Roth Thanks ! I cross all my fingers too…
-
Michael from the iPXE team asked if I could add some statements to print memory addresses. So I did. Please try booting bzImage_ad via iPXE and from USB stick and take a picture of both. Will be interesting to see if addresses are different. And hopefully Michael can interpret those numbers.
-
I found an interesting thing today while trying to narrow down on the kernel panics and testing theories of mine to what that issue may be.
My guess, most of the kernel panic’s are due to e1000e driver, though the physical nic is stated not to pose a problem, vmware e1000e does cause a kernel panic for me.
While trying to figure this out, I noticed my screens had a ton more info that most others. Thinking it was just differences in the loglevel fields, I decided to test it by setting my loglevel to 0. When I did this the value was blank in db and to browser there was a MORE messages than with loglevel set to 4. I fixed this issue as I want to always have a value defined, and in doing so it actually gave the proper value.
Why here do I write this? Because with a loglevel=0 set, it doesn’t return ANYTHING to the screen.
Can you update the loglevel setting on your server to the highest value? Maybe we’ll actually see info.
-
@Tom-Elliott Interesting find but I think this is not the case here. The screen stayed mostly blank even when Matthieu typed all the kernel parameters by hand (loglevel=7!). The kernel on his HP tablet freezes very early and we were able to get some output by adding statements to the kernel code. If you have 10 minutes read through the last 30 posts to see what we are up to.
-
@Sebastian-Roth ok done, but I saw no difference (I put loglevel to 7 in fog interface, just in case)
USB
iPXE
-
@Sebastian-Roth Very true. I just was hoping to see default behavior play a little bit better.
-
@Matthieu-Jacquart Ok, got some news. Hope you are still keen to keep on trying out things. Will be several tests and I will post a short message for each to not mix things up.
First please move your original ipxe.efi binary, download this (DEBUG=efi_wrap with some added dump code within HandleProtocol function) and put in place. This is with full embedded script so you don’t have to type all the commands in iPXE shell. Hope we still see the output! Boot your tablet on this using any of the kernels. Doesn’t really matter which one as they all fail on the same issue. Please take a picture of the screen when it freezes. Don’t need a video or several pictures of the whole process.
-
Ok, then I started to think about quick fixing the issue right in the kernel. The first try is to entirely skip the EFI PCI setup thing. I had the idea because when EFI boot was added to the kernel this PCI setup was not part of it but added later. From what I understand about this the setup code is mostly just loading optional PCI ROM BARs. Skipping this some PCI devices won’t work in the worst case I hope.
You might want to leave the debug ipxe.efi in place - shouldn’t hurt - and use bzImage_sp. There might be other things happening. I have no idea. I booted this kernel in my virtual QEMU test environment fine and hopefully it will boot up on your tablet just as well.