Lenovo x1 Carbon Gen 7, 8 & 9 USB NIC Issues
-
So I thought the kernal that @Sebastian-Roth had created for @michaeloberg (here) had remedied our inability to use USB NICs and enable MAC passthrough on these x1 Carbon laptops. While it’s closer than it had been, it’s not quite working as we’re now getting a “Chainloading” error:
As you can see, I’ve updated/recompiled my iPXE build to the latest available. I’m kinda at a loss as to what’s wrong here, so if anyone has an idea of where to go from here or something to try, please let me know. I would be happy to recreate the steps I’ve taken to get to this spot, so lemme know if that’s necessary, too.
Thanks!
-
@chaonatic Well there are a couple of things that need to be dissected here.
The issue from the other thread is that the mac address that iPXE is reporting is not the same as what FOG Linux (a.k.a The Kernel) is reporting.
So in your case is 00:2b:67:fa:25:c1 the mac address of the usb network adapter or the pass thru mac address?
When you go into the normal kernel into hardware compatibility, what does FOS Linux report? On the same computer what does Windows report as the mac address? We really need to look at what’s broken to know where to focus. Yes that other thread has the same root problem, but I bet your circumstances are different.
Lets find out about your configuration.
As for the exec error. This is typically when you try to load a non-uefi kernel into a uefi firmware. Hopefully you placed the file in
/var/www/html/fog/service/ipxe
directory. You can check the file by going into that directory and keying infile bzImage<and the name of the file I'm too lazy to duplicate>
it should report its a kernel and read its kernel version. -
@chaonatic The error seen in the picture points to a spelling issue in the filename I am pretty sure. Linux is case sensitive! Make sure it’s named exactly as seen in the picture.
-
@sebastian-roth said in Lenovo x1 Carbon Gen 7, 8 & 9 USB NIC Issues:
@chaonatic The error seen in the picture points to a spelling issue in the filename I am pretty sure. Linux is case sensitive! Make sure it’s named exactly as seen in the picture.
So sorry for the late reply, it’s been a… month. So the reason this was “spelled wrong” wasn’t that it was actually spelled wrong, it was that I had transferred the kernel over prior to compiling the iPXE client. I used the “poor man’s” method for getting the package in the right location by reinstalling FOG after compile, thereby overwriting the directory housing the kernels… d’oh! Thanks for bringing this to my attention, @Sebastian-Roth, after putting the modified kernel back it worked a charm!
So this is all good. The modified kernel is working on the gen 6, 7 & 8 Lenovo x1 Carbon with the Lenovo ThinkPad Ethernet Adapter. However… when I attempt to PXE boot off of the ThinkPad USB-C Dock or a USB-C NIC with MAC passthrough enabled, iPXE bombs out with the following:
Error: https://ipxe.org/err/380861If I disable MAC passthrough it boots just fine. I can only surmise, based on logic and my oh-so-limited knowledge of coding, that this is actually a timeout issue rather than a driver issue (since I had updated to the latest iPXE code as of two weeks ago).
So, how do I:
- Make modified kernel the FOG default?
And - Test the iPXE timeout or fix this issue when we attempt to image laptops on the dock…?
Thanks again, y’all are my heroes!
- Make modified kernel the FOG default?
-
@george1421, @Sebastian-Roth, do either of you have an idea on how I can implement the first bullet point (I assume I just rename the kernel, but want to make sure,) and how I can test/fix the second bullet point? tia
-
@chaonatic said in Lenovo x1 Carbon Gen 7, 8 & 9 USB NIC Issues:
@george1421, @Sebastian-Roth, do either of you have an idea on how I can implement the first bullet point (I assume I just rename the kernel, but want to make sure,)
What I would do here is not rename the kernel at this point. If you do the next update to FOG might overwrite the “fixed” kernel. But this approach is also a double edged sword. If you forget what will do here, you might end up running this older, yet fixed kernel in the future. With the warnings out of the way. What I’m going to recommend is that you go into FOG Configuration -> FOG Settings, then hit the expand all button. Search that page for
bzImage
update that field to match the new kernel name. You can leave the bzImage32 as it is because that kernel is only used for 32 bit processors. Save your settings. Now every computer that boots into FOG Imaging will use that updated kernel.and how I can test/fix the second bullet point?
This one is a bit more complicated to answer. I know there are a set if iPXE bootloaders that contain a 10 second timeout for the network to settle before it tries to init the network. If you loog on the fog server in /tftpboot. There should be a directory something about 10secdelay or like that. In there, there is similar files to the main directory. So to use them in your dhcp server, in the configuraiton for uefi booting change the field from
ipxe.efi
to10secdelay/ipxe.efi
or what ever the parent directory is called for those delay ipxe boot loaders. -
@george1421 said in Lenovo x1 Carbon Gen 7, 8 & 9 USB NIC Issues:
What I’m going to recommend is that you go into FOG Configuration -> FOG Settings, then hit the expand all button. Search that page for
bzImage
update that field to match the new kernel name.Ahhh, perfect! Thanks (and duh!) that’s a far better option way to do it.
This one is a bit more complicated to answer. I know there are a set if iPXE bootloaders that contain a 10 second timeout for the network to settle before it tries to init the network. If you loog on the fog server in /tftpboot. There should be a directory something about 10secdelay or like that. In there, there is similar files to the main directory. So to use them in your dhcp server, in the configuraiton for uefi booting change the field from
ipxe.efi
to10secdelay/ipxe.efi
or what ever the parent directory is called for those delay ipxe boot loaders.Okay, I changed the boot file name and it did do the 10 second delay, but it’s still not PXE booting off of a USB-C NIC or the dock. Any other ideas I could try?
Thanks @george1421!
-
@chaonatic said in Lenovo x1 Carbon Gen 7, 8 & 9 USB NIC Issues:
Okay, I changed the boot file name and it did do the 10 second delay, but it’s still not PXE booting off of a USB-C NIC or the dock. Any other ideas I could try?
OK then I may ask you to hit the
s
key on your keyboard when asked to do so. Wait for another 30 seconds and then key in the following commands, take a picture and post here:ifstat dhcp net0