Surface 3 Fails to Image


  • Senior Developer

    Kernels have been updated with the non-CDC-ETHER but with the patch in this thread. Please update and let me know if things are (or are not) functional now?


  • Developer

    @wwarsin @Imperilled I just found out that all the RTL8152/8153 based connectors are blacklisted in the cdc_ether driver (see here: http://lxr.free-electrons.com/source/drivers/net/usb/cdc_ether.c#L686). Your microsoft NIC isn’t just because they don’t know/care about those yet I guess.

    What does this mean? To my understanding the cdc_ether driver is not happy with those realtek USB NICs and tries to stay out of the way. But because your NICs IDs are not blacklisted the driver still jumps in - and might possibly work.

    But there is a “real” RTL8152/8153 driver in linux as well (http://lxr.free-electrons.com/source/drivers/net/usb/r8152.c) but this one is not finding your USB NICs as it is not aware of those microsoft IDs either…

    I am compiling a patched kernel (4.3.0) right now. Would you please give this a try. Just move your current bzImage out of the way (backup) and put this test kernel into place.

    Update: Just after having finished compiling the kernel I stumbled upon a patch which someone else came up with. Guess what. It’s pretty much exactly what I just did: http://svn.exactcode.de/t2/trunk/package/base/linux/surface-dock-eth.patch

    So here is the bzImage: https://drive.google.com/folderview?id=0B-bOeHjoUmyMV095YVpsR3U5VFk&usp=sharing



  • @wwarsin said:

    @Tom-Elliott Hi Tom, I just tried that and recieved the following error (I’m on SVN 5666 now)

    FOGFTP: Failed to rename file. Remote Path: //var/www/html/fog/service/ipxe/bzImage/backup/bzImage_20151207_214012, Local Path: /var/www/html/fog/service/ipxe/bzImage, Error: ftp_rename(): Rename failed.
    

    You’ll find the FTP credentials and host used for the Kernel updater here:

    FOG Configuration -> FOG Settings -> TFTP Server ->

    • FOG_TFTP_HOST #This is the IP that FTP uses for putting the kernel in place.
    • FOG_TFTP_FTP_USERNAME #This is the username FTP uses.
    • FOG_TFTP_FTP_PASSWORD #This is the password FTP uses.
    • FOG_TFTP_PXE_KERNEL_DIR #This is where FTP tries to put the kernels.

    Also, @Tom-Elliott I’ve recently discovered a bug. I don’t know how long it’s existed but I was able to figure it out today. On both our Administration FOG setup, and my building’s FOG setup (which is separate), the FOG_TFTP_PXE_KERNEL_DIR is missing a slash in the path:
    /var/www/html/fog/service/ipxe/ The one colored red. I manually corrected it on both and it works, but we didn’t manually remove that slash. Just pointing that out to maybe help others with the issue.



  • @Sebastian-Roth Yes, sorry i didn’t make that clear, I tried 4.2.3 yesterday. I too am confused as i didn’t have the network problem when i was on SVN 5473 only when I upgraded to 5590.

    I tried 4.2.3 again today (still on SVN 5666) (manually deleted bzimage and bzimage32) and used the Kernel update page to download 4.2.3 and i get the same error i posted yesterday.

    I booted back into debug mode and verified that the ID of the network adapter is still 045e:07ab.
    If i have time today I’ll see if i can do a fresh FOG install using the current stable release and then download kernel 4.2.3 and see if i get the same thing.

    @Imperilled Are you using the Microsoft 10/100 network adapter (1552) or the Microsoft gigabit adapter (1663)?


  • Developer

    @wwarsin Downgrading is not supported. It might work (if there were no major changes in the DB) but it might also cause serious problems. And it wouldn’t help much anyway because the installer always downloads the current kernel. So you would end up with an older version of the webinterface with a current kernel. No better than what you have right now.

    Have you tried 4.2.3 yet?

    Yeah, I was getting past the network portion before i upgraded to SVN…

    Now I am confused! Do you really mean the network was fine BEFORE upgrading to SVN (so using 1.2.0)?? I kind of doubt. You mean before upgrading to 5590!??

    I really don’t understand why this NIC would use the cdc_ether driver if it’s really a realtek NIC…



  • @Sebastian-Roth Yeah, I was getting past the network portion before i upgraded to SVN… Am I able to download the current package from sourceforge and downgrade FOG?

    Yes I see the same CDC and cat errors in 4.2.2 & 3.18.5

    I appreciate the help you and Tom have been so far!


  • Developer

    @wwarsin So you cannot make it work again even if you use older kernels? When initially posting you didn’t have those network issues, right?

    Do you always see the same error messages (“cdc_ether 1-2.1:2.0 eth0: kevent 12 may have been dropped” and “cat: /sys/class/net/eth0/carrier: Invalid argument”)?? Kernel 4.2.2 and 3.18.5 as well??

    I really hope we can make this work for you. Others have been successfully imaging their surfaces and you are pretty close as well I reckon.



  • @Tom-Elliott Hi Tom, I just tried that and recieved the following error (I’m on SVN 5666 now)

    FOGFTP: Failed to rename file. Remote Path: //var/www/html/fog/service/ipxe/bzImage/backup/bzImage_20151207_214012, Local Path: /var/www/html/fog/service/ipxe/bzImage, Error: ftp_rename(): Rename failed.
    

    I manually renamed the files manually, tried again and it downloaded them.

    I still get the same error message on the FOG screen, I’m not sure if this bit helps i must have missed it before:

    Error ident-mapping new memmap (0x13ac72000)!
    i0042: No controller found
    Starting logging: OK
    Populating /dev using udev: udevdp2316]: error creating epoll fd: Fonction not implemented
    done
    Initializing random number generator... done.
    Starting eth0 interface
    cdc_ether 1-2.1:2.0 eth0: kevent 12 may have been dropped
    udhcpc (v1.23.2) started
    Sending discover...
    Read error: Network is down, reopening socket
    udhcpc: bind: no such device
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    cat: /sys/class/net/eth0/carrier: Invalid argument
    ssh-keygen: generating new host keys: RSA DSA
    

    Then the FOG logo screen loads and fails with No Network interfaces found.

    I tried Kernel 4.2.2 and 3.18.5 as well and received the same thing…


  • Senior Developer

    @wwarsin you could use the kernel update page to select the kernel you need.


  • Senior Developer

    @Sebastian-Roth sorry I didn’t get to this sooner when I get home tonight I’ll try to get this done. I’m tired today though so I’m sorry if I forget again lol.



  • @Imperilled I tried that and the iPXE loader gets stuck (freezes) right after loading “Init.xz” (which is right after bzimage)



  • @wwarsin I just change bzImage file in the directory after downloading it in fog sourceforge…



  • @Imperilled Would you mind creating some steps to manually install the 4.2.3 kernel so i can try it out? I have a feeling I’ll run into the same problem before i updated where it either didn’t detect the hard drive or tried to image but just set Complete and never actually captured the image…



  • Imaging and deploy works but he make a raw image. I will try to set compression as default to see if it’s better …



  • finaly it works for me with 4.2.3 kernel manualy installed.


  • Developer

    Looking through the changes we made in the kernel config I can’t find anything related to USB NICs except the cdc_ether thing we removed only a good week ago. @Tom-Elliott do you think this might be an issue caused by going from 4.2.3 to 4.3.0? I kind of doubt it. Would you mind adding the cdc_ether thing to the very latest kernel and upload bzImage/init.xz somewhere for @wwarsin and @Imperilled to try out?



  • Same problem on my Surfaces. I have menu but when I make task. Network device not found :(
    I run svn 5612.



  • @Sebastian-Roth
    In device manager the inf name property is set to oem12.inf and in that file i see the exact same line you posted (see below)

    Yes, you are correct. Before I upgraded FOG to 5590 it would pass the network check
    When i run the command find /var -name “bzImage” it returns just the following:

    root@MICSBRIFOG01:/# find /var -name "bzImage"
    /var/www/html/fog/service/ipxe/bzImage
    root@MICSBRIFOG01:/# 
    

    Unfortunately we only have the 10/100 model (1552) adapters and not the gigabit adapter (1663) to try and Micro$haft only lets you PXE boot with their adapters.

    I keep getting a forbidden when i try to upload the contents of the INF file (even with a txt extension) so here are the contents of the INF from the surface for the USB adapter:

    ; Copyright (C) 2013 Microsoft Corporation. All Right Reserved.
    ; 
    
    [Version]
    Signature   = "$Windows NT$"
    Class       = Net
    ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
    Provider    = %Microsoft%
    CatalogFile = msu64w8.cat
    DriverVer   = 08/06/2013,8.10.0806.2013
    
    [Manufacturer]
    %Microsoft% = Microsoft, NTamd64
    
    [ControlFlags]
    ExcludeFromSelect = *
    
    [Microsoft.NTamd64]
    %RTL8152B.DeviceDesc% = RTL8152B.ndi,USB\VID_045E&PID_07AB&REV_2000
    
    ;;****************************************************************************
    ;; Windows 8
    ;;****************************************************************************
    [RTL8152B.ndi.NT]
    AddReg = RTLUE8023W8.NT.Reg
    AddReg = About.reg,
    AddReg = Common.reg,
    AddReg = NetworkAddress.reg, Speed10_100.reg
    AddReg = ChksumOffloadIV4.reg, ChksumOffloadIV6.reg, flowctrl.reg, EEE.reg
    AddReg = PriorityVlanTag.reg
    AddReg = LsoV2Offload.reg
    
    Characteristics    = 0x84
    BusType            = 15
    CopyFiles          = Rtlunic.CopyFilesW8, RTLDLL.CopyFiles
    *IfType            = 6             ; IF_TYPE_ETHERNET_CSMACD 
    *MediaType         = 0             ; NdisMedium802_3
    *PhysicalMediaType = 14            ; NdisPhysicalMedium802_3
    
    
    [RTL8152B.ndi.NT.Services]
    AddService = msu64w8, 2, rtusnt.Service, common.EventLog
    
    ;*******************************************************************************
    ; common paramters
    ;*******************************************************************************
    
    [NetworkAddress.reg]
    HKR,Ndi\params\NetworkAddress,     ParamDesc,  0, %NetworkAddress%
    HKR,Ndi\params\NetworkAddress,     type,       0, "edit"
    HKR,Ndi\params\NetworkAddress,     default,    0, "000000000000"
    HKR,Ndi\params\NetworkAddress,     LimitText,  0, "12"
    HKR,Ndi\params\NetworkAddress,     UpperCase,  0, "1"
    HKR,Ndi\params\NetworkAddress,     Optional,   0, "1"
    
    [Speed10_100.reg]
    HKR,Ndi\params\*SpeedDuplex,       ParamDesc,  0, %SpeedDuplex%
    HKR,Ndi\params\*SpeedDuplex,       default,    0, "0"
    HKR,Ndi\params\*SpeedDuplex,       type,       0, "enum"
    HKR,Ndi\params\*SpeedDuplex\enum,  "0",        0, %AutoDetect%
    HKR,Ndi\params\*SpeedDuplex\enum,  "1",        0, %10Mb-Half-Duplex%
    HKR,Ndi\params\*SpeedDuplex\enum,  "2",        0, %10Mb-Full-Duplex%
    HKR,Ndi\params\*SpeedDuplex\enum,  "3",        0, %100Mb-Half-Duplex%
    HKR,Ndi\params\*SpeedDuplex\enum,  "4",        0, %100Mb-Full-Duplex%
    
    [flowctrl.reg]
    HKR,Ndi\params\*FlowControl,        ParamDesc,    0, %FlowControl%
    HKR,Ndi\params\*FlowControl,        default,      0, "3"
    HKR,Ndi\params\*FlowControl,        type,         0, "enum"
    HKR,Ndi\params\*FlowControl\enum,   "0",          0, %Disabled%
    HKR,Ndi\params\*FlowControl\enum,   "3",          0, %RxTxEnabled%
    
    [ChksumOffloadIV4.reg]
    HKR,Ndi\params\*IPChecksumOffloadIPv4,        ParamDesc,  0, %IPChksumOffv4%
    HKR,Ndi\params\*IPChecksumOffloadIPv4,        default,    0, "3"
    HKR,Ndi\params\*IPChecksumOffloadIPv4,        type,       0, "enum"
    HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,   "0",        0, %Disabled%
    HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,   "1",        0, %TxEnabled%
    HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,   "2",        0, %RxEnabled%
    HKR,Ndi\params\*IPChecksumOffloadIPv4\enum,   "3",        0, %RxTxEnabled%
    
    
    HKR,Ndi\params\*TCPChecksumOffloadIPv4,       ParamDesc,  0, %TCPChksumOffv4%
    HKR,Ndi\params\*TCPChecksumOffloadIPv4,       default,    0, "3"
    HKR,Ndi\params\*TCPChecksumOffloadIPv4,       type,       0, "enum"
    HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,  "0",        0, %Disabled%
    HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,  "1",        0, %TxEnabled%
    HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,  "2",        0, %RxEnabled%
    HKR,Ndi\params\*TCPChecksumOffloadIPv4\enum,  "3",        0, %RxTxEnabled%
    
    HKR,Ndi\params\*UDPChecksumOffloadIPv4,       ParamDesc,  0, %UDPChksumOffv4%
    HKR,Ndi\params\*UDPChecksumOffloadIPv4,       default,    0, "3"
    HKR,Ndi\params\*UDPChecksumOffloadIPv4,       type,       0, "enum"
    HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,  "0",        0, %Disabled%
    HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,  "1",        0, %TxEnabled%
    HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,  "2",        0, %RxEnabled%
    HKR,Ndi\params\*UDPChecksumOffloadIPv4\enum,  "3",        0, %RxTxEnabled%
    
    
    
    [ChksumOffloadIV6.reg]
    HKR,Ndi\params\*TCPChecksumOffloadIPv6,       ParamDesc,  0, %TCPChksumOffv6%
    HKR,Ndi\params\*TCPChecksumOffloadIPv6,       default,    0, "3"
    HKR,Ndi\params\*TCPChecksumOffloadIPv6,       type,       0, "enum"
    HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,  "0",        0, %Disabled%
    HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,  "1",        0, %TxEnabled%
    HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,  "2",        0, %RxEnabled%
    HKR,Ndi\params\*TCPChecksumOffloadIPv6\enum,  "3",        0, %RxTxEnabled%
    
    HKR,Ndi\params\*UDPChecksumOffloadIPv6,       ParamDesc,  0, %UDPChksumOffv6%
    HKR,Ndi\params\*UDPChecksumOffloadIPv6,       default,    0, "3"
    HKR,Ndi\params\*UDPChecksumOffloadIPv6,       type,       0, "enum"
    HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,  "0",        0, %Disabled%
    HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,  "1",        0, %TxEnabled%
    HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,  "2",        0, %RxEnabled%
    HKR,Ndi\params\*UDPChecksumOffloadIPv6\enum,  "3",        0, %RxTxEnabled%
    
    [PriorityVlanTag.reg]
    HKR,Ndi\params\*PriorityVLANTag,        ParamDesc,  0, %PriorityVLAN%
    HKR,Ndi\params\*PriorityVLANTag,        default,    0, "1"
    HKR,Ndi\params\*PriorityVLANTag,        type,       0, "enum"
    HKR,Ndi\params\*PriorityVLANTag\enum,   "0",        0, %Disabled%
    HKR,Ndi\params\*PriorityVLANTag\enum,   "1",        0, %Enabled%
    
    [LsoV2Offload.reg]
    HKR,Ndi\params\*LsoV2IPv4,       ParamDesc,  0, %LSOv2v4%
    HKR,Ndi\params\*LsoV2IPv4,       default,    0, "1"
    HKR,Ndi\params\*LsoV2IPv4,       type,       0, "enum"
    HKR,Ndi\params\*LsoV2IPv4\enum,  "0",        0, %Disabled%
    HKR,Ndi\params\*LsoV2IPv4\enum,  "1",        0, %Enabled%
    
    HKR,Ndi\params\*LsoV2IPv6,       ParamDesc,  0, %LSOv2v6%
    HKR,Ndi\params\*LsoV2IPv6,       default,    0, "1"
    HKR,Ndi\params\*LsoV2IPv6,       type,       0, "enum"
    HKR,Ndi\params\*LsoV2IPv6\enum,  "0",        0, %Disabled%
    HKR,Ndi\params\*LsoV2IPv6\enum,  "1",        0, %Enabled%
    
    [EEE.reg]
    HKR, Ndi\params\EEE,        ParamDesc,  0, %EEE%
    HKR, Ndi\params\EEE,        type,       0, "enum"
    HKR, Ndi\params\EEE,        default,    0, "1"
    HKR, Ndi\params\EEE\enum,   "0",        0, %Disabled%
    HKR, Ndi\params\EEE\enum,   "1",        0, %Enabled%
    
    [Common.reg]
    HKR,,HwOption,0x00010001,0
    HKR,,HwFlags,0x00010001,1
    
    [About.reg]
    HKR,,EnumPropPages32,,"msnicprop64.dll,RTNicPropPageProvider"
    
    ;*******************************************************************************
    ; Windows 8
    ;*******************************************************************************
    [RTLUE8023W8.NT.Reg]
    HKR, Ndi\Interfaces,  UpperRange, 0, "ndis5"
    HKR, Ndi\Interfaces,  LowerRange, 0, "ethernet"
    HKR, Ndi,             Service,    0, "msu64w8"
    
    [rtusnt.Service]
    DisplayName    = %Rtlunic.Service.DispName%
    ServiceType    = 1    ; %SERVICE_KERNEL_DRIVER%
    StartType      = 3    ; %SERRVICE_DEMAND_START%
    ErrorControl   = 1    ; %SERRVICE_ERROR_NORMAL%
    ServiceBinary  = %12%\msu64w8.sys
    LoadOrderGroup = NDIS
    
    [common.EventLog]
    AddReg = common.AddEventLog.reg
    
    [common.AddEventLog.reg]
    HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
    HKR, , TypesSupported  , 0x00010001, 7
    
    [Rtlunic.CopyFilesW8]
    msu64w8.sys,,,2
    
    [RTLDLL.CopyFiles]
    msnicprop64.dll,,,0x00006000 ; COPYFLG_NOPRUNE | COPYFLG_IN_USE_RENAME
    
    ;*******************************************************************************
    ; Destination Directory
    ;*******************************************************************************
    [DestinationDirs]
    Rtlunic.CopyFilesW8 = 12
    DefaultDestDir      = 11  ; LDID_SYS
    
    
    [SourceDisksNames]
    1=%DISKNAME%,,,
    
    [SourceDisksFiles]
    msu64w8.sys = 1,, ; on distribution disk 1
    msnicprop64.dll = 1,, ; on distribution disk 1
    
    ;*******************************************************************************
    ; Strings
    ;*******************************************************************************
    [Strings]
    Microsoft                      = "Microsoft"
    
    ;; Source disk name
    DISKNAME                       = "Microsoft USB NIC NDIS6.30 64-bit Driver"
    Rtlunic.Service.DispName       = "Microsoft USB NIC NDIS6.30 64-bit Driver"
    
    RTL8152B.DeviceDesc            = "Surface Ethernet Adapter"
    
    NetworkAddress                 = "Network Address"
    AutoDetect                     = "Auto Negotiation"
    SpeedDuplex                    = "Speed & Duplex"
    10Mb-Half-Duplex               = "10 Mbps Half Duplex"
    10Mb-Full-Duplex               = "10 Mbps Full Duplex"
    100Mb-Half-Duplex              = "100 Mbps Half Duplex"
    100Mb-Full-Duplex              = "100 Mbps Full Duplex"
    FlowControl                    = "Flow Control"
    
    PriorityVLAN                   = "Priority & VLAN"
    
    IPChksumOffv4                  = "IPv4 Checksum Offload"
    TCPChksumOffv4                 = "TCP Checksum Offload (IPv4)"
    UDPChksumOffv4                 = "UDP Checksum Offload (IPv4)"
    TCPChksumOffv6                 = "TCP Checksum Offload (IPv6)"
    UDPChksumOffv6                 = "UDP Checksum Offload (IPv6)"
    
    LSOv2v4                        = "Large Send Offload v2 (IPv4)"
    LSOv2v6                        = "Large Send Offload v2 (IPv6)"
    
    EEE                            = "Energy Efficient Ethernet"
    
    Enabled                        = "Enabled"
    Disabled                       = "Disabled"
    TxEnabled                      = "Tx Enabled"
    RxEnabled                      = "Rx Enabled"
    RxTxEnabled                    = "Rx & Tx Enabled"
    10MbFirst                      = "10 Mbps First"
    100MbFirst                     = "100 Mbps First"
    NotSpeedDown                   = "Not Speed Down"
    
    ;;;;; InfVer = 1.000
    

  • Developer

    @wwarsin said:

    045e:07ab

    Thanks for the IDs. Turns out that it is not easy to find information about this device on the net. I found a windows driver for it on the windows catalog update website (learn something new every day as I had no idea this existed…) and this is what I found in the INF file:

    %RTL8152B.DeviceDesc% = RTL8152B.ndi,USB\VID_045E&PID_07AB&REV_2000
    

    Are you able to confirm my findings?? Boot into windows, open device manager, find the USB NIC and see which driver it uses…?! The RTL8152 USB NICs are supported by our kernel and I really wonder if I am on the right track here.

    Re-reading your posts I wonder if I got this right. Before updating you were able to get past the networking stuff just fine (as I see in your first post). After updating to the latest version you see this “No network interfaces found” issue.

    On your FOG server please run this command to see if the old kernel is still there and was only moved out of the way when installing the latest version find /var -name "bzImage"



  • @Sebastian-Roth The adapter is a Microsoft Model 1552 - The ID from lsusb is 045e:07ab (i’m assuming this is the correct one as it doesn’t show up when i run lsusb when the network adapter is unplugged)

    The other USB IDs are:
    05e3:0608
    1d6b:0002
    1d6b:0003
    03f0:034a



543
Online

5.8k
Users

13.1k
Topics

123.2k
Posts