Microsoft Surface Pro 4
-
Hello,
I’ve been searching on the forms for hours and none of the previous threads on this topic have helped so far. I’m having the “typical” inability to find an IP address via DHCP issue. It tries to bring the link up on eth0, but there is no eth0 device since the NIC is on the external Microsoft Surface Dock. I booted into a Linux live disk to see what the device name is given by default on a unix device and it’s set to enxc49dede708d4, which is an insanely long name for a NIC. Not sure if this helps at all, but thought I’d add it anyways.
I’ve only had success (with all devices on my network) with ipxe7156.efi - intel7156.efi does not work. UEFI PXE is working fine, but once I try to do a registration with the Surface Pro 4 it hangs on finding an IP address.
I’ve also tried the “has_usb_nic=1” solution but it does not help - I’m using the dock and not a usb NIC so it has it’s own proprietary connection interface that is not a USB.
I’m running on FOG 1.4.4 but am soon upgrading to 1.5.0-RC9.
Anyone have any ideas?
-
@mwarner said:
I booted into a Linux live disk to see what the device name is given by default on a unix device and it’s set to enxc49dede708d4
Kind of a good idea but not worth anything in this case. Please don’t get me wrong. Don’t wanna sound rude. Those NIC names are made up by modern Linux distros and are not the actual name. It’s just some kind of naming schema (obviously has the MAC address in it) to try and get names consistent on every reboot. Not nice I find but that’s how they do it.
I’ve also tried the “has_usb_nic=1” solution but it does not help - I’m using the dock and not a usb NIC so it has it’s own proprietary connection interface that is not a USB.
I guess the dock is also using some kind of bus system to connect - maybe that even is USB. Anyhow, using the
has_usb_nic=1
kernel parameter do you see it wait on bootup? This is meant as a delay so people can re-plug the NIC and then go on. Can you give that a try. Add that kernel parameter, boot it up till you get to the prompt, unplug it from the dock, replug it and hit enter to proceed. Does it work this way? -
@mwarner said:
I’ve only had success (with all devices on my network) with ipxe7156.efi
Be warned - we removed
ipxe7156.efi
in the RC (and upcoming) versions because the issue has been fixed in iPXE and we use the very latest code. So be prepared to move back toipxe.efi
when upgrading to the RC version. -
@Sebastian-Roth Yes, I’ve tried to unplug and replug the dock connector in multiple times and every time it ends up with the same failure to get a DHCP address.
-
@mwarner Please find a mini switch or old hub to connect between the client and your main network (switch). Has worked for a lot of people in many different situations. If it does we can start elaborating on what exactly the issue is.
-
@sebastian-roth I tried using a Netgear GS308 per your suggestion of using a mini switch and it did not work (with or without has_usb_nic=1)
-
@sebastian-roth Also I’m now testing with v1.5.0-RC-10 and ipxe.efi.
-
@mwarner Read through all the posts on this topic and see if you find something:
https://forums.fogproject.org/topic/9894/surface-pro-4 (NIC in USB HUB issue)
https://forums.fogproject.org/topic/9704/surface-3-unable-to-obtain-dhcp (great discussion with detailed instructions)
https://wiki.fogproject.org/wiki/index.php?title=Surface_Pro (long list of Surface threads)Other than that I’d say we need more information on the network packets, see here and post a link to an uploaded PCAP file so we can check it out.
-
@sebastian-roth Here is the link to a .pcap file of the surface in question trying to connect. The surface itself loads the FOG menu properly and successfully, as shown by the .pcap, but when I selected the “Perform Full Host Registration” option it seems to recognize that there’s an error with the ethernet connection. Perhaps you could provide some more insight?
-
@mwarner said in Microsoft Surface Pro 4:
@sebastian-roth Here is the link to a .pcap file of the surface in question trying to connect. The surface itself loads the FOG menu properly and successfully, as shown by the .pcap, but when I selected the “Perform Full Host Registration” option it seems to recognize that there’s an error with the ethernet connection. Perhaps you could provide some more insight?
Are you willing to purchase a different USB NIC?
The Microsoft Surface dongle model# 1663 has been confirmed to work. Alot of the other docks/usb nics don’t work.
-
@avaryan said in Microsoft Surface Pro 4:
Are you willing to purchase a different USB NIC?
Unfortunately not, we have already purchased the full blown docks for our supply of surface pro 4s in a bundle from CDW.
-
@mwarner Whelp, I just found out our company owner just purchased a surface book with an external usb-c dock (I think). So I may have one of those to play with in the coming days. I also think it was a bundle from CDW (FWIW).
If I can’t get it to work, we may just pickup a sub dongle like @Avaryan mentioned just for our imaging bench. It may be worth it to not have to mess around too much just to get it imaged (considering FTE wages spent during the debugging process).
-
@george1421 Awesome! I’ll be interested to see what you can pull off and if it will help with our case. Unfortunately our docks aren’t USB-C though. We have the Surface Pro 4’s (2-in-1 device) that have a proprietary plug for the dock connection. It’s definitely not USB. Probably why USB NIC option isn’t working.
-
@mwarner In that PCAP I only see three TFTP packets. No DHCP packets at all. Probably your network structured in a way that we don’t see the DHCP broadcasts and answers at all. Can you connect a dumb network hub in front of your Surface client and use another PC to capture the network traffic there. You can even use the GUI version called Wireshark if you like.
-
@sebastian-roth I ran a tcpdump with a different device to see what would happen. I tried using one of our HP desktops and it captured all DHCP and TFTP packets properly as you’d expect, with the same UEFI PXE boot over IPV4 settings as the Surface. If you want to see for yourself, I’ll post the PCAP file but otherwise you can take my word for it: it worked just fine as you’d expect and even did a successful deploy and capture.
I’m not sure what Microsoft is doing with this particular NIC on this dock, but I think that somehow it’s blocking DHCP in PXE boot somehow because that’s the only explanation that I can think of with my current knowledge of networking. As you can see from the PCAP file I posted, the device even has an IP address of 10.241.70.172 upon connection to the FOG server - SOMEHOW - but does not get it via DHCP as there are no DHCP packets. As if it were cached or something. I’m so confused as to how this is even functioning.
Furthermore, if I boot into Windows, the wired connection works just fine - so it’s not a defective dock or anything. It works in Windows, just not in PXE. Absolutely bizarre.
PS: I’ll have to purchase a hub because I don’t believe we have one in house. We have a switch, but not a hub.
-
@mwarner said in Microsoft Surface Pro 4:
We have a switch, but not a hub.
A switch that supports port mirroring will work just as good without the spend.
I have that surface book right now with the external dock. You are right its not a usb-c but something microsoft specific. I hope to be able to get it pxe booted later this afternoon to see what I can see.
-
@mwarner Yeah, I’d be happy to take a look at the HP desktop bootup PCAP. Just send me a PM if you don’t want to share this in public.
As you can see from the PCAP file I posted, the device even has an IP address of 10.241.70.172 upon connection to the FOG server - SOMEHOW - but does not get it via DHCP as there are no DHCP packets. As if it were cached or something. I’m so confused as to how this is even functioning.
PXE booting in the case of FOG is not just one single thing. It’s a whole series of protocols and stuff working together to get up that FOS (FOG mini linux OS) in the end. At that stage were you see the error the client got an IP via DHCP twice already. And also communicated with the FOG server. So we do know that your setup is not totally screwed. But for things to fully work each and every piece of the chain needs to play nicely.
So to try and circle what’s causing this I’d suggest you prepare a live Linux CD or USB key to boot from. See if you can that up. Not through PXE, just normal bootup from CD/DVD/USB key. Then try to setup a network connection.
@george1421 Great to hear you got such a thingy at hand too. Looking forward to hear what you find. If you get stuck at the same stage try Live Linux to see if that can bring up that NIC properly.
-
OK first let me say, I’m too frick’n old to try to work with these things in console mode. That text is damn small, about 4pt in size.
Short form: It werks as advertised. I can pxe boot and register the surface book via the external dock thingy. You must use kernel 4.11.6, the stock kernel that comes with FOG 1.4.4 4.11.0 does not werk. You can tell if you have the older kernel (at least with the surface books is that they onboard keyboard does not function correctly.
At the moment I think the dock’s model number is PF3-00005
The longer form will have to wait until tonight. I have color pictures and logs to post, but no time at the moment.
-
@sebastian-roth I got you two PCAP files on a different VLAN with an IP helper on it that captured more information from both the HP and the Surface. Here is a link to a Google Drive folder containing those files. I’ll try to leave them up for future reference to this article.
-
@mwarner I am sorry to say this but the PCAPs don’t show the DHCP answer packets (offer and ack). So it’s missing very essential information.
Have you looked into booting a live Linux OS on the Surface just to see if that can properly bring up the network interface and retrieve an IP via DHCP - see my last post.