Giter Site home page Giter Site logo

oxalin / usbip_windows Goto Github PK

View Code? Open in Web Editor NEW
91.0 36.0 36.0 525 KB

Project halted, moving to joint venture, see Readme. Revive Windows' USB/IP drivers and tools from the dormant SourceForge's one

Makefile 0.57% C++ 0.02% C 97.15% Batchfile 0.51% Shell 0.10% M4 0.81% Roff 0.83%
usbip windows

usbip_windows's Introduction

usbip_windows

This project is a fork of the original work from hirofuchi available https://sourceforge.net/projects/usbip/

Since the development of the original code was stopped in 2012, it took a lot of delay compared to the code living under the Linux's driver. The code was not officially compatible with newer versions of Windows beyond Windows 7. Also, it would fail to work against any Linux kernel over 3.14, when the driver moved from staging to stable and was ported to libudev in the process.

Objectives There are mostly 3 objectives to this fork:

  • Have a driver compatible with newer versions of Linux kernel beyond 3.14
  • Have a driver compatible with newer versions of Windows beyond Windows 7
  • Have a living source code where contributors can fix and add features as a community

Any interested person willing to contribute to the code is welcome.

  • The first action will be to search, find and gather patches lying around in pull requests to the original source code and in the forum.
  • Next will be to have a driver compatible with Linux kernel 3.15 and newer.

Latest updates

January, 28th, 2019

The project's development will not continue here. After discussing with KyungWoon Cho aka Cezuni, we will be working together from his directory. The goals, bugs and feature requests will be brought into this new joint venture. Any fixes missing from this new source code that were already incorporated under my repository will be ported to this new project.

The development that was taking place in bringing the userspace tools and library from Linux to Windows (and other OSes) will also take a new life under KyungWoon's project.

Please, visit this project and report any bug or feature request here: https://github.com/cezuni/usbip-win

Persons willing to help are welcome to join the project.

January, 8th, 2019

My computer has been set back up to be able to continue porting the userspace tools. And by this, I means the current code available from Linux.

The big problem I was facing the last time I worked on the project is the fact that these tools were ported to udev. Udev is great under Linux, but it is a major restriction for using them on other OSes. So one option would be to get the old common way of doing things from before they were ported to udev. This is not really an option because I hope to see the tools live outside of Linux's source code and this will only be accepted (hopefully) if they continue to use udev. Thus, this means that I need to use an abstraction approach to get the same results from any OS, but with different implementations. I think I have figured out how I will proceed, but I need to continue my exploration a bit more. Remember, this project also serves me to learn and develop new skills.

This approach should be used to port the tools to BSDs. I still have to figure out how hard it would be to port the drivers from Linux to BSD (I came along a FreeBSD request not so long ago).

Someone also pointed out that there is another active project aiming at having a full USP/IP implementation, with both client and server side drivers and tools. I had a quick look and it seems the userspace tools are based on the old code. While this is great to have working tools, I think we should find a way to combine both projects so the common tools could as close as possible to the ones under Linux, but with the extra Windows applications.

December, 4th, 2018

This project is still alive even though it has been awhile since my last commit. Porting the latest Linux userspace tools was going great when I halted the development a few months ago. The problem is that I'm working on the project only in my sparetimes and, since last year, I'm newly a father which gives me a lot less of free time. The only time available is once everyone is asleep where, very often, I also just fall asleep myself.

I should resume this work shortly, which is good news: I should have time during Christmas vacation and afterward. I'm also working on other projects, like VCE for AMD's GCN 1.0, some packages here and there, some tools that I work with at work regularly (XLS to GTFS | GTFSBuilder and TransitFeed). So, I'll still have to share my time across the board.

usbip_windows's People

Contributors

iamgd67 avatar mfmooney avatar oxalin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

usbip_windows's Issues

From SourceForge: Unknown Vendor:Unknown Product

Reported by: DanT
Date: 2011-09-23
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/58e75765/

Description: at the time, DanT reported that usbip was listing devices as "Unknown Vendor:Unknown Product". While he created a patch to populate these fields, another solution had been implemented meanwhile. From what I can see, it is relying on usb.ids. However, using this solution will always need an up-to-date usb.ids file and Windows may have a better way to have the appropriate information.

