Menu

Windows Client v.0.2.0.0 Patched

2014-09-23
2021-12-01
  • Daniel Mitchell

    Daniel Mitchell - 2014-09-23

    To make this client a little more usable I am going to compile all the information about it in one thread.

    The version I patched/compiled myself is here, fixes the BSOD on disconnect problem:
    https://www.dropbox.com/s/oox021z1d7zblmu/usbip.zip?dl=0

    Patched driver source:
    https://www.dropbox.com/s/4qkq6gq7uui12j4/driver.7z?dl=0

    However, this driver is NOT signed, so you will have to follow these directions helpfully written up by reaxion:

    Open a command prompt as an admin and type:

    bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS

    bcdedit -set TESTSIGNING ON

    NOTE: Turning off driver signing is a security risk.

    If it doesn't work, for whatever reason, you can just remove loadoptions with bcedit and >switch testsigning off, though this is not recommended:

    bcdedit /deletevalue loadoptions

    bcdedit -set TESTSIGNING OFF

    For Windows 8.1, use the details on this page:

    http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/

    And then restart Windows.

    This driver only works with pre-3.14 linux kernels, the movement of usbip linux to source has changed it enough to not support the old windows client.

    Thanks to Prasanth for verification:

    I re compiled the kernel 3.14.x for my custom arm board called "SAMA5D3 xplained".
    It worked as expected. Any kernel greater that "3.14.x" is not compatible with the user space code."

     

    Last edit: Daniel Mitchell 2017-06-30
    • daive99

      daive99 - 2015-02-19

      I can't open the url, how can i get the Patched driver source.

       
  • Prasanth

    Prasanth - 2014-09-25

    Hi Daniel,
    I have patched the windows client code based on the suggested changes in the forum. It was working fine(with kernel 3.6.1) without bsod. Now the usbip linux code has been migrated to use libudev in the latest kernel(3.16.1). which is not working properly with the existing windows client. I am able to bind the device but i am not able to attach. The bNUmInterfaces returned from the linux server is always zero so the windows cleint is not able to query the interface details.

    Any thoughts on this ? Did you get any chance by attaching a usb device exported by the latest linux kernel(>=3.16.x)

    On what VERSION of kernel is your client compatible with ?

    Please advice

    Regards
    Prasanth

     
  • Daniel Mitchell

    Daniel Mitchell - 2014-09-30

    It seems that this project has become old enough to become permanently broken, I am having the same problems now after upgrading my kernel and I don't think that it will be an easy fix. Unfortunately no one is actively developing this project anymore, so it may never be fixed.

    I do know that usbipd version 3.14 works, but you will have to downgrade your kernel to a version of linux that supports this version, as linux 3.16 does not support usbipd 3.14. (Maybe linux kernel 3.14? I'm not really sure).

     
  • Prasanth

    Prasanth - 2014-10-15

    Hi Daniel,
    I re compiled the kernel 3.14.x for my custom arm board called "SAMA5D3 xplained".It worked as expected. Any kernel greater that "3.14.x" is not compatible with the user space code. But the surprising thing is from kernel 3.15.x , the usbip code has been moved out from staging and moved to source.
    :P #FeelingConfused

     

    Last edit: Prasanth 2014-10-15
  • Daniel Mitchell

    Daniel Mitchell - 2014-10-23

    Yeah they changed something. I wonder if someone with some initiative ported the new client from linux to Windows, maybe the driver would still work.

     
  • Anthony Tsaukpaetra

    Was there ever an update about getting this version signed? I was looking forward to using this on a server appliance, but obviously unexpected reboots aren't so healthy...

     
  • Daniel Mitchell

    Daniel Mitchell - 2015-11-19

    The signing guys never emailed me back, so its a no-go

     
  • Nelson Chen

    Nelson Chen - 2015-11-23

    That's a bummer Daniel. Have you tried their mailing list/forum?

    I'm interested in running USB/IP on Appveyor for automated testing purposes. But I can't seem to get the binaries as-is working in Windows 10 in my local VMs with test signing disabled. I installed the enumerator with the legacy device installation but usbip.exe -lD 127.0.0.1 shows it failing to connect to a port on localhost. The USB enumerator device does show up in Device manager. Do I need to do more?

    I'll try Windows 8.1/Server 2012 R2 sometime soon later. There's a concept with Appveyor I want to try but I got to see if the binaries work first in a VM where I can actually turn off test signing before investing further including things like signing the driver.

    My question is, anybody have Daniel's binaries working on Windows 10?

     

    Last edit: Nelson Chen 2015-11-23
  • Nelson Chen

    Nelson Chen - 2015-11-23

    Whoops, I'm an idiot. This doesn't support intercepting and filtering USB devices on Windows. That's OK, I guess. Still, this might be still useful.

     
  • Burov Dmitry

    Burov Dmitry - 2015-11-25

    subscribing

     
  • matszak

    matszak - 2015-12-25

    Hi Daniel
    I tried your windows driver and usbip.exe, it works on my win7-32 client and linux-3.10 server,great. I'm interested in making windows client to work with linux server greater than 3.16, would you pls post the source of your usbip.exe. Thanks.

     
  • Daniel Mitchell

    Daniel Mitchell - 2016-01-21

    Driver source is in top post, client source can be downloaded from the repository, I have made no changes to the client.

     

    Last edit: Daniel Mitchell 2016-01-21
  • Andreas Weber

    Andreas Weber - 2016-02-02

    What is needed to build the windows driver and the windows client? Is it possible with Mingw-w64? Since the development is dead as far as I can see, should we fork the windows driver side on github an try to get it working with current kernels?

    -- Andy

     
  • Lars Folkerts

    Lars Folkerts - 2016-02-17

    Thanks for this patch.
    However, I am struggling to get the usbip.ids file read to recogonize the device vendor and product. That is, I am still getting the output:

    usbip_org -l 172.16.99.57

    1-1.3: unknown vendor : unknown product (046d:c05a)
    : /sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.3
    : (Defined at Interface level) (00/00/00)

    1-1.2: unknown vendor : unknown product (0483:3748)
    : /sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2
    : (Defined at Interface level) (00/00/00)

    Edit: I am using too new of a kernel - I will need to downgrade

     

    Last edit: Lars Folkerts 2016-02-18
  • Daniel Mitchell

    Daniel Mitchell - 2017-06-30

    Links are updated so that they are not broken anymore. Dropbox shenanigans.

     
    • Alexandre Demers

      Hi Daniel,
      Would it be possible for you to provide a patch file containing only the modifications between your code and the master code?

      I'm looking into forking the code to revive it. If I jump on the wagon, I'd like to add any patches lying around with the proper attributions.

      Thank you.

       
    • Alexandre Demers

      Since I haven't heard from you, I've gone through your code and it seems you only modified pnp.c. I hope I correctly identified the modifications (in two functions from what I can see). I'll be creating a patch with your info and I'll add my "Reviewed-by" under my fork (moved to GitHub).

       
  • DXler

    DXler - 2017-12-02

    @Daniel Mitchell:

    Nice work! But one "error" is in the "usbip.exe": the program has "forget" to open the "usb.ids" file to identify the bind device(s)!

    The old version open the "usb.ids" file (you can check it with Sysinternals "Procmon". Click on the "Show File System Activity" button and start the logging).

    If I try to attach a device (with the patched version) I get the following error: "ERROR: cannot find device".

    I think the reason is that "usbip.exe" (patched version) not read the "usb.ids" file.

    I get the same "unknown vendor" / "unknown product" output as Lars Folkerts reported.

    P.S.: I use usbip on BPi (Banana Pi) with ARMBIAN (kernel 4.13.16) and I think it work 100 %!

    The "usbip" driver are the kernel driver.

     

    Last edit: DXler 2017-12-02
  • Glenn Thierens

    Glenn Thierens - 2017-12-19

    Hi,
    I'm experiencing the following problem.
    - Connect and disconnect all work (rapsberry server, win10 client).
    - However, sometimes there are BSOD's occuring when connecting a USB device.
    - Sometimes means:
    - on certain computers, there are BSOD's, other computers don't experience the problem
    - the problem is not reproducible (so far) and does not always occur, it tends to be at random
    - it looks like more recent computers have more often trouble

    For now, I use the original (signed) driver. Is it better to use the unsigned variant? Is this problem actively addressed in the 2.0.0 version? If so, has the usbip executable also been modified, or is this one not changed?

    Thanks in advance!

     
  • Alexander R. Pruss

    It would be great if someone could get the patched driver signed. The original driver was signed by the reactos people with their signing key. The same could be done for this one.

     
  • Jayden Hope

    Jayden Hope - 2021-12-01

    You could probably get the driver test signed my MakeCert. if that doesnt apply when distributed, include a guide to get them signed

     

Log in to post a comment.