Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility



  • I have a Microsoft Surface Go, and I was wondering if there was compatibility for it in the works; the only reason why I am asking is due to the code block down below.

    I have tried:

    • Kernel - 4.18.3 TomElliott 64
    • Kernel - 4.18.3 TomElliott arm
    • Kernel - 4.18.3 TomElliott arm64
    • Boot Method - ipxe.efi

    Should I try messing with the different boot files (i.e. undionly.kpxe), or is there someway that I can help a kernel update (based on the code block), or is there something in the works and it would be better if I just wait a few days/weeks?

    I only have about two of these things (right now, at least), so building up two from scratch versus getting an image for one right now isn’t a complete hassle.

    The Model is: JWL-00001 [3.0 USB-C to Ethernet Adapter]

    db_root: cannot open: /etc/target
    Starting logging: OK
    Populating /dev using udev: udevd[2831]: error creating epoll fd: Function not implemented
    done
    Initializing random number generator... done.
    No network interfaces found, your kernel is most probably missing the correct driver!
    Please check your network setup and try again!
    ...
    Verifying network interface configuration.......failed
    No network interfaces found (verifyNetworkConnection)
    ...



  • @george1421 said in Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility:

    Just be aware I only gave you the 64 bit kernel. So the step you did above will break a 32 bit computer.

    Gotcha.

    If everything works OK with bzImage4186 you can leave it in the bzImage place. The only thing that is different is I added the microsoft nic. With the next release of the official FOG kernel they will add in the new Microsoft NIC.

    I’ll leave it under bzImage4186 until the next release. We don’t have any other machine right now that uses a USB-C NIC Adapter, so it should be fine.


  • Moderator

    @ttrammell said in Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility:

    cp bzImage bzImage32

    Just be aware I only gave you the 64 bit kernel. So the step you did above will break a 32 bit computer.

    If everything works OK with bzImage4186 you can leave it in the bzImage place. The only thing that is different is I added the microsoft nic. With the next release of the official FOG kernel they will add in the new Microsoft NIC.



  • Sorry, I just now got around the checking it.

    It works, but there’s a few extra steps I had to do to get it working.

    # Move it up to the server
    scp C:\bzImage4186 root@127.0.0.1:/var/www/html/fog/service/ipxe/bzImage4186
    # Log onto the server, and make it usable
    ...
    cd /var/www/html/fog/service/ipxe/
    chmod +x bzImage4186
    # Backup the old kernel files
    mv bzImage bzImage.bak
    mv bzImage32 bzImage.bak
    # Move bzImage4186 to a usable state so I can boot up the device
    mv bzImage4186 bzImage
    # This is just so I had bases covered
    cp bzImage bzImage32
    # Boot the device, register it in FOG, overwrite the kernel host arguments like you said
    # then move everything back to the way it was
    rm bzImage32
    mv bzImage bzImage4186
    mv bzImage.bak bzImage
    mv bzImage32.bak bzImage32
    

    This is just the recorded steps I took, but I can image it now, so thanks for the quick-fix @george1421!


  • Moderator

    ok here is the latest kernel based on 4.18.6 version of linux which contains the driver for your usb network adapter.

    https://drive.google.com/open?id=1683LeBerB-aNwzWhC1WKNClLZkNsxHlI

    1. Download that file as bzImage4186 and save it on the fog server to /var/www/html/fog/service/ipxe
    2. Manually register this target system with FOG gui
    3. Go into the host record for that host and change the host kernel value to bzImage4186
    4. Now pxe boot the target computer and select compatibility testing from the FOG iPXE menu. It should now pass the network testing.

    once you are comfortable with the new kernel, rename the old bzImage to something like bzImage.old and then rename bzImage4186 to bzImage so all systems will then use the updated kernel.


  • Moderator

    @ttrammell said in Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility:

    I may be mistaken by what you are saying here, but I am not using FOS-- this is straight network connection.

    Sorry I should have a been a bit clearer on several points. Trying to do things quickly and communicate effectively are often at odds.

    FOS is the customized version of linux that runs on the target computer to capture and deploy images to FOG. FOS is a sub-component of FOG.

    Let me grab the latest FOS config file and I’ll compile a temporary FOS kernel you can use that will support this hardware. This is only temporary until the main line code has been updated.



  • @george1421 said in Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility:

    So this needs to be added and FOS recompiled.

    I may be mistaken by what you are saying here, but I am not using FOS-- this is straight network connection.

    Here’s the picture:
    0_1537274937799_Upload.jpg


  • Moderator

    @ttrammell said in Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility:

    PID_0927

    I’m pretty sure that was the ID I added when I was building the kernels over and over.

    [edit] yes I found it: https://forums.fogproject.org/topic/12351/issue-imaging-with-surface-pro/9

    So this needs to be added and FOS recompiled.

        {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x0927)}
    

  • Developer

    @ttrammell If you post a picture we will surely be able to add the correct driver (if existing) or patch in the device IDs as George said.



  • I can’t get a picture right now, but there are only two under what @Sebastian-Roth asked for:

    Surface Ethernet Adapter Properties
    Hardware Ids
    USB/VID_045E&PID_0927&REV_3100
    USB/VID_045E&PID_0927


  • Moderator

    @Sebastian-Roth I can’t speak for this specific adapter, but when building the FOG kernel we do need to patch it for the new(ish) network adapters.

    This one is from the wiki drivers/net/usb/r8152.c

        {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}
        {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}
    

    I found another one during that nvme disk testing that is needed. I’d have to look back in my notes for the right code. Knowing the info you asked from the OP will allow us to include that driver in the FOS kernel.


  • Developer

    @ttrammell said in Microsoft Surface Go - USB-C to Ethernet Adapter Compatibility:

    The Model is: JWL-00001 [3.0 USB-C to Ethernet Adapter]

    Please help us figuring out which internal NIC chip is used in this adapter. Please send us a picture of the device IDs. Boot your Windows and open the device manager -> right click the ethernet adapter -> properties -> details
    alt text


  • Moderator

    Try has_usb_nic=1 as a host kernel argument under the host settings.



407
Online

5.4k
Users

12.6k
Topics

118.9k
Posts