I've asked DanT if his work was also relying on usb.ids usage or if he was using another mechanism. Waiting to hear from him.

usbip.exe

Hi,

I am going through the readme in usbip-vhci and noticed the use of usbip.exe. Where can I find the executable?

I am using the executable from sourceforge's 0.2 zip and have the following error at the moment:
usbip -l 192.168.1.97

  • 192.168.1.97
    usbip err: usbip_network.c: 121 (usbip_recv_op_common) recv op_common, -1
    usbip err: usbip.c: 216 (query_exported_devices) recv op_common
    usbip err: usbip.c: 288 (show_exported_devices) query

Would you have any ideas as to what the issue may be? I believe I have built and installed the driver correctly.

Thank you,
James

Move from our own managed Cancel IRP routine to Cancel-safe IRP Queues

We implement and manage our own Cancel IRP routine. However, since Windows XP, this can be replaced and more easily managed by cancel-safe IRP queues.

Evaluate and possibly move to Cancel-Safe IRP Queues instead of our own cancel routine. Cancel-Safe IRP Queues are natively available since Windows XP. If we still want to support Windows 2000, we need to explicitly link againt the Csq.lib library that is included in the Windows Driver Kit (WDK).
See: https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/cancel-safe-irp-queues

[request] pre built driver binaries

Hello,
I just found your usbip_windows fork and started to play with it.
Still struggling with the build of the drivers. Do you think there is the possibillity
to upload / release a current build to play with?
thanks, helmut

From GitHub and SourceForge: USBIP_VERSION 262 (0x106) VS 273 (0x111) [driver VS utils]

Reported by: lcgamboa and Anonymous
Date: 2013-03-20
Links:
-lcgamboa/USBIP-Virtual-USB-Device@6f42bc5

Description: there is mismatch between the current USBIP_VERSION under Linux and Windows in the usbip-utils. Linux version is at 0x00000111 for the usbip-utils, while the driver doesn't have any trace left; under Windows, the driver is at 0x000106 (sic) while usbip-utils exposes both 0x000111 (config.h) and 0x000106 (configure.ac).

The usbip-utils and driver both use the same USBIP_VERSION definition, at least for a while, but there was a confusion in its meaning: it should represent a protocol version that doesn't increase unless the protocol is changed).

There is also a LIBUSBIP_VERSION, which seems to still be at 0.1.0 under both OSes.

usbip-utils Compile error

I use vs2015 and VS2010 to compile usbip-utils, but I can't compile directly. There will be a lot of mistakes.

Missing files

Hello,

i tried to install your driver, but windows tells me there is a file missing and it wont continue installing it.

Also i can not find a usbip.exe file, how do i use the driver? Should i use the one from the original project?

From SourceForge: invalid URB length (less than 4 bytes), some devices don't respond

Reported by: daniel danzberger
Date: 2013-02-18
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/af21439c/

Description: "invalid read lengths < 4 bytes on some urbs. Causes some devices to not respond on this urb."

Proposed fix (to be validated):
Index: busenum.c
-- busenum.c (revision 201)
+++ busenum.c (working copy)
@@ -832,15 +832,23 @@

CHECK_SIZE_READ

++ len = req->TransferBufferLength;
++
++ /* minimal read len is 4 bytes */
++ if (len != 0 && len < 4)
++ len = 4;
++
set_cmd_submit_usbip_header (h,
seqnum, devid,
USBIP_DIR_IN, 0,
-- USBD_SHORT_TRANSFER_OK, req->TransferBufferLength);
++ USBD_SHORT_TRANSFER_OK,
++ len
++ );
build_setup_packet(setup,
USBIP_DIR_IN,
BMREQUEST_STANDARD, BMREQUEST_TO_DEVICE, USB_REQUEST_GET_DESCRIPTOR);

-- setup->wLength = (unsigned short)req->TransferBufferLength;
++ setup->wLength = (unsigned short)len;
setup->wValue = (req->DescriptorType<<8) | req->Index;

switch(req->DescriptorType){
Index: busenum.h

usbip - windows - is this the client only?

I thin I'm using the old v0.2 version, and have installed the driver.

But am I correct that this is the client side only? and that windows cannot host the device? I have a windows that I would like to host the usb device for a linux machine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.