issue with netcard of dock gen2 of lenovo l390
-
I am also having issue with a similar device. I have the L390 yoga and the lenovo usb-c ethernet adapter that lenovo says is supported for pxe boot. I have the latest version of fog and get into bzimage but I was not able to complete imaging. I think it is in part because it first tries the “internal” ethernet adapter and then the pxe device. There is a ethernet port but it requires a special adapter, and that special adapter differs between the L390 and the X390 lenovo thinkpad models, but both of those (we have some of both) can use the usb-c ethernet adapter, so we went with the universal choice.
I also could not register the device in the fog pxe boot. Everytime I put in a hostname it just asked for it again. I just registered it in the gui with the usb-c adapter’s mac and queued it to upload.
I keep getting stuck at one of 2 different spots during the imaging process, either
Restoring Partition Tables (GPT) ..............DONE _
Then it just sits with a flashing cursor,
or it get through imaging the first partition and sits flashing.I did just update to the newest version of the bios and am getting the same behavior.
I have also tried doing a debug image session, but then it gives an error of something along the lines of ‘check your network connections’ and the task gets cleared.
I think that maybe something is getting hung up on the device having 2 ethernet adapters in a weird way, what’s fun is you can’t disable the internal one when using the usb-c one, just have to wait for the first one to fail during pxe boot and fog’s processesThere is a bios option to do mac-address passthru. I’m going to try setting it to use the internal mac for the usb-c adapter (adding the internal mac to the fog host first of course) and see if it makes a difference. When I did this and tried to then boot to fog to register, it didn’t get passed the pxe boot.
Also, I am using the uefi pxe booting and @jps appears to be using the legacy version of pxe boot. Just to note another difference in situations.
I was able to image a lenovo x390 yoga, but I used my old hackish method of booting to a usb with refind, going to the efi shell, loading the efi driver of a usb 2.0 ethernet adapter and then loading the ipxe.efi from the usb and that worked, but I didn’t have the usb-c adapter at the time. I haven’t tried doing that on the L390 because well I want the “supported” adapter we bought to work as intended for some weird reason.
-
Doing the mac passthru still fails to do pxe boot. It tries a
net0
adapter twice, each one failing and then gives a pxe dhcp error and then restarts.
Going to try the newest kernel, downloaded it as bzImage2 and will just use it on this device -
@JJ-Fullmer You really should start your own thread since the conditions are a bit different. Having a screen shot of the error would be helpful. Also remember there is iPXE (ipxe.efi) as well as FOS Linux (bzImage) in the mix. Knowing which one is having the error is helpful.
-
I was figuring that although the situation is a bit different the solution will probably be close to the same since it’s the same computer model and same ethernet adapter chipset. I believe @jps’s problem and my problem get down to FOS. I got pxe errors in trying different network configurations figured that it was network related
For me I don’t actually get an error message it just hangs like above. This is with the newest kernel available in the kernelupdate fog configuration screen, 5.1.16
I can go throw this in a new thread if you think that’s better.
-
I am now successfully imaging with my work around method that involves using a usb 2.0 “gigabit” ethernet adapter following the method I outlined here many moons ago.
Since the device is able to be imaged with a different ethernet adapter, I’m thinking that maybe there’s just a new driver that needs to be added to FOS. I have tried to find a .efi driver for this device but haven’t been able to find it available for download and there isn’t a way I have yet found to extract it from the built-in lenovo efi drivers. Maybe there’s a kernel option we can add in building that will help. I am very sure though that it’s tied around FOS and this lenovo usb-c ethernet adapter chipset. It will pxe boot just fine but then there are issues after that. It gets further along in the latest version of FOG than @jps is running but it isn’t quite working yet. Just need to find a way to add full support for this adapter and then this will be fixed.
-
@JJ-Fullmer Ok if we want to look deeper into the network adapter, can you provide what windows sees as the hardware ID for this troubled nic? We’ll need the vend_id and the hareware_id to cross it to a linux driver.
-
@george1421
Hardware ID - USB\VID_17EF&PID_720C&REV_3000
I’m not seeing the Vendor ID, but the driver Provider is realtekThe offical lenovo doc page can be found here https://support.lenovo.com/us/en/accessories/acc100324
I believe this is the page for the dock that this post and another is using that uses the same chipset/usb-c connection https://support.lenovo.com/us/en/accessories/acc500106
It looks like there are firmware updates for the dock option available here https://download.lenovo.com/cdrt/wp/usb-docks.html and there may be other helpful information, but it looks mostly centered around windows
It is also possible that the usb-c port is what needs a new linux driver. There are also 2 usb-c ports on the device I believe, one that has power delivery and one that does not, I did not try both ports.
-
@JJ-Fullmer said in issue with netcard of dock gen2 of lenovo l390:
I’m not seeing the Vendor ID, but the driver Provider is realtek
Ugh, realtek… nuff said…
Will you boot in FOG Linux debug mode and key in
lsusb
and post the output here. (sorry I forgot it was a usb network adapter). -
@george1421 I will when I image the next one, which might be today might be tomorrow.
-
@george1421
This is what I see when I tried to boot to fog on the second one. Same usb-c adapter, same model, same just updated bios version. It isn’t the same ethernet cable but it’s connected to the network through the same switch. I did reboot my fogserver (adding more space for an unrelated issue), so there’s an outside chance something changed at the fogserver dhcp level, but unlikely.However I was able to register it in the gui and then it gave similar output when booting to a debug task, said it didn’t get an ip via dhcp and then the fog debug stuff came up…Don’t I require a network connection to get the network hosted FOS system on the machine via pxe? ifconfig in the debug session makes it look like it indeed doesn’t have an ip, however the usb-c ethernet adapter is blinking. The ifconfig devices don’t show one with the macaddr of the usb-c. All of that is really just to say, this is why I’m not copy pasting text output and just putting a screenshot.
I can do much more debugging on this tomorrow. We ordered the alternate ethernet adapters to see if they work better natively on these devices, they use an intel chipset. But I’m happy to do all I can to make the usb-c ethernet on these work for everyone, as that’s a better answer than go spend more money on a different proprietary adapter
-
@JJ-Fullmer Ok as we already know its a realtek 8153 chipset. From the
lsusb
command its the first one [17ef:720c].Not detecting a carrier is something that seems to be symptomatic of this linux kernel driver with this chipset. Looking at the kernel code it looks like the RTL8152/8153 is at version 1.10.10 and I’ve found a driver on github at 2.12 https://github.com/wget/realtek-r8152-linux
Looking at the torvalds github site (if that’s real), it looks like the r8152.c driver was updated 22 days ago adding a device ID for the Lenovo Thinkpad USB-C dock Gen2 (which may address the OPs issue). https://github.com/torvalds/linux/blob/master/drivers/net/usb/r8152.c
It may be worth it to pull this r8152.c driver and rebuild the FOS Linux kernel to see if it changes anything.
-
@JJ-Fullmer The r8152.c from the torvalds github site failed to compile on 4.19.65, I’m suspecting its for a later release of linux. The version from the torvalds site was 1.10.10. The version in 4.19.65 was 1.9.9 of the realtek driver.
I was able to compile the realtek driver from the wget github site. This version is 2.12. Here is a link to that kernel with the 2.12 driver built in. I also enabled the usb-c code in the kernel that appears to have not been set. I don’t know if its relevant, but it should be on for other applications. https://drive.google.com/open?id=1wZwwOwbEr0nR3mnPLKg7AsulwJaGhO0A
Download this as bzImageRT (watch your case) and copy it to the ipxe directory with the other kernel images. Manually register the host and then in the host definition add in bzImageRT as the kernel for that host. Then pxe boot into FOS Linux debug mode to see if the network adapter inits correctly with this updated driver.
-
@george1421 I’m on it! Thanks for doing all that!
-
@george1421 That done did it!
It imaged correctly as expected, huzzah! No problems at all. -
@george1421 said in issue with netcard of dock gen2 of lenovo l390:
@JJ-Fullmer The r8152.c from the torvalds github site failed to compile on 4.19.65, I’m suspecting its for a later release of linux. The version from the torvalds site was 1.10.10. The version in 4.19.65 was 1.9.9 of the realtek driver.
I was able to compile the realtek driver from the wget github site. This version is 2.12. Here is a link to that kernel with the 2.12 driver built in. I also enabled the usb-c code in the kernel that appears to have not been set. I don’t know if its relevant, but it should be on for other applications. https://drive.google.com/open?id=1wZwwOwbEr0nR3mnPLKg7AsulwJaGhO0A
Download this as bzImageRT (watch your case) and copy it to the ipxe directory with the other kernel images. Manually register the host and then in the host definition add in bzImageRT as the kernel for that host. Then pxe boot into FOS Linux debug mode to see if the network adapter inits correctly with this updated driver.
@jps Please give @george1421’s kernel a try, see if that fixes your problems.
-
@george1421 I posted your solution on two other posts that appear to be related issues
https://forums.fogproject.org/topic/13203/l390-yoga-lenovo
https://forums.fogproject.org/topic/13909/can-t-find-network-interface-kernelThere they are for reference for anyone finding this or those in the future.
-
@Developers here is what I did
-
Probably not related to the issue at hand. Enabled usb-c support in the kernel. The kernel was 4.19.65
enable_usb-c.patch.txt -
I downloaded the 2 files from this url: https://github.com/wget/realtek-r8152-linux and copied them to
linux-4.19.65/drivers/net/usb/
overwriting what was there (note I appended .txt to allow uploading to the forum).
r8152.c.txt
compatibility.h.txt -
Recompiled the kernel using the 1.5.7 base config file from the fos github site.
-
-
@george1421
I would probably bet that adding usc-c support helped more than we know. I’ve just never had this good of an experience with a usb-c adapter and fog. Just my 2 cents.Do you see any reason that one shouldn’t use this kernel for all devices?
Also, another side note to my Fellow Lenovo L390 owners. If you set the Mac Address Passthrough option in the bios to “Second Mac Address” you can get a unique mac address for each device that uses that usb-c adapter or dock to image with fog so you won’t have issues with duplicate macs. However if you set it to “Internal Mac Address” it replicates the internal card which confuses ipxe that there are 2 network cards with the same mac address and it tries a ‘net0’ device twice failing both times.
-
@JJ-Fullmer said in issue with netcard of dock gen2 of lenovo l390:
Do you see any reason that one shouldn’t use this kernel for all devices?
There is no reason why you shouldn’t use this kernel. This is exactly the same kernel that ships with FOG 1.5.7 with the exception of the updated realtek driver and adding in the usb-c stuff.
I started with the default FOS Linux settings for 1.5.7 and made the changes I posted. This was done so that the devs could duplicate what was done during our testing.
I’ve just never had this good of an experience with a usb-c adapter and fog
It would be interesting to see if your experiences with usb-c change with this kernel.
-
@george1421 I’m making it my default kernel now then, I backed up the old one of course. I’ll report back if there are any problems, but I would assume all will work as expected.