• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Surface 3 - Unable to obtain DHCP

    Scheduled Pinned Locked Moved Solved
    Hardware Compatibility
    5
    25
    9.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Scott AdamsS
      Scott Adams
      last edited by

      I don’t want to assume anything, but have you added the kernel argument for the Surface? Try and add “has_usb_nic=1” (minus the quotes).

      I am able to image Surface Pro 3s and 4s, using the Microsoft Surface Ethernet adapter. Now, if only FOS could understand to look for USB nics without forcing it to search for them, that would be great.

      I should also mention that since the Surface has only 1 USB port, you will need to have a USB keyboard handy. After you are able to boot to the Ethernet Adapter, it will tell you to unplug the usb nic, plug it back in, and press Enter.

      Once you pull it out, plug in your USB Keyboard and hit Enter (once in FOS, the Surface keyboard will not be usable). After hitting Enter, unplug the keyboard and plug the USB adapter back in. You will have roughly 5 seconds to complete these tasks (no joke).

      Hope this helps.

      Tom ElliottT george1421G D 3 Replies Last reply Reply Quote 2
      • Tom ElliottT
        Tom Elliott @Scott Adams
        last edited by

        @Scott-Adams Unfortunately, the issue is in “release” back to the system when iPXE starts up. I’ve already tried to figure out a way to “reset” the nic without having the user do anything, and it just doesn’t work, which was more or less WHY the has_usb_nic option was introduced.

        Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

        Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

        Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

        1 Reply Last reply Reply Quote 0
        • george1421G
          george1421 Moderator @Scott Adams
          last edited by

          @Scott-Adams While this comment is based on my experiences with the intel stick computers, to solve your issue use a USB 2.0 powered hub. This will let you connect multiple usb devices to that single usb port on your device. I just have a cheap iogear usb hub as well as several Dell multimedia keyboards (that have a 2 port hub built in). With the intel stick computers, this solution gives me a chance to run a keyboard, mouse, and usb ethernet adapter off the same single device usb port.

          Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!

          1 Reply Last reply Reply Quote 0
          • D
            dylan123 @Scott Adams
            last edited by

            @Scott-Adams Thanks for the suggestion Scott, to be able to add the kernel argument, you need to be able to register the host first right? I’m unable to register my surface with either the quick or the full register (get the same error back as seen in the 3rd picture). Or is there another way to add the kernel argument?

            Also since you’ve had success with your adapter, what model is it? I’ve got the 1663 so just curious as to whether we’re using the same one or not as it would help determine whether that’s part of my issue or there’s something else that needs to be done.

            Tom ElliottT Scott AdamsS 2 Replies Last reply Reply Quote 0
            • Tom ElliottT
              Tom Elliott @dylan123
              last edited by

              @dylan123 You can add, temporarily, to the FOG COnfiguration Page->FOG Settings->Expand All->search for KERNEL_ARGS

              Add has_usb_nic=1 there.

              Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

              Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

              Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

              D 1 Reply Last reply Reply Quote 1
              • D
                dylan123 @Tom Elliott
                last edited by

                @Tom-Elliott Thanks Tom, added that in the section you suggested however it’s still not behaving as it should.

                Boots to the FOG menu and with the countdown I plug in the surface keyboard so I’m able to select one of the options - any time I unplug the USB Ethernet adapter and put in a keyboard, the keyboard will not respond. Also tried from the docking station with the keyboard and USB adapter but same issue as below.

                Once I select my option (whether it’s through using the dock or the surface keyboard), I do get the unplug/replug message as Scott mentioned. When I unplug it, it says "startusb usb2-port1: cannot disable (err = -32). Hit enter and it sleeps for 5 seconds before I get the "Failed to get an IP via DHCP! Tried on interfaces(s): " Also tried not removing the USB adapter and just hitting enter but It’s still unable to get a DHCP address.

                When I check to see whether the machine is compatible with FOG, it’s still not able to determine its own mac address when I select that setting so the change to the kernel hasn’t appeared to have helped.

                1 Reply Last reply Reply Quote 0
                • Scott AdamsS
                  Scott Adams @dylan123
                  last edited by

                  @dylan123 FYI, we use the 1663 adapters as well. The way I do this in my environment is I manually added a registration for each of my surface nics (I have two of them). So, when I go to image a Surface, I search for one of my mac addresses for my adapters, change the pertinent information (name, image, etc). Then, I set a deploy task to that client. From there, I can go through the steps of swapping keyboards/usb adapter (@george1421 I know I could use a powered USB hub, but I just don’t).

                  You could also set up a capture the same way, just choose Capture instead of deploy from the Basic tasks section.

                  Below are the steps that I wrote up for my environment that does work with imaging Surfaces:

                  1. Search FOG hosts for the Surface MAC address for the Ethernet adapter you are using.
                  2. Rename the host to the desired name and save changes.
                  3. Hold down the Volume UP button, press the power button, then release the power button. When you see the Surface logo appear center screen, release the Volume UP button.
                  4. In BIOS : Select Security. Under Secure Boot, change configuration, select None, click OK. Under Trusted Platform Module, change Enable TPM-Change to Off. Select Boot Config. Verify that all items are selected. Select Exit. Click Restart while holding down the Volume DOWN.
                  5. When the red bar shows up, release the Volume DOWN button. The device should PXE boot and go to the FOG menu.
                  6. Select Deploy Image.
                  7. Select the Surface Pro 4 image.
                  8. When prompted to unplug your USB NIC, unplug the NIC and plug in a USB Keyboard. Press Enter.
                  9. Immediately unplug the USB Keyboard and plug back in the USB NIC. YOU WILL ONLY HAVE 5 SECONDS TO ACCOMPLISH
                  10. Allow the device to image.
                  11. When the device finishes imaging, do not try to join a wireless network, just hit NEXT. Move the device to the correct OU. Run gpupdate on the device.

                  YRMV, but this works for us.

                  D 1 Reply Last reply Reply Quote 3
                  • D
                    dylan123 @Scott Adams
                    last edited by

                    @Scott-Adams Thanks for the clear instructions Scott, gave it a shot but didn’t work unfortunately.

                    • Added mac address manually by going host > create new host, as suggested and it skips the countdown window like it knows the task it has been assigned (capture).

                    • It says it received DHCP answer on interface net0, speaks to fog server before going to next page

                    • message at top says - i8042: Can’t read CTR while initializing i8042

                    • continues on, says to unplug your device and replug as you suggested.

                    • Unplug and replug although when I unplug it says "usb2-port1: cannot disable (err = -32)

                    • hit enter and plug usb Ethernet back in quickly

                    • Failed to get an IP via DHCP! Tried on interfaces(s):

                    • Says to check network set up and try again. Eventually says press enter to continue.

                    • ssh-keygen generating new host keys

                    • starting sshd: ok

                    • then I get these four lines -
                      In: failed to create symbolic link ‘/dev/fd/fd’: No such file directory
                      In: failed to create symbolic link ‘/def/stdin’: File exists
                      In: failed to create symbolic link ‘/dev/stdout’ : File exists
                      In: failed to create symbolic link ‘/dev/stderr’: File exists
                      Running post init scripts…

                    • Next page, No network interfaces found (verifyNetworkConnection)
                      args passed:
                      Kernel variables and settings - which is rather long so I won’t bother typing unless it will be of use.

                    ev/fd/fd no such file or directory
                    failed /dev/stdin: file exists.


                    These were all tried with ‘has_usb_nic=1’ in the host kernel arguments and I tried ipxe.efi, ipxe7156.efi, snp.efi and snponly.efi

                    When it says it failed to get DHCP, tried on Interface(s): and it doesn’t list any, I feel that is where it might be going wrong but that’s just a guess on my part.

                    Scott AdamsS 1 Reply Last reply Reply Quote 0
                    • Scott AdamsS
                      Scott Adams @dylan123
                      last edited by

                      @dylan123 If you mentioned this already, I apologize. But, are you working with a Surface 3 or a Surface Pro 3? Everything in my environment is a Pro. I’m just wondering if we can take different hardware types out of the mix.

                      Wayne WorkmanW D 2 Replies Last reply Reply Quote 0
                      • Wayne WorkmanW
                        Wayne Workman @Scott Adams
                        last edited by

                        @Scott-Adams There are also sub-models of each series. Surface Pro 3 has different sub models.

                        Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!
                        Daily Clean Installation Results:
                        https://fogtesting.fogproject.us/
                        FOG Reporting:
                        https://fog-external-reporting-results.fogproject.us/

                        1 Reply Last reply Reply Quote 0
                        • D
                          dylan123 @Scott Adams
                          last edited by

                          @Scott-Adams Yeah Surface Pro 3.

                          Build version is 14393 for both the 3’s based on what it says in system information.

                          1 Reply Last reply Reply Quote 0
                          • D
                            dylan123
                            last edited by dylan123

                            Just giving this a bump to see if anyone else has any other ideas of what I can try?

                            Ran the latest update again to get 1.4.3 but still no luck.

                            Using USB ethernet, I get to the stage of unplugging and replugging before getting the error message -

                            Unplug and replug although when I unplug it says "usb2-port1: cannot disable (err = -32)
                            Failed to get an IP via DHCP! Tried on interfaces(s):

                            Using the dock with only ethernet connected it just fails to speak with the DHCP.

                            Both attempts have gone through a dumb switch as well just to ensure they don’t hang without connection to the network.

                            Maybe it just won’t work with the surface’s I’ve got, just thought I’d give this one final try.

                            Wayne WorkmanW 1 Reply Last reply Reply Quote 0
                            • Wayne WorkmanW
                              Wayne Workman @dylan123
                              last edited by Wayne Workman

                              @dylan123 Have you tried George’s suggestion about a powered usb 2.0 hub ? You should be able to get one for less than ten dollars online.

                              Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!
                              Daily Clean Installation Results:
                              https://fogtesting.fogproject.us/
                              FOG Reporting:
                              https://fog-external-reporting-results.fogproject.us/

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dylan123 @Wayne Workman
                                last edited by

                                @Wayne-Workman said in Surface 3 - Unable to obtain DHCP:

                                @dylan123 Have you tried George’s suggestion about a powered usb 2.0 hub ? You should be able to get one for less than ten dollars online.

                                I haven’t yet Wayne mainly due to the fact Scott had success with the same adapter I’ve been attempting to use.

                                That said, I’m willing to buy one to test with as it would be great to be able to create images of our Surface 3/4s with FOG if possible 🙂

                                I imagine I should be able to buy any USB 2.0 to Ethernet adapter or is there a particular model/brand I should be looking at? I’ve been through some of the threads, particularly the one I linked earlier in this thread with Sarge and his Surface 4. He linked an Amazon 2.0 USB to Ethernet adapter but that’s currently no longer stocked so I can’t purchase that (probably take a while for it to be shipped to Aus anyways).

                                Think I’ll just go with this if I don’t need to be going for a particular brand/model - http://www.msy.com.au/peripherals/15841--edimax-eu-4208-usb20-10-100-ethernet-adapter.html

                                I could get one with USB ports as well but I’m thinking that might be a chance to cause another issue although it would be nice not having to swap from keyboard to Ethernet quickly!

                                1 Reply Last reply Reply Quote 0
                                • D
                                  dylan123
                                  last edited by

                                  Finally have some success!

                                  I think it’s been a mixture of things that have made it work this time compared to other attempts. I just tried with ipxe7156.efi instead of ipxe.efi which is what I was trying the other day (I know I previously used ipxe7156.efi with no success) and I was able to quick register it and begin the capture process, rather interesting that it was able to do the quick register and create it’s own host kernel argument of the - has_usb_nic=1 without me having to put that in which is nice. Also had a dumb switch in the middle along with doing more updates so I’m not sure what part has fixed it for me but it appears to be working!

                                  Process for mine which is basically very similar to Scott’s well written instructions but will add everything I’ve done in case it helps someone in the future:

                                  DHCP Server Settings
                                  067 - ipxe7156.efi

                                  Fog Client Version
                                  Upgraded to FOG 1.4.0-RC-4
                                  Upgraded Kernel Versions so both bzImage and bzImage32 versions are 4.10.9

                                  Connection Setup
                                  Network > dumb switch > Microsoft Surface Ethernet to USB Adapter (model:1663) > Surface 3/4 (4 I’ve got to the quick register page, haven’t tested further yet).
                                  Left Surface keyboard plugged in

                                  Surface BIOS Settings
                                  Turn Trusted Platform Module off
                                  Turn Secure Boot off
                                  Change boot so network is allowed rather than just SSD - Network > SSD

                                  Choose whether to quick register a client or capture/deploy an image.

                                  Once all the above is set up then it’s basically how you do any other FOG image apart from having to disconnect and reconnect the USB network adapter.

                                  Steps -

                                  1. Ensure setup is plugged in as mentioned in the connection setup above
                                  2. Hold volume down, press power on and hold volume down until red Surface screen appears then let go
                                  3. Surface should start booting into fog
                                  4. When prompted to unplug USB Nic, plug back in and hit the enter on Surface keyboard
                                  5. If you’re quick registering, you should be able to select that option. If you’re capturing/deploying, it should automatically begin that process as you’ve set in the task manager on your FOG system.

                                  Thanks for your assistance @Scott-Adams @george1421 @Tom-Elliott @Wayne-Workman

                                  Thinking aloud, I suppose there isn’t really a way to register all my Surface machines because since I’m using the USB adapters and they’re the device that contains the MAC address (as I found out when I tried register the Surface 4 only to find it was listed as the Surface 3 model I did the quick register for before). Not really the end of the world if that’s the case as I can still create the images required and then just deploy it to the Surface as I wish.

                                  Tom ElliottT Wayne WorkmanW 2 Replies Last reply Reply Quote 4
                                  • Tom ElliottT
                                    Tom Elliott @dylan123
                                    last edited by

                                    @dylan123 So if you added has_usb_nic=1 to the FOG_KERNEL_ARGS field in fog settings, this would be the reason you “didn’t have to add it back”. This “flag” doesn’t automatically set itself, so the only way to have it “preset” is if you entered this in FOG Configuration Page->FOG Settings->Expand All->FOG_KERNEL_ARGS

                                    I’m glad you got it working and documented what worked in specific sequence. Hopefully all continues to work as expected for you.

                                    What I might recommend, is if you know the nics and which devices they’re going to be attached to, is to take the MAC’s and create a CSV with the MAC and Hostname to tie with it.

                                    This way you can specify the hostnames and not worry about the registration process itself. (I know not optimal but you can ensure all hosts receive the has_usb_nic flag this way.

                                    Your CSV for these systems might look like:

                                    "00:01:02:03:04:05","FirstHost","","","","","","","","","","","","","","has_usb_nic=1"
                                    

                                    Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                                    Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                                    Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                                    D 1 Reply Last reply Reply Quote 0
                                    • Wayne WorkmanW
                                      Wayne Workman @dylan123
                                      last edited by

                                      @dylan123 I added the link to your solution post in the wiki. One day I (or someone else) can go through it all and make a formal article.

                                      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!
                                      Daily Clean Installation Results:
                                      https://fogtesting.fogproject.us/
                                      FOG Reporting:
                                      https://fog-external-reporting-results.fogproject.us/

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dylan123 @Tom Elliott
                                        last edited by

                                        @Wayne-Workman said in Surface 3 - Unable to obtain DHCP:

                                        @dylan123 I added the link to your solution post in the wiki. One day I (or someone else) can go through it all and make a formal article.

                                        Sounds great, happy to help if required in more detailed instructions if needed 🙂

                                        @Tom-Elliott said in Surface 3 - Unable to obtain DHCP:

                                        @dylan123 So if you added has_usb_nic=1 to the FOG_KERNEL_ARGS field in fog settings, this would be the reason you “didn’t have to add it back”. This “flag” doesn’t automatically set itself, so the only way to have it “preset” is if you entered this in FOG Configuration Page->FOG Settings->Expand All->FOG_KERNEL_ARGS

                                        Think I was half correct with what I said, I must have had the host with the mac still added. Interestingly though, I’ve found I don’t need that command for the surface 3s.

                                        • So basically in the config > fog settings > fog_kernel_args section, that’s blank.
                                        • In my host section, it only contains two laptops that are both the HP models I’ve been previously working with, no surfaces.
                                        • I can then turn on any surface 3 and it will boot to the fog menu where I can either quick register it (not much point) or deploy the surface 3 image I took yesterday.
                                          *I did a quick register of the surface 3 given I thought it automatically added the has_usb_nic=1 to the arg section however it didn’t. It still added the surface to my list of hosts though
                                        • I then tried with a surface 4, it booted to the fog section but when I selected ‘quick register’ I got then ‘unable to obtain DHCP address’ type error message which suggests for the surface 4, I need to have the has_usb_nic=1 argument.

                                        Just thought it was interesting how that worked, probably come across that though with other people that have been trying to image surfaces.

                                        1 Reply Last reply Reply Quote 0
                                        • 1
                                        • 2
                                        • 1 / 2
                                        • First post
                                          Last post

                                        226

                                        Online

                                        12.0k

                                        Users

                                        17.3k

                                        Topics

                                        155.2k

                                        Posts
                                        Copyright © 2012-2024 FOG Project