PXE Boot HP X2 210 (Hybrid tablet Windows 10 Pro)
-
@Matthieu-Jacquart OK the fog kernel has passed with success. Now we need to identify why the ipxe handoff to the fog kernel is giving us a black screen. At this point I don’t have an answer. When I get to the office, I will try to see if I can find a system that does this.
@Sebastian-Roth Do you know the git version of ipxe that is currently deployed with the FOG trunk? I just checked the rom-o-matic and it has version d0bfd (which is different than yesterday morning)
-
Great stuff. So we know the kernel is fine. Funny that this is true for most of those new devices but we are still not sure why hand off from iPXE to the kernel does not work nicely.
Please try as George suggested to see if our client kernel is able to see and use your USB NIC. But if it does not, then this is a different issue as the initial black screen after the FOG menu. Not sure which one we should address first. Well let’s see. Hopefully you see if getting an IP.
So if you get some time you might want to test this ipxe.efi file with debugging for kernel image loading enabled (DEBUG=image_cmd). There might be lots of messages (in colors) scrolling past. Or maybe nothing. We will see how this behaves on your device. Please take a picture or video if you can (readable test is important!).
-
@Sebastian-Roth
What do you mean with “Please try as George suggested to see if our client kernel is able to see and use your USB NIC” ?I’ve just renamed 1454065283074-ipxe.efi as ipxe.efi and put it in tftpboot, check “FOG_KERNEL_DEBUG” in fog settings, but no difference, always blank screen after loding kernel.bz and init.xz…
-
@Matthieu-Jacquart Sorry, didn’t see you posted a picture already. So forget what I said about George’s suggestion. Network looks good!
Too bad that we don’t see anything even with his debug enabled ipxe.efi binary. Well then lets try another way. Here is a different ipxe.efi file which brings you to the iPXE shell. Then try the following commands. Hope I got this all right. Sorry for all the typing involved but hopefully we might see some kind hint where things go wrong.iPXE shell> dhcp ... iPXE shell> kernel http://${next-server}/fog/service/ipxe/bzImage loglevel=7 initrd=init.xz init=/sbin/init root=/dev/ram0 rw ramdisk_size=127000 pcie_aspm=off consoleblank=0 isdebug=yes ... iPXE shell> imgfetch http://${next-server}/fog/service/ipxe/init.xz ... iPXE shell> imgstat
Question is, what do you see after
imgstat
? Please take a picture. Then you can try booting it using the commandboot
. -
@Sebastian-Roth ok ok, let’s go… but which ipxe.efi file I have to use ?
-
@Matthieu-Jacquart Sorry, forgot to upload it! My fault. Here it is.
-
@Sebastian-Roth ok, I’m at home now, I’ll test this on monday
-
@Sebastian-Roth Ok, here it is :
When I launch boot command, nothing happens, it stays on this screen
-
@Matthieu-Jacquart While I don’t have an answer for you, this picture is interesting. The client requests the bzImage file and replies with file not found, but then a bit latter it does find the file. It does the same thing with the init. Eventually it does get down to boot and then stops.
It would be interesting to know what the apache logs look like at the same moments you get the above messages. I would inspect the apache error and access log. From the web server side does everything look normal where there is just three access requests for bzImage and then a few for the init? Or are there error messages logged in the apache error log?
This picture makes me ask more questions than it provides an aswer:
The question I have is the tablet not waiting long enough for the web server to respond with the file? Is there an error on the first few attempts and then it works? Is the web server slow to respond? Is your network connection faulty between the tablet and the web server?I also noted a bug in the image request (not related to your issue). The last 2 parameters are missing a space between “consoleblank=0isdebug=yes” should be “consoleblank=0 isdebug=yes”
-
@george1421 All error are my mistakes :
- I forgot blanck between “consoleblank=0 isdebug=yes”
- for replies “file not found”, I’ve just make error when I wrote the command. When it was weel written, it works immediately
I’m going to reproduce command without making mistakes
-
@Matthieu-Jacquart Hmmm, looks interesting. But as George already said this seams to throw up even more questions. Please take a look at the apache error and access logs to see what happened at that point.
And there are more typos which probably don’t cause an issue at this stage yet but might later on: “rw” instead of “rz”, missing ‘/’ in “init=/sbin/init” and “root=/dev/ram0”.
Can you please post the ouput of the following commands on your FOG server:
ls -al /var/www/fog/service/ipxe/bzImage ls -al /var/www/fog/service/ipxe/init.xz file /var/www/fog/service/ipxe/bzImage
Just want to see if the filesizes match and what version that kernel is.
-
@Sebastian-Roth I repeat ipxe shell command without error (I hope so…)
And for fog server command :
root@FOG:/opt/svn/trunk$ ls -al /var/www/fog/service/ipxe/bzImage -rw-r--r-- 1 fog www-data 6883968 f▒vr. 1 08:06 /var/www/fog/service/ipxe/bzImage root@FOG:/opt/svn/trunk$ ls -al /var/www/fog/service/ipxe/init.xz -rw-r--r-- 1 fog www-data 18747540 f▒vr. 1 08:05 /var/www/fog/service/ipxe/init.xz root@FOG:/opt/svn/trunk$ file /var/www/fog/service/ipxe/bzImage /var/www/fog/service/ipxe/bzImage: Linux kernel x86 boot executable bzImage, version 4.4.0 (root@debian64) #2 SMP Mon Jan 25 12:44:48 EST 2016, RO-rootFS, swap_dev 0x6, Normal VGA
-
@Matthieu-Jacquart after that is all done, (init’s loaded and kernel loaded into memory) I think you need to type boot.
-
@Matthieu-Jacquart Also, could you try the loading without the init=/sbin/init part? I know you’re doing a ton of work, but I’m only working of a theory as to the corruption of the file during load up.
-
@Matthieu-Jacquart So this looks good from my point of view. Sizes match and you have a very recent kernel image. Good on the one hand but we are still in a loss on why it just hangs on your machine. Looking at ways on how to get more output I found the linux kernel option earlyprintk. From what I read it needs to be enabled when compiling the kernel. Right now I am building one and will let you know about where to download and how to test it as soon as I have it ready.
-
@Tom-Elliott I typed “boot” after init and kernel loaded, but it always stays on this screen, nothing change.
After that, I typed command without init=/sbin/init but it seems similar
and boot always gives same result (I mean nothing ;))I can do all test you need, ideally in 2 weeks I had to have cloned these 32 tablet
-
So here we go. The new kernel command line with added parameters should be like this (all the other things stay the same):
iPXE shell> kernel http://${next-server}/fog/service/ipxe/bzImage_epk debug earlyprintk=efi loglevel=7 initrd=init.xz init=/sbin/init root=/dev/ram0 rw ramdisk_size=127000 pcie_aspm=off consoleblank=0 isdebug=yes
See I added two more parameters (sorry for all the typing!). Here you find a kernel file called bzImage_epk. Please download this and put it in /var/www/fog/service/ipxe/ on your FOG server. Keep the different name so you don’t have to move around your normal kernel. In the command shown above you see it referenced as bzImage_epk as well. Give this a try please.
-
@Sebastian-Roth OK done, but I saw no differences…
-
@Matthieu-Jacquart Thanks a lot for all the testing and pictures! No output from the kernel whatsoever?! This is a really hard one we are tackling here. Looking through the iPXE source code again I might have found some more debugging options we could try. Download this iPXE binary (DEBUG=image_cmd,image,efi_image) and give it a try. Will bring you to the shell again. Just try the same commands as before.
-
@Sebastian-Roth Its interesting here, in that bzImage (I suspect) is getting corrupted, where in my test bzImage was getting downloaded but instead the root fs was being corrupted (somehow). Again this is only speculation, but it seems consistent with the bzImage or init not making it to the client correctly to be executed.