iPXE and USB-C
|
2017-01-12, 12:58
Post: #1
|
|||
|
|||
iPXE and USB-C
Hi list
I am using iPXE to PXE-boot Macs to a WDS server in order to install Windows on them. For older Macs (with BIOS-emulation), I use the prebuilt ipxe.iso-Image, for the newer ones (the ones with EFI-boot) I use an ipxe.efi executable on a USB stick. This has worked fine so far, even for Mac laptops that do not have a built-in NIC and where I have to use a Thunderbolt-ethernet or USB-ethernet adapter. However, the new MacBooks Pro now only have combined USB-C/Thunderbolt 3 ports, and no matter what kind/brand of network adapter I use, I am not able to PXE boot them. Either the network adapter is not seen at all, or it is seen as down, or it is seen and up, but the configuration fails. Unfortunately, I am not really an expert when it comes to PXE-booting... I suspect that maybe a driver for USB-C is missing? Any ideas what I could try? This is really a show-stopper for us. Thanks, Tina |
|||
2017-01-12, 19:02
Post: #2
|
|||
|
|||
RE: iPXE and USB-C
Could you boot into something that has lspci and run lspci -nn Which would give us a list of all the pci devices in the machine, which also includes which chips is used to provide the USB interface, but AFAIK Type-C is just standard xHCI devices (USB 3) which should be fully supported.
Do you have a environment where you can build ipxe? in that case we can try and enable some DEBUG= flags, also try and use a type-c to USB 3 type-A(?) adapter and then use a nic that you know is working with ipxe on older hw. Use GitHub Discussions VRAM bin |
|||
2017-01-13, 08:31
(This post was last modified: 2017-01-13 10:44 by speleo14.)
Post: #3
|
|||
|
|||
RE: iPXE and USB-C
Thanks for trying to help!
(2017-01-12 19:02)NiKiZe Wrote: Could you boot into something that has lspci and run lspci -nn Which would give us a list of all the pci devices in the machine, which also includes which chips is used to provide the USB interface, but AFAIK Type-C is just standard xHCI devices (USB 3) which should be fully supported. There doesn't seem to be an lspci for Mac, but I'll try to find out about the USB. (2017-01-12 19:02)NiKiZe Wrote: Do you have a environment where you can build ipxe? in that case we can try and enable some DEBUG= flags, also try and use a type-c to USB 3 type-A(?) adapter and then use a nic that you know is working with ipxe on older hw. Yes, I can build it. I usually use "make bin-x86_64-efi/ipxe.efi". What flags should I add? As for the USB-C to USB-A Adapter plus a known-working nic - I tried that, and it doesn't work. It will see the nic and tell me that the link is up, but then say "No configuration method found". Nics that directly plug into the USB-C do not work at all, they're not even seen (tried an LMP and a Dell one, both work fine when booted to Mac). EDIT: There is definitely no lspci that is running on the current Mac OS (or at least I didn't find one), and unfortunately, Linux is not (yet) running on the new MacBooks, so I can't install that to use lspci either. The best I can come up with is thus the Apple System Report which shows this about USB: USB 3.0 Bus: Host Controller Driver: AppleUSBXHCISPT PCI Device ID: 0xa12f PCI Revision ID: 0x0031 PCI Vendor ID: 0x8086 iBridge: Product ID: 0x8600 Vendor ID: 0x05ac (Apple Inc.) Version: 1.01 Serial Number: nomac?123456 Speed: Up to 480 Mb/sec Manufacturer: Apple Inc. Location ID: 0x14200000 / 2 Current Available (mA): 500 Current Required (mA): 0 Extra Operating Current (mA): 0 Built-In: Yes |
|||
2017-01-13, 18:13
Post: #4
|
|||
|
|||
RE: iPXE and USB-C
thanks 8086:a12f is a standard intel xHCI bridge as expected.
it would also be interesting to see output of ifstat from the working machine using the same usb nic that we know is working in the old one, and i guess this is also working inside of OSX on the new machine? You are using that ipxe.efi build on both the new and old machine? my guess then is that on the old machine when you run ifstat will see the usb nic found as a nii or snp nic (meaning they use the standard interface where the driver for the nic is loaded and provided by the efi firmware and not using ipxe native driver) The usb drivers is not included by default in the ipxe build, so with something like: Code: make bin-x86_64-efi/ipxe--ecm--ncm.efi DEBUG=xhci one gotcha however is that any other usb device then the ones supported by ipxe will be disconnected, for example mass storage devices will no longer exist to the efi firmware if you exit out from ipxe and expect to continue booting from some other usb device. Use GitHub Discussions VRAM bin |
|||
2017-01-14, 23:07
Post: #5
|
|||
|
|||
RE: iPXE and USB-C
(2017-01-13 18:13)NiKiZe Wrote: thanks 8086:a12f is a standard intel xHCI bridge as expected. Yes, that is correct. All the nics I tried with ipxe are working when booted to OSX, and are also working to netboot the Mac to an Apple Netboot server (Deploy Studio in this case). Just not for PXE. (2017-01-13 18:13)NiKiZe Wrote: You are using that ipxe.efi build on both the new and old machine? Yes, same build. (2017-01-13 18:13)NiKiZe Wrote: my guess then is that on the old machine when you run ifstat will see the usb nic found as a nii or snp nic (meaning they use the standard interface where the driver for the nic is loaded and provided by the efi firmware and not using ipxe native driver) Hmm, when I tried to pxe-boot with one of the nics, I saw somewhere in the output something similar to "nii", but I don't remember which one that was. Will check on Monday... (2017-01-13 18:13)NiKiZe Wrote: The usb drivers is not included by default in the ipxe build, OK, I'm gonna try that on Monday! Thanks very much for your help! |
|||
2017-01-16, 12:05
(This post was last modified: 2017-01-16 12:06 by speleo14.)
Post: #6
|
|||
|
|||
RE: iPXE and USB-C
Sorry for the long post...
(2017-01-13 18:13)NiKiZe Wrote: The usb drivers is not included by default in the ipxe build, OK, I tried that. I used ipxe-26050fd and built with "make bin-x86_64-efi/ipxe--ecm--ncm.efi DEBUG=xhci". And this is the ouptut for different nics: Dell USB-C nic: Code: Starting ipxe--ecm--ncm.efi LMP USB-C nic: Code: Starting ipxe--ecm--ncm.efi Apple USB-C-USB-A adapter, Apple USB-A nic: Code: Starting ipxe--ecm--ncm.efi Apple Thunderbolt3-Thunderbolt2 adapter, Apple Thunderbolt nic: Code: Starting ipxe--ecm--ncm.efi Different build, without the --ecm--ncm: "make bin-x86_64-efi/ipxe.efi DEBUG=xhci" Same outcome for everything except Apple USB-C-USB-A adapter, Apple USB-A nic, where I get: Code: Starting ipxe.efi And now it gets weird: I also tried an older build (ipxe-fd95c78) from november 16 (built with "make bin-x86_64-efi/ipxe.efi"), and this one works, but only sometimes. Sometimes it doesn't, and I also get the "No configuration methods succeeded" error... I'd say it works for around once in 5 or 10 times. EDIT: about the ifstat, it seems as if I can't get into the iPXE command line. Nothing happens when I press ctrl-B. |
|||
2017-02-23, 12:05
Post: #7
|
|||
|
|||
RE: iPXE and USB-C
I finally managed to get into the ipxe shell (by using esc-b instead of ctrl-b, thanks to another discussion here), and I ran dhcp and ifstat on my various adapters with the following results:
Dell USB-C to Ethernet NIC: Code: iPXE>dhcp Apple USB-C to USB-A adapter & Apple USB-A to Ethernet NIC: Code: iPXE>dhcp LMP USB-C to Ethernet NIC: Code: iPXE>dhcp Apple Thunderbolt-3 to Thunderbolt-2 adapter & Apple Thunderbolt to Ethernet NIC: Code: iPXE>dhcp Can anybody make any sense out of this? PS: 78:4f:43:55:b0:35 is the built-in wireless NIC. |
|||
2017-02-23, 23:06
Post: #8
|
|||
|
|||
RE: iPXE and USB-C
The NII driver which it tries to use is the driver that the MAC/PC firmware provides, something seems to be wrong in the driver interface that comes from firmware. Can you actually do "internet boot" of the mac with any of those usb devices?
It might also be worth comparing the output to the machine that works with the same usb device. ( None of the outputs seem to be successful, i have a hard time following what is what in those logs ) If you can't internet boot the machine with any of the NICs then it won't be able to boot via ipxe.efi eighter, and you will need to have a ipxe version that supports the nic directly. Build with only basic USB NIC device support: make bin-x86_64-efi/ecm--ncm.efi DEBUG=xhci now to know which driver we want (if any exist at all) we will want to have the lsusb output for each of the USB devices that you are trying to get working. Use GitHub Discussions VRAM bin |
|||
2017-02-24, 10:10
Post: #9
|
|||
|
|||
RE: iPXE and USB-C
(2017-02-23 23:06)NiKiZe Wrote: The NII driver which it tries to use is the driver that the MAC/PC firmware provides, something seems to be wrong in the driver interface that comes from firmware. Can you actually do "internet boot" of the mac with any of those usb devices? Yes. I can do a successful "Apple" netboot with all the NICs. (2017-02-23 23:06)NiKiZe Wrote: It might also be worth comparing the output to the machine that works with the same usb device. ( None of the outputs seem to be successful, i have a hard time following what is what in those logs ) The Dell and the LMP NIC I can't test on an older Macbook since those do not have USB-C ports. The Apple USB-Ethernet and Thunderbolt-Ethernet NICs do work on older machines; however, with the new Macbook I have to add a USB-C to USB-A or a Thunderbolt-3 to Thunderbolt-2 adapter to connect those NICs, so it's not exactly the same setup. The Dell NIC that I try to use was sold stating it does support PXE booting (that's why we bought it, hoping that this would help). (2017-02-23 23:06)NiKiZe Wrote: If you can't internet boot the machine with any of the NICs then it won't be able to boot via ipxe.efi eighter, and you will need to have a ipxe version that supports the nic directly. I did that, but to get to the iPXE shell, I need to press esc-B, and the new Macbook doesn't have an esc key (great, really). I usually get around this by using en external USB keyboard, but with this build, the external keyboard is not working - so can't get to the shell. Apart from that, I can't pxe-boot with any of the NICs with this build either. I can post the output if that helps. (2017-02-23 23:06)NiKiZe Wrote: now to know which driver we want (if any exist at all) we will want to have the lsusb output for each of the USB devices that you are trying to get working. There's no lsusb on Mac... so here is the output of the Mac system profiler: Dell: Product ID: 0x8153 Vendor ID: 0x0bda (Realtek Semiconductor Corp.) Version: 30.00 Serial Number: 000001000000 Speed: Up to 5 Gb/sec Manufacturer: Realtek Location ID: 0x01300000 / 1 LMP: Product ID: 0x8153 Vendor ID: 0x0bda (Realtek Semiconductor Corp.) Version: 30.00 Serial Number: 000001000000 Speed: Up to 5 Gb/sec Manufacturer: Realtek Location ID: 0x01300000 / 1 Apple USB-Ethernet: Product ID: 0x1402 Vendor ID: 0x05ac (Apple Inc.) Version: 0.01 Serial Number: 25BF8A Speed: Up to 480 Mb/sec Manufacturer: Apple Inc. Location ID: 0x14100000 / 5 Apple Thunderbolt-Ethernet: Vendor Name: Apple Inc. Device Name: Thunderbolt to Gigabit Ethernet Adapter Vendor ID: 0x1 Device ID: 0x8003 Device Revision: 0x1 UID: 0x0001000202AACB50 Apple Serial Number: DTN418302J2DWKHBJ Route String: 3 Firmware Version: 5.5 Port (Upstream): Status: Device connected Link Status: 0x2 Speed: Up to 10 Gb/s x1 Seems like the Dell and LMP adapter use exactly the same hardware... |
|||
2017-02-24, 21:12
Post: #10
|
|||
|
|||
RE: iPXE and USB-C
There might be some known issues with those Realtek chipsets.
Try booting into ipxe, then unplug and replug the device and run ifstat again to see what it detects and try dhcp to see what you get. Let's just work with one device and try to compare. Since internet boot works the NII driver should work as well, if not it is a bug in the Apple firmware in regards to efi sepecification. and adapter or not is the exact same thing. there is no Thunderbolt support in iPXE so that would only work with the NII driver if at all. Use GitHub Discussions VRAM bin |
|||
2017-02-27, 12:26
Post: #11
|
|||
|
|||
RE: iPXE and USB-C
(2017-02-24 21:12)NiKiZe Wrote: There might be some known issues with those Realtek chipsets. The Realtek NICs are no longer detected after unplugging an re-plugging. The Apple USB-Ethernet is detected and dhcp results in "configuring......ok" The Apple USB-Ethernet NICs are the ones with which I seem to get furthest - however, I'd prefer not to work with them since they are 10 Mbit Just included them for testing... Maybe I should try and get USB-C-Ethernet NICs from other manufacturers? (2017-02-24 21:12)NiKiZe Wrote: Let's just work with one device and try to compare. Since internet boot works the NII driver should work as well, if not it is a bug in the Apple firmware in regards to efi sepecification. Well, Thunderbolt-Ethernet works absolutely fine with older MacBooks Pro (all of them actually, except now the newest ones with USB-C). However, they fail on iMacs Late 2015 (where the internal NIC doesn't work either, there's a thread about this here too). |
|||
2017-02-27, 19:23
Post: #12
|
|||
|
|||
RE: iPXE and USB-C
0bda:8153 RTL8153 is Gigabit, let's try and work with something that we know works, even if buggy.
but it should work with make bin-x86_64-efi/ecm.efi after unplug and replug as far as I understand. we have mostly confirmed that the NII driver is horribly broken on your firmware, and that is what iPXE must use for the thunderbolt nic, but I don't see how iPXE would have any drivers for this.. So there is 2 things that can be done to fix this for you: 1. Upgrade the firmware so that the NII driver works, if there is no upgrade available that fixes this issue you will need to contact Apple to get them to fix this. 2. Use native iPXE drivers for nic and bus, but who knows maybe Apple have locked down that solution as well. Use GitHub Discussions VRAM bin |
|||
2017-03-01, 09:06
Post: #13
|
|||
|
|||
RE: iPXE and USB-C
(2017-02-27 19:23)NiKiZe Wrote: 0bda:8153 RTL8153 is Gigabit, let's try and work with something that we know works, even if buggy. OK, I built with make bin-x86_64-efi/ecm.efi and used the Dell NIC with the Realtek chip, but this instantly gives me "No more network devices", so the NIC isn't even detected. And I can't get to the shell, since the external keyboard doesn't work with that build and the built-in keyboard doesn't have an esc key Thus I can't try unplug and replug with that build. (2017-02-27 19:23)NiKiZe Wrote: we have mostly confirmed that the NII driver is horribly broken on your firmware, and that is what iPXE must use for the thunderbolt nic, but I don't see how iPXE would have any drivers for this.. Well, as I said, the thunderbolt NIC works really fine with "older" Macs. It uses the driver 14e4-1682; that's what iPXE also tries to use on the new MacBook Pro, but here I get "Link down". (2017-02-27 19:23)NiKiZe Wrote: So there is 2 things that can be done to fix this for you: There is no firmware update available at the moment, so we can probably forget about 1. How would I proceed to try 2? |
|||
2017-12-01, 11:03
Post: #14
|
|||
|
|||
RE: iPXE and USB-C
Hello Speleo14,
did you find a solution for your problem? I'm also fighting with the LINK DOWN symptom on my macbooks with thunderbolt2 -> gigabit adapters :-( I had one running version but never noted the release :-( after recompiling it stopped working again :-( greetings. Gerald |
|||
2017-12-01, 12:28
Post: #15
|
|||
|
|||
RE: iPXE and USB-C
(2017-12-01 11:03)gzebedin Wrote: I had one running version but never noted the release :-( after recompiling it stopped working again :-( Do you still have it working if using the old version of iPXE? Tip: always build from source yourself, that way the git commit will be noted in the iPXE version number so that you can check out that same version of the sources at any time in the future. Use GitHub Discussions VRAM bin |
|||
2017-12-01, 12:50
Post: #16
|
|||
|
|||
RE: iPXE and USB-C
no. I lost the "working version of IPXE" but it could have also been a firmware update which destroyed my "running system" :-(
|
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)