UEFI-PXE-Boot (Asus t100 Tablet)
-
@K.Hays I understand what you are saying. If there is no dhcp scope assigned to 10.100.x.x. you are back to setting up wireshark on a mirror port.
I know the dev team was working on a utility that would act as a dhcp client so they could capture this info without having to setup a mirrored port and packet scanner. Let me see if they made any progress with this program.
-
@george1421 Any luck on that program?
-
@K.Hays The feedback I received was its not available yet.
Just because I’ve been dealing with multiple threads in these last few days. Do other computers on the same client subnet boot normally?
-
@george1421 yeah, they do.
-
@K-Hays said:
@george1421 yeah, they do.
That’s what I kind of expected. From what I’ve read so far I guess this is not a DHCP issue primarily - but more an issue with the USB NIC adapters. Can you try booting one of you normal PCs using those USB NIC adapters just to proof that they work.
The issue with USB NICs is that the firmware/BIOS needs to have a driver to PXE boot from it. In other words PC/tablet and USB NIC need to “work” together. So the USB NIC not working with one machine does not mean it wouldn’t work with any other. Please try out different things and keep us posted. Possibly as well get another adapter to try out. Check on our list as well… hape we can make this work! -
@Sebastian-Roth So i tested both of them on a regular desktop and i got the “Media Test Failure, Check Cable” error. It seems to me that it’s trying to boot form the regular nic. When booting to the usb it just said no device found or whatever. I dont know if there is a setting to change or whatnot, or if it really is just the adapters. the reason we didnt think it was the adapters was because the first one we got, wouldn’t show up at all on the tablets. It wouldn’t register as a boot device, but the next two we got did. So we figured it was on our side now. Is it just that none of these adapters work properly with pxe? Also if we use a regular nic on a purely uefi laptop, we get the pxe-18 error, which is server timeout,which is what we get with the tables when they are booting from the adapter. Don’t know if this is just a coincidence or not im not sure.
-
@K-Hays Sorry for the delay. Most days I just don’t have enough time to think about those complex (and interesting) problems as much as I’d like to. Today I found some more time to re-read and think about it.
Also if we use a regular nic on a purely uefi laptop, we get the pxe-18 error, which is server timeout,which is what we get with the tables when they are booting from the adapter. Don’t know if this is just a coincidence or not im not sure.
This and the mentioned subnets plus ip-helper stuff make me think that it’s not the adapters but a network configuration issue. The world best tool to find issues in your network is wireshark/tcpdump as you can really see what’s on the wire. Anything else is just guess work - which I prefer not to do because I mostly go wrong.
In this case I guess the packet dump wouldn’t hurt but probably won’t shed much light on this as the client simply never gets an answer from the DHCP. But as your normal clients seem to get an IP via DHCP (even in the 10.40.0.x subnet I suppose?!) I am wondering why don’t a PXE booting client is getting the information? My guess is the DHCP relay is not properly forwarding all the PXE information in the DHCP packets. I think you need to tell us more about the DHCP relay software you are using. Is it cisco ip-helpers or ISC-DHCP-RELAY or …? Please if possible post the configuration here (or send me a private message if you feel this information is too sensitive for the public). -
@Sebastian-Roth Hey, since summer hit we’ve been very busy with setting up lots of new things so i haven’t had time to check the forums. Also we are just going forward with regular maintenance on these for now, but I’d like to leave this topic open because it is something that we will need to figure out. If i have an off day ill test this and get back to you, but at the moment it will be on the back burner. Thanks for all of the help so far!
-
@K-Hays You are welcome to get back to this anytime. I am definitely interested to see if we can figure this out. I’m sure we will at some point…
-
Ahem
There is a way to image these with fog.
Supposedly you should be able to just enable the network stack in bios and then if it’s a ethernet adapter that’s recognized you can set it as a boot option or select it by hitting esc to bring up the boot menu.
However since that didn’t work for me, I found a different method.
It’s a little bit abstract, but not too hard, I promise, give it a chance.What I used (I did 64 bit efi, substitute 32 bit versions of .efi files if you wanted to do 32 bit)
- A usb hub, any hub with 3 or more ports should do. I was using a powered usb 3 4 port hub.
- I used the startech USB210000S2 Usb ethernet adapter. It has the SMC LAN 7500 chipset, which is the important part
- 2 usb drives, no substantial size needed. (you may get away with one, but I used 2)
- On the first FAT32 formatted usb drive you just need a couple files in the root of the drive
-
- the efi driver for the usb (found at this link http://ww1.microchip.com/downloads/en//softwarelibrary/obj-lan95xx-uefi/lan95xx_7500_uefi_driver_0.5.zip, also attached 0_1479851633433_SmscUsbNetDriver.efi , also credit where credit is due, I discovered this file via this blog post http://www.johnwillis.com/2014/03/pxe-booting-using-usb-to-ethernet-dongle.html) (also I renamed this to usb.efi for simplicity later)
-
- ipxe.efi from your /tftpboot folder on your fog server, copy it off with your favorite ftp/scp client. (or just download the latest one straight from the fog project github https://github.com/FOGProject/fogproject/raw/dev-branch/packages/tftp/ipxe.efi)
-
- You can also put these files on the root of the C drive
- On the second flash drive
-
- create a refind efi bootable flash drive using a tool like rufus https://rufus.akeo.ie/downloads/ to put the USB flash drive image on a usb drive via dd that you get from here http://www.rodsbooks.com/refind/getting.html
-
- It makes a ~6MB partition that I’m not sure can be extended to fit the other files
Now plug the usb ethernet adapter, and the flash drives into the usb hub and plug the usb hub into the asus t100 usb port (well technically I have a T100H, but this method also worked on a Fusion5 chinese tablet, RCA Cambio tablet, and the atom and core M versions of the intel compute stick).
Now boot to the bios to make sure the secure boot setting is off and the network stack is enabled. It will probably work regardless of the network stack setting, but better safe than sorry. (Note: I always seem to have to hold shift and hit restart from windows to force it to boot to uefi firmware)
Save changes and exit and start tapping esc
tapping esc on boot should bring up a boot menu. Select the refind EFI usb drive.
On the ReFInd gui boot screen select one of the efi shell options.at the efi shell find which fs (file system) your efi files are on (the ones put on either the second flash drive or the C drive) by running these commands
fs0: ls
keep incrementing fs# (fs0: fs1: fs3: etc.) until you see your ipxe.efi and usb driver files.
When you find them run these two commands to start the pxe boot#replace usb.efi with whatever you named the driver file load usb.efi ipxe.efi
It should start at ipxe initializing devices
If you use the 32bit versions, don’t forget to set your kernel and init in the fog gui for that host.
Another caveat to this method is you have to remember to change the mac address from the usb ethernet adapter to the wifi mac of the device in the fog gui.Sure it’s not as smooth a system as wake on lan to network boot, but as daunting as it looks it all takes less than a minute to get it booted to pxe.
If you have problems with this, you may try setting a static ip address for your adapter in dhcp and make sure it’s pointed to fog. I have the uefi/bios coexistence setup with the policies found in the fog wiki in my windows dhcp and it works perfect.
If you read all that and think, that’s too much work for so many devices. Well than get a few of these usb setups. I used this method on about 30 intel compute sticks (didn’t require the refind usb, they have a built in efi shell) and it didn’t take all that long.
In theory, I imagine it’s possible to image these with wifi, but that’s a challenge for another day.
-
@JJ-Fullmer I really want to understand your post (but I traveling right now). I would recommend that you repost this as tutorial in the tutorial section. I would like for this information to not be mixed into a thread. Just skimming this I think there is an alternate way to do part. But this is a brilliant guide.
-
@george1421
Thank you good sir. I did a quick quote of the post and added it to the tutorial section to go back later and write it nicerI added a Too long; Didn’t Read at the top for a quick overview of what the guide is saying.
I’m sure there are very many alternatives and possibilities. I know of a few, but the overall idea is the same. I would love to hear any thoughts you have. Replied in the other post to let this one die of course.
-
@JJ-Fullmer Thank you for the reply! Even after it’s been so long haha. I’ve been meaning to come back to this but it isn’t necessary for me until a break when it’s time to maintenance these computers. I will definitely try this when the opportunity arises. I did try to PXE boot one the other day and noticed that it got further than it had during the time this post was made. It still did not work and I didn’t pursue it any further, but with your guide it seems hopeful! Thank you again!
-
So its been almost a year now, but as summer maintenance is coming back up, these tablets are in question again. I was going to try what @JJ-Fullmer suggested, but i thought since it’s been a while ill try it normally once more. What i found was that it got to the point where it says “succeed to download NBP file” and then it proceeds to boot to windows. So it did connect to the fog server now.I would love to be able to do these without having to purchase several hubs/adapters/usb drives for the ability to have a good group going at once. If that’s what it comes to though, so be it. Also if it would be best to open a new topic, just let me know. Thank you!
Since it’s been a while here are the specs on the server
Fog Version: 1.4.0 - RC - 13
Ubuntu 16.04 -
@K.Hays What’s the boot file you’re using?
-
@Tom-Elliott So far we’ve tried ipxe.efi, snponly.efi, intel.efi, realtek.efi. That’s just today so far.
-
@K.Hays Are you using the latest versions of the ipxe files?
Because if you are try some older ones, like the ones labeled -7156 if you don’t have any sitting around.
I was imaging a compute stick today and it wouldn’t boot into fox with the latest ipxe.efi file, it did work with an older one I still had that usb drive from a year ago when I wrote this post. I’ve had varying results of newer ipxe.efi files and the efi shell boot method.
If the 7156 versions provided don’t work let me know and I’ll post the ones that are working for me right now. -
Let me preface this with, this is not a FOG issue directly. It is either a uefi firmware issue or an iPXE issue not supporting the hardware.
We have seen some pretty shoddy uefi pxe booting firmware on some vendor’s systems (I’m not implying this is the case here either). What I want to try with these ASUS T100 systems is this: We will create a iPXE usb boot drive to see if we can bypass the on-board firmware pxe boot. Hopefully we can get the ASUS T100’s into the fog menu. If the fog menu appears then we have a path forward for imaging these systems. If this doesn’t work then there is no reason to continue testing pxe boot kernels. Also, make sure you have the latest firmware install on these tablets since this issue is a year old. With any luck ASUS could have fixed the issue in the interim.
I want you to do this for this test:
- Acquire a usb flash drive that is at least 4MB in size (yes I said only 4MB, larger will work but we only need 4MB of space).
- Format that usb flash drive - fat32. You can do this on a windows box or a linux box. The format must be fat32.
- On that newly formatted flash drive create the following path \EFI\BOOT (case should not be important, but use all caps as I posted).
- Now you will need 2 of the iPXE files from the fog server.
Copy /tftpboot/ipxe.efi to \EFI\BOOT as BOOTX64.EFI
Copy /tftpboot/i386-efi/ipxe.efi to \EFI\BOOT as BOOTIA32.EFI - Eject the usb flash drive and then attempt to boot this ASUS device from the usb drive using the device’s boot menu.
If the ipxe.efi files don’t work, please repeat the process above except use ipxe7156.efi from the fog server instead. For both the x64 and x86 files.
-
@george1421 said in UEFI-PXE-Boot (Asus t100 Tablet):
\EFI\BOOT
Yep, that worked to get to the menu with the ipxe.efi file. So then what next?
@JJ-Fullmer Also i had not tried your guide yet, i was wondering if there was an option other than that (since it had gotten further) but it seems like that is not the case
-
@K.Hays Whelp, that means that iPXE kernel is OK and it boots into fog’s iPXE menu. So the issue is the hand-off between the onboard PXE rom and the iPXE kernel. In a nutshell this is a firmware issue with the hardware.
So what can you do?
- Confirm that these tablets have the latest firmware installed and test again.
- Contact the vendor and report this firmware bug.
- Decide to move forward with usb booting and imaging that way. The iPXE kernel on the usb flash drive is taking over the responsibility to boot into the FOG kernel, we are just bypassing the faulty uefi firmware.