Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Not sure if I'm in the right forum... Hardware seemed good though. :-)
On a Lenovo IdeaPad Flex-14API (81SS), I failed to get PXE to even list the boot option of network. Fine, I figured, probably something goofy with the Lenovo BIOS, as I've had similar issues on other machines from various manufacturers. I keep an iPXE USB around just for these occasions.
However, I can't get the iPXE to work, either. It doesn't see the USB-NIC; ifstat produces no output.
However, on the same machine, booting Ubuntu or Windows, the NIC is seen, and functional. On other machines, iPXE can see/boot the NIC just fine. USB info (lsusb) is 0bda:8153.
Any ideas or troubleshooting steps are welcome. I've done the usual dance of fiddling with BIOS settings (boot options, Legacy/UEFI, etc.). Lenovo support was wholly unhelpful (as I'd expect for a consumer device trying to PXE boot).
Not sure if I'm in the right forum... Hardware seemed good though. :-)
On a Lenovo IdeaPad Flex-14API (81SS), I failed to get PXE to even list the boot option of network. Fine, I figured, probably something goofy with the Lenovo BIOS, as I've had similar issues on other machines from various manufacturers. I keep an iPXE USB around just for these occasions.
However, I can't get the iPXE to work, either. It doesn't see the USB-NIC; ifstat produces no output.
However, on the same machine, booting Ubuntu or Windows, the NIC is seen, and functional. On other machines, iPXE can see/boot the NIC just fine. USB info (lsusb) is 0bda:8153.
Any ideas or troubleshooting steps are welcome. I've done the usual dance of fiddling with BIOS settings (boot options, Legacy/UEFI, etc.). Lenovo support was wholly unhelpful (as I'd expect for a consumer device trying to PXE boot).
Thread topic says different machine, post says same machine.
What distro are you trying this on. You say it works in Ubuntu and Windows on the same machine.
Do the systems have pxe available in bios? Are they UEFI or not?
Ipxe is one of the ports of gpxe that has been around for a while to try to get systems that don't have pxe on nic. You generally do have to build the port with a supported nic and may end up having to modify how it swaps over to OS.
Thread topic says different machine, post says same machine.
What distro are you trying this on. You say it works in Ubuntu and Windows on the same machine.
To clarify:
iPXE USB drive and USB-NIC work fine on whatever machines I try them on... except these Lenovo Flex machines. (works fine on Dell, HP, etc. machines we have)
The distro is iPXE UEFI; mentioned Ubuntu and Windows to indicate it's not any one hardware piece that's not working at all. On the same Lenovo Flex, Ubuntu and Windows see the USB-NIC and can use it, so I know the USB port is good.
@jefro, I haven't used Wireshark to view connections, but iPXE isn't even making it far enough to need that.
Co-worker discovered today that the built-in PXE on the motherboard, only works with USB 2.0 NICs. However, I'd think this would be irrelevant if iPXE uses its own drivers?
I get that the vision of iPXE was to PXE things that wouldn't, but there have been several instances (with various hardware in the recent past) where a machine wouldn't PXE boot properly from the motherboard's built-in mechanisms, but would boot PXE via iPXE just fine.
Last time I looked at gpxe/ipxe the ability of it to work depended on a few items. One is that the nic is built into the version of gpxe/ipxe that you have. Two that the nic isn't borked by some other issue like bios settings, conflicts or what not. https://ipxe.org/ for some tests to start.
Yes, pxe is an onboard rom based firmware that allows a system to boot. To get past computers that don't have onboard rom's for pxe or for newer options like https booting one can use gpxe/ipxe to load this firmware into a pre-os sort of state then hand off the mini OS to the main boot process. So the process of offering some image to this client may also need to be looked at.
I'd look to the uefi bios for ways to simply boot to uefi pxe too or convert over to legacy if the board offers it.
I've said this before too. pxe and the like have 300+ different web pages on how to do it. Not one of them is the same.
Wireshark may help decide if any packets are moving and where to look next.
can use gpxe/ipxe to load this firmware into a pre-os sort of state then hand off the mini OS to the main boot process. So the process of offering some image to this client may also need to be looked at.
Right, and this is what I've done before, and was trying to do this time. As mentioned, ifstat produces no output, so iPXE isn't seeing the NIC, so Wireshark will be useless at that point.
iPXE's ifstat sees these NICs (tested multiple now) in different machines (HP, Dell, etc), but not in these Lenovo machines.
Ubuntu and Windows see the NICs in the Lenovo machines, too. So I *know* everything's working at a physical level, it just seems to be a specific combination of Lenovo + iPXE that doesn't allow the USB NICs to be detected in these specific machines? What would cause this/how can I troubleshoot? Seems really odd that an OS (iPXE) detects some USB NICs in some environments, and not others - even though they're the same USB NICs.
Yes, "ifstat produces no output, so iPXE isn't seeing the NIC, so Wireshark will be useless at that point"
So you will have to build one for that nic or test if there is some other issue stopping it from accessing your nic.
It is not odd at all. If a person had a usb nic that they wanted to use as ipxe then things that could stop it would be more than a few items.
Bios, bios settings, conflicting nic, conflicting usb, time for usb to enable nic, support for usb controller, how it might use hotplug, pal and firmware, how uefi presents hardware and I'd assume many more.
Would you say that these lenovos have some different hardware? Unless these have been tested at factory to use ipxe then there is no use saying it must work.
how uefi presents hardware and I'd assume many more.
[...]
Did you disable internal nic ever?
Haven't disabled anything, but the only internal NIC is the Wi-Fi card (which iPXE also doesn't see).
Does iPXE utilize the UEFI system to detect USB NICs? I was under the impression it had its own drivers built in. In which case, I'd expect a USB NIC that works with iPXE, to work with iPXE. Especially when on the same machine it works with other Linux distros (like Ubuntu). If iPXE doesn't include its own driver stack (this is where my knowledge is lacking), and instead relies on the UEFI detection of USB NICs, then that explains why it's doing this. I was under the impression it includes its own drivers, so *should* work just like any other distro in this regard (aka same peripherals across different machines, would yield the same results. Or you'd see an issue across all distros). Perhaps I'm wrong?
Kind of a complex issue and as usual no maker seems to use UEFI in any sort of standard.
If you have a uefi based system then even if you boot to csm/legacy it will have some effects on the hardware. You should be able to boot to the efi shell and peek around. Intel I believe has a good web page on it as well as others.
To be exact, an OEM could allow many subsets of hardware presented to the OS based on how they made it or coded it.
ipxe like linux can't support all hardware on the planet and under all conditions.
The solution posted on ipxe site would be to create (if that is possible) your own version that is tailored to your hardware or hardware set.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.