Usbip error tcp connect

Проброс USB Добрый день! Пытаюсь пробросить USB устройства (допустим сертификат, принтер) через usbip c Astra Linux Orel терминала как толстого клиента на терминальный сервер Astra Linux Orel, шарится нормально. Но с сервера не цепляется. Так же пробовал с wtware тонкого клиента шарить через BUS ID и цеплять, аналогично, если шарить с самого себя и […]

Содержание

  1. Проброс USB
  2. Facing issue to bind usb port to wsl2 #98
  3. Comments
  4. usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed. #335
  5. Comments
  6. Footer

Проброс USB

Добрый день! Пытаюсь пробросить USB устройства (допустим сертификат, принтер) через usbip c Astra Linux Orel терминала как толстого клиента на терминальный сервер Astra Linux Orel, шарится нормально. Но с сервера не цепляется. Так же пробовал с wtware тонкого клиента шарить через BUS ID и цеплять, аналогично, если шарить с самого себя и подключаться к себе на сервер, то всё работает. Порт 3240 открыт везде. Выполняем подключение: usbip attach -r 192.168.0.40 -b 1-7 Ошибка: usbip: error: tcp connect При несуществующих ип адресах и где нет шары, ошибка эта же. Даже удалённо с сервера не отображает список юсб подключений, делаем: usbip list -r 192.168.0.40 получаем: usbip: error: could not connect to 192.168.0.40:3240: System error

На сервере и клиенте.

на сервере по 1 команде: root@ts1posh:/var/log# tcpdump -ni any port 3240 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 13:46:17.615141 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [P.], seq 3565525366:3565525445, ack 3547870498, win 23522, options [nop,nop,TS val 274418453 ecr 274416433], length 79 13:46:17.615279 IP 192.168.0.35.3240 > 192.168.0.35.55614: Flags [P.], seq 1:49, ack 79, win 546, options [nop,nop,TS val 274418453 ecr 274418453], length 48 13:46:17.615300 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [.], ack 49, win 23522, options [nop,nop,TS val 274418453 ecr 274418453], length 0 13:46:17.615404 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [P.], seq 79:127, ack 49, win 23522, options [nop,nop,TS val 274418453 ecr 274418453], length 48 13:46:17.615503 IP 192.168.0.35.3240 > 192.168.0.35.55614: Flags [P.], seq 49:110, ack 127, win 546, options [nop,nop,TS val 274418453 ecr 274418453], length 61 13:46:17.615514 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [.], ack 110, win 23522, options [nop,nop,TS val 274418453 ecr 274418453], length 0 13:46:19.627161 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [P.], seq 127:206, ack 110, win 23522, options [nop,nop,TS val 274420465 ecr 274418453], length 79 13:46:19.627339 IP 192.168.0.35.3240 > 192.168.0.35.55614: Flags [P.], seq 110:158, ack 206, win 546, options [nop,nop,TS val 274420465 ecr 274420465], length 48 13:46:19.627360 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [.], ack 158, win 23522, options [nop,nop,TS val 274420465 ecr 274420465], length 0 13:46:19.627499 IP 192.168.0.35.55614 > 192.168.0.35.3240: Flags [P.], seq 206:254, ack 158, win 23522, options [nop,nop,TS val 274420465 ecr 274420465], length 48 13:46:19.627646 IP 192.168.0.35.3240 > 192.168.0.35.55614: Flags [P.], seq 158:219, ack 254, win 546, options [nop,nop,TS val 274420465 ecr 274420465], length 61

По второй tcp 0 0 0.0.0.0:3240 0.0.0.0:* LISTEN 1014/usbipd
tcp6 0 0 . 3240 . * LISTEN 1014/usbipd

На клиенте по первой tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes и всё висит

по второй — выполняешь а ответа от команды нет, сразу следующая пустая строка root@astra:/home/user# netstat -tulpn | grep 3240 root@astra:/home/user#

Источник

Facing issue to bind usb port to wsl2 #98

I read this blog to connect my USB device to wsl2 but got error
https://devblogs.microsoft.com/commandline/connecting-usb-devices-to-wsl/

The text was updated successfully, but these errors were encountered:

indicates that you may have a firewall issue. Are you running a third party firewall? If so, you need to open TCP port 3240 on your host. usbipd-win installs a Windows firewall rule for that, but not all third party firewalls honor those Windows rules.

Okay, I turned off the firewall,
Now it shows a different error

the error is only coming for the integrated webcam

That’s the wrong way around.

  1. Stop service
  2. Then run usbipd server Logging:LogLevel:Default=Trace
  3. Finally, after getting the log, start the service again

Did you try to ‘attach’ while you were logging? This log is entirely empty. I need the log from the server while you reproduce the error you reported earlier.

Somehow it worked automatically after some tries, but now it’s showing the webcam in it’s list but can’t use it in applications

That error has been reported before, see #63.
The fact that attaches sometimes works, and sometimes does not is new information, thx.

Once the device is attached (and shows up in lsusb) it should work, but the standard WSL kernel probably does not have the Linux drivers. You will have to compile the WSL kernel with the right drivers, then your webcam should work normally.
See: https://github.com/dorssel/usbipd-win/wiki/WSL-support#building-your-own-usbip-enabled-wsl-2-kernel

I build the kernel, but the earlier error coming again

@sudip-mondal-2002
Please post the output of the following command

You are now facing issue #63. It can help to simply try attach again, or to unplug/replug the device, or to reboot the host. Unfortunately, this issue is tough to resolve.

Too bad. Other users had the System.IO.FileNotFoundException because of some incompatible software. But that does not seem to be your case. The only things I can advise:

  • Try attach multiple times, other users (as well as yourself!) did get their device to attach after multiple attempts.
  • Try unplugging/replugging the device
  • Reboot the host

But your USB controller/drivers somehow seem incompatible with usbipd-win . However, you reported:

Somehow it worked automatically after some tries

So hopefully you can get it to work with a little trial and error.

Источник

usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed. #335

I have installed a clean WSL v2 ubuntu today. Windows 11 release branch all updates.

uname -r
5.10.102.1-microsoft-standard-WSL2

I installed usbipd-win 2.2.0 via MSI. Windows service is running.

I have a terminal window open so WSL is alive.

When I run «usbipd wsl attach —busid=5-1» I get the error:

usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed.
usbip: error: tcp connect
usbipd: error: Failed to attach device with BUSID ‘5-1’.

Since other posts here about this imply the firewall is blocking, I turned off my Windows firewall completely and re-ran. Same error.

Do you have any other troubleshooting steps?

The text was updated successfully, but these errors were encountered:

That means: not Microsoft & not usbipd-win.

Please turn back on Window firewall, as usbipd-win has installed a nice rule (as stated in the README).
You need to find out what other software is blocking the port and fix that.

That means: not Microsoft & not usbipd-win.

Please turn back on Window firewall, as usbipd-win has installed a nice rule (as stated in the README). You need to find out what other software is blocking the port and fix that.

I checked the firewall rule before testing with the firewall off for one test. And added another inbound allow rule when it didn’t work, without the local subnet restriction as the WSL2 ip appears in a different subnet.

No third party firewall/security software on this machine. We are running Microsoft Endpoint Protection which monitors things but has few settings enabled relating to the firewall other than for public networks.

without the local subnet restriction as the WSL2 ip appears in a different subnet

Your host and the WSL instance are in the same subnet.

settings enabled relating to the firewall other than for public networks

That may be the problem. Unfortunately, Windows regards the WSL network connection as public.

If this is the problem, then I should have said «not Windows, not usbipd-win», as Microsoft Endpoint Protection obviously is Microsoft.

I also kept getting this error. I do not and never have had a 3rd party firewall.

After much debugging, I figured out that the auto-installed windows firewall rule was for the temporary install path of usbip, ie C:UsersMeappdatablahtempblahusbipd.exe and not the correct path of the service that was running, ie C:Program Filesusbipd-winusbipd.exe

Once I manually deleted and re-added with the correct path, I can now connect ( well, I’ve gotten past the tcp error anyway.. *)

Seems like there’s a bug in the installer when locating the exe path.

*
OK I still get this the firewall error when doing usbipd wsl attach .. from the windows host, however, from within the WSL2 guest I can at least connect to the socket using usbip attach -r 10.0.0.10 -b 11-4

@Knio
Interesting. How did you install usbipd-win? (winget or msi). What version did you install? Did you update from version x to y?
You say:

temporary install path of usbip, ie C:UsersMeappdatablahtempblahusbipd.exe

The installer does not use a «temporary install path», it is fixed to %ProgramFiles% (unless you have specifically overridden that using the command line installer msiexec.exe ). Did you ever compile/run from code, or always used the released installer?

And about the *. Does usbipd wsl attach actually not work, or does it work and you just got this additional warning?

This was a fresh install using usbipd-win_2.2.0.msi on Microsoft Windows [Version 10.0.19043.1526] . No upgrade and I didn’t compile anything. Unfortunately I didn’t write write down the actual path but there was a definitely in appdata

Tried again. it eventually times out, and the guest does not see any devices:

However it does put the device into the ‘Shared’ state after that, and then I can connect with -r

@Knio
Thank for the report. Earlier you said:

I can at least connect to the socket using usbip attach -r 10.0.0.10 -b 11-4

but for wsl attach you get

What are the (exact) IP configurations of both the host and the WSL instance? It puzzles me why wsl attach does not work, but manual attach does. It looks as if WSL and the host can reach each other via 2 different IP addresses.

My windows host is 10.0.0.10 assigned from a normal home NAT DHCP; I have no idea how WSL2 networking works, but it’s a fresh Ubuntu-20.04 WSL2 guest.

(From windows) I can see that the service is listening:

(From windows) and even connect to it:

So it kinda seems like the client binary is blocked, or this is some other problem with how it communicates with wsl?

@Knio
Your WSL has address 172.23.43.103/20 , which is normal. Your host must also have an IP in this subnet. That is what usbipd is using. When you manually attach using 10.0.0.10 , then it is normal that the default firewall rule will block it, since it is not in the same subnet.

So that explains the difference: usbipd is trying to attach to 172. and manually you use 10.

Question is: why is 172. not working. What is the hosts network configuration?

I think you got it. the 172. interface is just blocked. TLDR seems to be microsoft/WSL#4139

And with -r 172.23.32.1 it fails, and I get this:

@Knio
That makes sense. But why is the default WSL host address not accepting? Probably because you had this odd firewall rule.
Can you try a ‘repair’ install of usbipd-win? Or else a re-install? Does it reproduce?

The firewall rule is created by the MSI installer, which is a standard WiX extension:

Lines 18 to 26 in 87876c9

fw : FirewallException
Id = » usbipd «
Name = » usbipd «
Protocol = » tcp «
Port = » 3240 «
Profile = » all «
Scope = » localSubnet «
Description = » Allow computers on local subnets to access the USBIP Device Host service. «
/>

This is something I haven’t seen failing before.

So, 1) running the msi again and doing a «repair» operation didn’t fix anything, but..
2) doing a full uninstall and reinstall and it works now. ¯_(ツ)_/¯
Thanks for all your help here.

@Knio
Thanks for testing. It appears to be a known WiX issue: wixtoolset/issues#5675
Still don’t know why the rule was screwed up initially, but it makes sense now that a repair (or update) won’t fix the issue. Since a reinstall did fix it, I will consider it a fluke. Not much can be done about it, maybe the soon to be released WiX 4 may fix it. I consider your (sub-)issue closed now.

@pilcherd
If you haven’t solved this issue by now, could you try a reinstall? Or can we close this issue?

Thanks again. Hopefully this thread is at least helpful for other people debugging.

Any human being who faces this issue again the FIX is so simple, this thing got me pulling my hair OUT tryna fix it

First try to turn your firewall off, disconnect from the internet temporarily while doing so and check if it works, if it does then you gotta add a rule(you can search that up in google)

If that still doesn’t work then turn your VPN off, my god damn VPN was causing all of these issues and I was pulling my hair out

If the above doesn’t work then
open task manager(ESC + SHIFT + CTRL) , click the performance tab, open resource monitor and click the Network tab
Then in the «TCP Connections» tab look for any program that has the same port, in this case 3240 that’s running, once you find it goto Task Manager find the same process name and terminate it(assuming that you couldn’t close it safely)

Hopefully no one would face this issue again

None of the above solutions have worked for me. Any updates?

@siddirp
What OS are you using, 10 or 11? Are you using any additional security software besides Windows firewall and Windows Defender? Have you checked that the firewall rule (as mentioned in the Readme) was correctly installed? Can you ping between your Windows host and the WSL instance, on their shared subnet?

All of these problems have been traced back to either of these causes.

Windows 11 Pro version 22H2. OS Build 22610.1. Do I need the Insiders build or anything like that?
I do not have any security software except what came with the OS.
I’m not savvy at Firewall work, but I didn’t see usbipd in the inboud or outbound rules. Is that where I am supposed to look? Is there another name I should look for?
I can ping both ways.

I suggest a repair install or uninstall/reinstall of usbipd-win. Someone else reported that the firewall rule wasn’t installed properly and that a reinstall fixed it. Everything else looks fine.

I have tried that several times, several versions.

Please check again if the firewall rule exists. It should be under incoming rules. What happens if you try to manually run usbip attach on WSL? Does the connection time out?

Ok, I feel really dumb. I had just reset Windows to a fresh state. I had been using usbipd-win for quite a while and was so confused why it wasn’t working after this reset. It turns out some 3rd party anti-virus stuff WAS installed and I had no idea. Sorry for all the bother!

I have a repaved as of yesterday win11 22h2 install that my company’s device mgmt story adds carbon black and defender for endpoint antivirus/antimalware services to. The firewall rule is present with correct path to the usbipd program executable that sets up tcp/3240 listener on windows side of things.

from windows 11 22h2 powershell 7.2.6 admin prompt i see

from wsl ubuntu 20.04 bash prompt i see

Question — Do we know at this point that it is carbon black, defender for endpoint, etc. antivirus/antimalware software that creates this unexpected usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed. result? If so i don’t have permissions to temporarily stop those antivirus/antimalware software packages when i need to use usbipd, is their another workaround?

@myusrn
The standard way of jailbreaking a locked down system is to «tunnel out and reverse proxy». Start the sshd service on the client (if not already running). From the Windows host ssh into the client with:

Then, on the client you can just use «127.0.0.1» as «remote host». E.g. usbip list -r 127.0.0.1 .

@dorssel
Thanks for the optional workaround to try. Is «client» in this case referring to the wsl distro that i want to project the physical host usb thumb drive into and «host» is the windows host that wsl distro is running on?

After running usbipd list -r 127.0.0.1 , presumably on windows host that the wsl distro is running on, do i then use usbipd.exe wsl attach —busid #-## -r 127.0.0.1 to project the usb thumb drive into the wsl distro instead of usbipd.exe wsl attach —busid #-## —distribution Ubuntu ?

When i execute usbipd.exe list -r 127.0.0.1 on windows 11 host i get an unrecognized command or argument result. Do i need to install a version other that usbipd-win, 2.3.0 to get support for that switch?

You’re mixing server and client. You need to run usbip list -r 127.0.0.1 (without the ‘d’ in usbip) on the client side.

Thanks for additional clarifications and details. Yes i was overlooking the difference between when i use windows host ‘usbipd.exe’ and when i use wsl distro client ‘usbip’ utility.

After establishing ssh connection from windows host to wsl distro, with tunnel reverse proxy setting enabled [ ssh @ -R 3240:127.0.0.1:3240 ] to jailbreak locked down system, i then executed the usbip list —remote 127.0.0.1 command which showed expected results but the usbip attach —busid #-## —remote 127.0.0.1 command and get a Device not found and Device in error state respectively for two different usb thumb drives i attempted to mount into wsl distro.

Perhaps those error messages relate to a well understood additional configuration step i overlooked or need to apply?

Note that my windows host has a usb thumb drive read-only policy. This hasn’t affected other scenarios where i project usb thumb drives into a virtualized environment for read-write access, e.g. virtual machine console | connect / disconnect from host.

@myusrn
Ah . SanDisk. See https://github.com/dorssel/usbipd-win/wiki/Tested-Devices.
Here’s the report, and some hints to maybe get them to work: #425. But in essence: SanDisk flash drives behave weird and usually don’t work with USBIP.

@dorssel
Thanks for the pointers to likely reasons behind this error result. In addition to my SanDisk Ultra Fit 32gb Usb3.0 and SanDisk Ultra Dual Drive 128gb Usb3.1g1 devices that generated those results i had an older SanDisk Cruzer Facet 16gb Usb2.0 available to try and it produced similar result.

I don’t currently have a laptop or dock Usb2.0 port to test if having the port vs the device restrict the Usb protocol version to 2.0 would make a difference with any of these devices. Sounds like one should pickup one of the tested Usb 3.x drive devices and vet setup with that first.

For those who use VPN, the simple solution for me was allowing local network traffic. For example, in Mullvad I had to go to «Settings -> VPN settings» and turn on «Local network sharing» toggle.

© 2023 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

The USB/IP Project

  • Summary

  • Files

  • Reviews

  • Support

  • News

  • Discussion

  • Mailing Lists

  • Donate

  • SVN (Obsolete)

  • Git ▾

    • Windows
    • Web Page

Menu

USBIP Windows Client


Created:

2009-09-03

Updated:

2018-02-21

  • Galinette

    Dear All,

    I am trying th USBIP windows client.
    The usbip -l command works and shows me the devices on the specified linux host

    However usbip -l shows me the followin error message:
    usbip err: usbip_vbus_ui.c:  49 (usbip_vbus_dev_node_name) usbvbus interface is not registered
    usbip err:       usbip.c: 374 (show_port_status) open vbus driver

    I have the feeling that the driver is not installed. When I right-click/install the bus.inf file I have no error message, but then I cannot find busenum.sys in the registry so I think nothing was installed. Reboot doesn’t help.

    Thanks,

    Etienne

    • Galinette

      Sorry for the mistake : I wanted to say «usbip -l»  works but «usbip -p» displays the following error message

      Etienne

    • Cristiano

      I had exactly the same problem. Turns out you have to actively install the driver with «Add Hardware» on Control Panel. Say you have already connected the hardware, choose «Install hardware manually from a list», then «Show All Devices», «Have Disk» and finally find the bus.inf file.

      These instructions are on a file somewhere (maybe on SVN?), but I don’t remember where exactly.

      • Jeswin

        You can follow the following steps.

        To install the virtual usb bus driver on Windows XP:

        1. Uncompress the downloaded binary package to a directory.
        2. Double-click the ‘Add Hardware’ wizard in Control Panel.
        3. At the ‘Welcome to the Add Hardware Wizard’, click ‘Next’.
        4. Select ‘Yes, I have already connected the hardware’, then click Next.
        5. Select ‘Add a new hardware device’ from the list, then click Next.
        6. Select ‘Install the hardware that I manually select from a list(Advanced)’, and then click next.
        7. Select ‘System Devices’, then click Next.
        8. Click ‘Have Disk’, click ‘Browse’, choose the uncompressed directory, and click OK.
        9. Click on the ‘Virtual USB Bus Enumerator’, and then click Next.
        10. At ‘The wizard is ready to install your hardware’, click Next.
        11. Click Finish at ‘Completing the Add/Remove Hardware Wizard.’

        To use it:

        1. open a command prompt window, cd to the uncompressed directory.

        2. run usbip -l 192.168.2.1 to list the exported devices from ip 192.168.2.1

        3. run usbip -a 192.168.2.1 2-1 to imported the device.

        (Of course, you should change 192.168.2.1 and 2-1 to something else)

  • Anonymous

    Hi

    I installed as per instruction and all seems to be OK except error at beginning

    usbip -l 192.168.42.155

    usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.42.155 port 3240

    usbip dbg: usbip_network.c: 255 (tcp_connect ) 192.168.42.155:3240, no destinati
    on to connect to
    — 192.168.42.155 failed

    any advice ?

    thanks
    Peter

  • Bill Kearney

    Is the daemon actually running on the linux machine at 192.168.42.155?  You can start it from a terminal shell, just run it as a program.  usbipd with no parameters.  That’ll leave it running in the terminal so you can see whatever messages it generates.

  • Raghavendra

    Hi

    The driver is installed as said in the above procedure on Windows XP.

    I am not able to attach the usb port for sharing on network.  When following command is run to attach

    somefolder>usbip -a 10.246.78.198 0
    usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 10.246.78.198 port 3240

    usbip dbg: usbip_network.c: 255 (tcp_connect ) 10.246.78.198:3240, no destination to connect to
    usbip err:       usbip.c: 294 (attach_device) tcp connect

    Help to solve the problem.

    Thanks
    Raghavendra

  • Arjan Mels

    Sounds like the daemon (usbipd) is not running on your server.

  • Raghavendra

    Thanks for the solution.  Where can I find it? How to run the daemon (usbipd)?

  • Arjan Mels

  • Fred

    I am attempting to fully understand how the windows client works.
    Currently I can establish a connection to the remote device, however the it seems the command prompt must stay open for the duration of the session as I have thew following:

    new usb device attached to usbvbus port 1
    Receive sequence:    47900
    

    If I close the terminal session the connection is closed.

    I am using version «usbip_windows_v0.2.0.0_signed»

    Is this a normal function?
    Is there a work around so that I don’t have to keep a terminal session open at all times?
    How can I make it so that my usbip sessions are constant through restarts?

    Many thanks in advance for any comments.

    Regards

    Fred

  • Arjan Mels

    You indeed have to keep rge program running. So normal function.

    To keep the sessions ocnstant during restart, you could use some startup scripts.

    I am busy developing a GUI version which will also support this.

    Regards,

    Arjan

  • Andrey Bogachenkov

    Hi all,

    Driver 0.2.0 is installed properly and device «USB/IP Enumerator» is seen in System Devices.

    I can see shared devices with usbip -l <server>, but when I try to connect it with usbip -a, I get:

    C:UsbIp>usbip -a 192.168.1.173 4-1
    request failed at peer, 1
    usbip err: usbip_windows.c: 712 (query_import_device) recv op_common
    usbip err: usbip_windows.c: 840 (attach_device) query

    or with debug option:
    C:UsbIp>usbip -D -a 192.168.1.173 4-1
    usbip dbg: usbip_network.c: 223 (tcp_connect ) trying 192.168.1.173 port 3240

    usbip dbg: usbip_network.c: 243 (tcp_connect ) connected to 192.168.1.173:3240
    usbip dbg: usbip_windows.c: 767 (query_interface0) exportable 1 devices
    usbip dbg: usbip_windows.c: 784 (query_interface0)      4-1: Aladdin Knowledge
    ystems : HASP v0.06 (0529:0001)
    usbip dbg: usbip_windows.c: 785 (query_interface0)         : /sys/devices/pci00
    0:00/0000:00:1d.2/usb4/4-1
    usbip dbg: usbip_windows.c: 786 (query_interface0)         : Vendor Specific Cl
    ss / unknown subclass / unknown protocol (ff/00/00)
    usbip dbg: usbip_windows.c: 806 (query_interface0)         :  0 — Vendor Specif
    c Class / unknown subclass / unknown protocol (ff/00/00)
    usbip dbg: usbip_windows.c: 809 (query_interface0)
    usbip dbg: usbip_network.c: 223 (tcp_connect ) trying 192.168.1.173 port 3240

    usbip dbg: usbip_network.c: 243 (tcp_connect ) connected to 192.168.1.173:3240
    request failed at peer, 1
    usbip err: usbip_windows.c: 712 (query_import_device) recv op_common
    usbip err: usbip_windows.c: 840 (attach_device) query

    Can anybody help me?

    BR,
    Andy

  • Arjan Mels

    Can you show the output of usbip -l? Usually device numbers take the form 4-1.1 (Bus 4-Device 1 function 1) (so I am suprised by the 4-1).

  • kinlau

    hello, arjanmels.
    I used client tool 0.2.0, attach a camera from ubuntu. When I start camera, something wrong on it.

    new usb device attached to usbvbus port 1

    usbip err: f:usbipwindowstagusbip_windows-0.2.0.0usbip_vbus_ui.c: 275 (usbi
    p_header_correct_endian) unknown command in pdu header: 0

    the messages on server(ubuntu) is:

    write “add 1-1” to /sys/bus/drivers/usbip/match_busid
    message: bind 1-1 to usbip, complete
    listen at  :3240
    usbipd start (usbip 0.1.7 ($ID: stub_server.c …)
    connected from …..
    connect 1-1

    whether  the version 0.1.7 on the server not match the version 0.2.0 on the client?
    or sth. else?

  • kinlau

    my ubuntu version: linux ubuntu 2.6.38-8-generic #42-ubuntu SMP Mon Apr 11

  • kinlau

    client side is win7 os

    before this, I could not attache the device in xp os

  • Mark

    I’m seeing a slightly different problem….can’t even get «-l» to work.

    Server (192.168.0.4) up and running, one device shared as per usage README.

    Client is XP-32bit. Drivers installed per instructions. I can ping the server no problem, but when I try usbip -l 192.168.0.4 I get:

    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

    BTW — I checked in the device manager, and the USB/IP ENUMERATOR is listed and shows it is working properly. Any ideas?

    Thanks.

    • Ildar Mulyukov

       

      Last edit: Ildar Mulyukov 2013-11-18

  • Arjan Mels

    Hi Kinlau, I have been on holidays for a while.  Did you solve your problem in the mean time?

    Epicmark is the usbipd (daemon) running on the linux box?

  • kinlau

    Welcome back, arjanmels.

    Now, I have connceted server(1.0.0) with usbip on xp/win7(I rebuilt it for version mismatch).
    usbip -l XXX can be used.
    usbip -a XXX x-x can be used, but when xp/win7 detected the device, it cannot find the divice driver.
    My device on the server is a camera, and it works well.

  • kinlau

    My vhci driver is version 0.2.0.0.

    Thanks!

  • kinlau

    Hi, arjanmels.
    Today, I have tested usbip.exe(0.1.0.0) to connect usbipd(0.1.7) successfully. And vhci driver is 0.2.0.0.
    I used two webcam to test it.
    usbip.exe can find the two webcam plugged in the server, and client OS can installed the cameraes’s driver successfully.
    But when I start the first camera, it happens erros as follows:
    usbip err: usbip_vbus_ui.c: 266 (usbip_header_correct_endian) unknown command in pdu header: 0
    When I start the second camera, blue screen happens.

  • kinlau

    Who can help me, please?
    I have tested this enviroment many times in different machines.
    why does the usbip error happen? usbipd has no errors.

    Thank you!!!

  • Anonymous

    Hi, I’m finding the same problem on a XP client, ArchLinux server. On the server, usbip -l localhost works fine, but on the client’s doesn’t:

    C:Documents and SettingsimasdetresEscritoriousbip>usbip -D -l 192.168.1.199
    usbip dbg: usbip_network.c: 223 (tcp_connect ) trying 192.168.1.199 port 3240
    usbip dbg: usbip_network.c: 243 (tcp_connect ) connected to 192.168.1.199:3240
    - 192.168.1.199
    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
    

    and on the server I see

    onnected from 192.168.1.170:2664
    usbip err: usbip_network.c: 119 (usbip_recv_op_common) recv op_common, -1
    usbip err: stub_server.c: 197 (recv_pdu    ) recv op_common, -1
    usbip err: stub_server.c: 413 (process_comming_request) process recieved pdu
    

Log in to post a comment.

  • Печать

Страницы: [1]   Вниз

Тема: USBIP  (Прочитано 6283 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
RW1R

Всем доброго времени суток!
Столкнулся с проблемой проброса USB over IP, а если точнее, то с настройкой/установкой USBIP. Гуглеж ответов на мои вопросы не нашел, поэтому обращаюсь к Вам, коллеги!

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

Устанавливаю USBIP следующим образом:
1)

sudo modprobe usbip-host2)

sudo modprobe usbip-core3) стартую демон

sudo usbipd -D
и тут вылазит вот это:

usbip err: stub_driver.c:  33 (open_sysfs_stub_driver) usbip_common_mod.ko and usbip.ko must be loaded

** (process:20029): ERROR **: driver open failed
Ловушка трассировки/останова

Соответственно дальше все тщетно…

Подскажите куда пихать когда первый раз, что делать?


Punko

насколько я могу понять, не хватает нужных модулей ядра.


Оффлайн
RW1R

Насколько я понял, в репах лежит битая (или нерабочая) версия usbip. Гуглеж вывел меня вот на это: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/898003, пост № 34. Запустил — работает, во всяком случае ошибок не вылезает, но теперь другая проблема:

usbip list -r Х.Х.Х.Х
usbip: error: could not connect to Х.Х.Х.Х:3240: System error
Пытался посмотреть девайсы на удаленной машине через Хамачи, возможно дело в нем, вечером проверю по локалке.

« Последнее редактирование: 08 Сентября 2016, 12:09:02 от RW1R »


Punko

RW1R,

Насколько я понял, в репах лежит битая (или нерабочая) версия usbip

возможно, баг даже не присоединили ни к кому, хотя он уже и старый.
Возможно, надо мейнтейнеров пинать, чтоб что-то изменилось.


Оффлайн
RW1R

По локалке, к сожалению, та же беда. Подскажите, нужно ли конфигурировать клиента, для того, чтобы расшарить usb?


Пользователь добавил сообщение 08 Сентября 2016, 22:14:52:


Разобрался! It works!))
Делал так:
1)

usbipd -D — Стартанул демона
2)

netstat -alpt | grep usbipd
ответ:

tcp        0      0 *:3240                  *:*                     LISTEN      25989/usbipd   
tcp6       0      0 [::]:3240               [::]:*                  LISTEN      25989/usbipd   

3) Открыл порт в фаерволле (иначе не заработает):

iptables -I INPUT -p tcp -m tcp --dport 3240 -j ACCEPT
4)

usbip list -lОтвет:

- busid 3-2 (0951:1665)
   Kingston Technology : Digital DataTraveler SE9 64GB (0951:1665)
...

5) На клиенте и сервере делаем так:

sudo modprobe vhci-hcd
6) Биндим нужный девайс:

usbip bind -b 3-2Ответ:

usbip: info: bind device on busid 3-2: complete
7) С удаленной машины делаем так:

usbip list -r Х.Х.Х.Х

« Последнее редактирование: 11 Сентября 2016, 13:55:33 от RW1R »


Оффлайн
jester81

День добрый, принимайте еще одного новичка )))
у меня так жене получалось эту программу настроить
строил немного иначе:

Мне нужно пробросить по сети ЮЗБ с ЛИНУКСОВОЙ МАШИНЫ ( Xubuntu 12)  на виндовую машину, Чтоб работать
 виндовыми программами с устройствами на ЛИНУКС машине

Устанавливаю USBIP по вот этой инструкции(ниже):

**************************************************
https://m.habrahabr.ru/post/177647/?mobile=yes

1. Установка серверной части USBIP.
Шаги установки/настройки ubuntu 12.04 server я пропущу.
1.1 Для начала требуется обновить систему.

sudo apt-get update && sudo apt-get dist-upgrade -y

1.2 Добавим репозиторий с usbip. Пакет есть и в стандартном репозитории, но там он оказался не рабочим.

sudo add-apt-repository ppa:whoopie79/ppa

1.3 Установим пакет usbip и включим нужные модули.

sudo apt-get install usbip -y
modprobe usbip-core
modprobe usbip-host

(можно и sudo modprobe vhci-hcd) тоже работает

1.4 Добавим нужные модули в автозагрузку. Для этого откроем файл /etc/modules в редакторе

sudo nano /etc/modules

и в конец добавим

usbip-core
usbip-host

можно и vhci-hcd

1.5 Создадим init.d скрипт. Для этого скопируем /etc/init.d/skeleton

cp /etc/init.d/skeleton /etc/init.d/usbip

Далее отредактируем строки в /etc/init.d/usbip

DESC=»usbip»
NAME=»usbipd»    (иногда на форумах видел без кавычек в этой строке)
DAEMON_ARGS=»-D»

После этого дадим права файлу

sudo chmod 755 /etc/init.d/usbipd

1.6 Добавим init.d скрипт в автозагрузку.

sudo update-rc.d usbipd defaults

1.7 Пришло время запустить usbip на сервере, для этого запустим команду в консоли

sudo /etc/init.d/usbipd start

Если команда не выдала ошибок, то все прошло удачно и можно приступать к пробросу usb устройства.

Вот тут у меня проблема, не стартует.
Пишет вот что:

/usr/sbin/usbipd: symbol lookup error: /usr/sbin/usbipd: undefined symbol: stub_driver

А если запустить так:
usbipd -D  — то вроде бы как запускается и в пямяти висит даже(TOP запускаю и смотрю)
команда: lsof -i:3240
выдает:
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
usbipd  3082 root    4u  IPv4  18171      0t0  TCP *:3240 (LISTEN)
usbipd  3082 root    5u  IPv6  18172      0t0  TCP *:3240 (LISTEN)

видимо порт3240 открыт и случается

Команда: usbip list -l
ВЫДАЛА устройства:
usbip: error: failed to open /usr/share/hwdata//usb.ids
Local USB devices
=================
 — busid 1-1 (8087:0024)
   unknown vendor : unknown product (8087:0024)
         1-1:1.0 -> hub

 — busid 1-1.1 (079b:0028)
   unknown vendor : unknown product (079b:0028)
         1-1.1:1.0 -> cdc_acm
         1-1.1:1.1 -> cdc_acm

 — busid 1-1.2 (15d9:0a4f)
   unknown vendor : unknown product (15d9:0a4f)
         1-1.2:1.0 -> usbhid

 — busid 1-1.3 (03eb:6119)
   unknown vendor : unknown product (03eb:6119)
         1-1.3:1.0 -> cdc_acm
         1-1.3:1.1 -> cdc_acm

 — busid 2-1 (8087:0024)
   unknown vendor : unknown product (8087:0024)
         2-1:1.0 -> hub

ВОТ МОИ УСТРОЙСТВА В РЕАЛЕ: # lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 03eb:6119 Atmel Corp. AT91SAM CDC Demo Application
Bus 001 Device 004: ID 15d9:0a4f Trust International B.V.
Bus 001 Device 003: ID 079b:0028 Sagem
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

мне бы достучаться хотя бы до …. Bus 001 Device 005: ID 03eb:6119 Atmel Corp. AT91SAM CDC Demo Application

но винда так подключится и не смогла по сети к линукс машине (но это позже)

Откуда вот эта ошибка ?
ПРИ ЗАПУСКЕ:  sudo /etc/init.d/usbipd start
Пишет вот что:
/usr/sbin/usbipd: symbol lookup error: /usr/sbin/usbipd: undefined symbol: stub_driver

При попытке расшарить:  sudo usbip bind -b 1-1.3
выдает: usbip: error: could not bind device to usbip-host

даю команду на флешку: usbip —debug bind —busid=2-1.1
получаю:
usbip: debug: usbip.c:135:[run_command] running command: `bind’
usbip: debug: usbip_bind.c:162:[unbind_other] 2-1.1:1.0 -> unknown
usbip: debug: utils.c:65:[modify_match_busid] write «add 2-1.1» to /sys/bus/usb/drivers/usbip-host/match_busid
usbip: debug: usbip_bind.c:101:[bind_usbip] bind driver at 2-1.1:1.0 failed
usbip: error: could not bind device to usbip-host
usbip: debug: utils.c:65:[modify_match_busid] write «del 2-1.1» to /sys/bus/usb/drivers/usbip-host/match_busid

« Последнее редактирование: 12 Октября 2016, 11:39:54 от jester81 »


Оффлайн
RW1R

Попробуй пойти по другому пути:

Насколько я понял, в репах лежит битая (или нерабочая) версия usbip. Гуглеж вывел меня вот на это: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/898003, пост № 34. Запустил — работает, во всяком случае ошибок не вылезает, но теперь другая проблема:

Попробуй так. Я сам новичок в линухе, но чем смогу — помогу)

« Последнее редактирование: 13 Октября 2016, 23:12:41 от RW1R »


Оффлайн
jester81

Переустановил линуху наново.
Выполнил АПГРЕЙД и АПДЕЙТ системы (пакетов).
Установил СИНАПТИК (установщик пакетов)
С помощью СИНАПТИКА установил linux-tools-generic и linux-tools-3.13.0-24, думал поможет перед установкой USBIP
После этого начал установку USBIP из консоли.

Установил как обычно, начинаю запуск:
sudo /etc/init.d/usbipd start
и получаю ошибку:
usbip err: stub_driver.c: 33 (open_sysfs_stub_driver) usbip_common_mod.ko and usbip.ko must be loaded

** (process:3351): ERROR **: driver open failed
Trace/breakpoint trap (core dumped)

Решаю установить некоторые необходимые вещи (с другого форума прочитал)
apt-get install libncurses5-dev build-essential linux-source dh-autoreconf libsysfs-dev
В папке /usr/src
появляется файл-архив: linux-source-3.13.0.tar.bz2 и рядом папка: linux-source-3.13.0
В папке нет того, что мне надо — распаковываю архив.
В нем есть много чего:

arch     
CREDITS 
debian.master 
dropped.txt 
include 
Kbuild   
lib                         
Makefile 
README         
scripts   
tools   
virt
block   
crypto   
Documentation 
firmware     
init     
Kconfig 
linux-source-3.13.0.tar.bz2 
mm       
REPORTING-BUGS 
security 
ubuntu
COPYING 
debian   
drivers       
fs           
ipc     
kernel   
MAINTAINERS                 
net       
samples       
sound     
usr

Перехожу в папку:
/usr/src/linux-source-3.13.0/drivers/staging/usbip/userspace
вижу файл: autogen.sh
запускаю на выполнение.
Проверяю наличие файла нужного мне (срочно): locate usbip_common_mod.ko — не нашло

Появились новые файлы, среди них появился: configure
Запускаю его тоже на выполнение….
После проверяю — файла «usbip_common_mod.ko» все еще нет.
При запуске службы ошибка осталась та же (((

Делаю:
make
make install

Файла пока нет …..

По совету с инпортного форума сделал:
apt-get install linux-tools-generic-lts-utopic
После этого в папке: /usr/lib/linux-tools/3.16.0-77-generic
нашел файлы: usbip and usbipd
Копирую их вместо старых (находясь в папке /usr/lib/linux-tools/3.16.0-77-generic):

/usr/lib/linux-tools/3.16.0-77-generic# cp usbip /usr/sbin/usbip
/usr/lib/linux-tools/3.16.0-77-generic# cp usbipd /usr/sbin/usbipd
/usr/lib/linux-tools/3.16.0-77-generic# cp usbip /usr/local/sbin/usbip
/usr/lib/linux-tools/3.16.0-77-generic# cp usbipd /usr/local/sbin/usbipd
(в обе папки, потому как не уверен от куда запуск идет)

Запускаю опять злощастную службу ))))
sudo /etc/init.d/usbipd start

ииииииииииииии
КРАСОТИЩА !!!
ЗАПУСТИЛОСЬ )))

Проверяю, есть ли в памяти:
Код

ps aux | grep usbip*
root      6819  0.0  0.1   3000  1616 ?        Ss   19:57   0:00 /usr/sbin/usbipd -D
root      6860  0.0  0.1   6164  2012 pts/4    S+   20:03   0:00 grep —color=auto usbip*

Вау — есть !!!!!!
Типа запустилось ))))

Код

# usbip list -l
usbip: error: failed to open /usr/share/hwdata//usb.ids
 - busid 4-1 (093a:2510)
   unknown vendor : unknown product (093a:2510)

 - busid 1-8 (05e3:0723)
   unknown vendor : unknown product (05e3:0723)

ВИДИТ устройства, но не понимает их, пока….
Исправляем это:
Код

mkdir /usr/share/hwdata
cp /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids

usbip list -l
 - busid 4-1 (093a:2510)
   Pixart Imaging, Inc. : Optical Mouse (093a:2510)

 - busid 1-8 (05e3:0723)
   Genesys Logic, Inc. : GL827L SD/MMC/MS Flash Card Reader (05e3:0723)


Получилось !!!!!

Пробуем расшарить устройство (скрещиваем пальцы)
Код

usbip bind -b 1-8
usbip: info: bind device on busid 1-8: complete

ВАУ — получилось, расшарило без ошибки )))))

Дальше дело за КЛИЕНТОМ.
Клиент стоит на ВИНДОВСЕ, ухожу мучать его )))
Скоро отпишусь

Добавлено через 3 часа 18 минут
WINDOWS 7 x 64
Запускаю командную строку
набираю:
c:USB_IP_2>usbip 192.168.1.5 -l -D

ПОЛУЧАЮ ОТВЕТ:
usbip dbg: usbip_network.c: 236 (tcp_connect ) trying

usbip dbg: usbip_network.c: 256 (tcp_connect ) connect
— 192.168.1.5
usbip dbg: usbip.c: 227 (query_exported_devices)
1-8: Genesys Logic, Inc. : unknown product (05e3:
: /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-
: (Defined at Interface level) (00/00/00)

— Видит расшаренное устройство.

Пробую присоединить к себе под виндой:

c:USB_IP_2>usbip 192.168.1.5 --attach 1-8 -D

usbip dbg: usbip_network.c: 236 (tcp_connect ) trying 192.168.1.5 port 3240

usbip dbg: usbip_network.c: 256 (tcp_connect ) connected to 192.168.1.5:3240
usbip dbg: usbip_windows.c: 837 (query_interface0) exportable 1 devices
usbip dbg: usbip_windows.c: 854 (query_interface0) 1-8: Genesys Logic, Inc.
: unknown product (05e3:0723)
usbip dbg: usbip_windows.c: 855 (query_interface0) : /sys/devices/pci000
0:00/0000:00:1d.7/usb1/1-8
usbip dbg: usbip_windows.c: 856 (query_interface0) : (Defined at Interfa
ce level) (00/00/00)
usbip dbg: usbip_windows.c: 879 (query_interface0)
usbip err: usbip_windows.c: 899 (attach_device) cannot find device


ОБЛОМ ПОКА!!! (ушел рыдать)


Оффлайн
RW1R

На стороне сервера порт открыт?


Оффлайн
jester81

ДА , порт открыт, файервол отключен
Телнетом с Винды проверял


  • Печать

Страницы: [1]   Вверх

Время прочтения
5 мин

Просмотры 129K

Регулярно возникает задача подключения USB-устройства к удаленному ПК через локальную сеть. Под катом изложена история моих поисков в этом направлении, и путь к готовому решению на базе open-source проекта USB/IP с описанием заботливо установленных различными людьми на этом пути препятствий, а также способов их обхода.

Часть первая, историческая

Если машина виртуальная — всё это несложно. Функционал проброса USB от хоста в виртуалку появился еще в VMWare 4.1. Но в моём случае ключик защиты, опознающийся как WIBU-KEY, нужно было в разное время подключать к разным машинам, и не только виртуальным.
Первый виток поиска в далеком 2009-м году привел меня к железке под названием TrendNet TU2-NU4
Плюсы:

  • иногда даже работает

Минусы:

  • работает не всегда. Допустим, ключ защиты Guardant Stealth II через неё не заводится, ругаясь ошибкой «устройство не может быть запущено».
  • ПО для управления (читай — монтирования и размонтирования USB-устройств) убого до крайности. Ключи командной строки, автоматизация — не, не слышали. Всё только руками. Кошмар.
  • управляющее ПО ищет саму железку в сети широковещанием, поэтому работает это только в пределах одного broadcast-сегмента сети. Указать IP-адрес железки руками нельзя. Железка в другой подсети? Тогда у вас проблема.
  • разработчики забили на устройство, слать баг-репорты бесполезно.

Второй виток случился во времена уже не столь отдаленные, и привел меня к теме статьи — USB/IP project. Привлекает открытостью, тем более, что ребята из ReactOS подписали им драйвер для Windows, так что теперь даже на x64 всё работает без всяких костылей вроде тестового режима. За что команде ReactOS огромное спасибо! Звучит всё красиво, попробуем пощупать, так ли оно на деле? К сожалению, сам проект тоже подзаброшен, и на поддержку рассчитывать не приходится — но где наша не пропадала, исходник есть, разберемся!

Часть вторая, серверно-линуксовая

Сервер USB/IP, расшаривающий USB-девайсы по сети, может быть поднят только в Linux-based OS. Ну что ж, линукс так линукс, устанавливаем на виртуалку Debian 8 в минимальной конфигурации, стандартное движение руками:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install usbip

Установились. Дальше интернет подсказывает, что нужно бы загрузить модуль usbip, но — здравствуйте, первые грабли. Нет такого модуля. А всё оттого, что большинство руководств в сети относятся к более старой ветке 0.1.x, а в крайней 0.2.0 модули usbip имеют другие названия.

Поэтому:

sudo modprobe usbip-core
sudo modprobe usbip-host
sudo lsmod | grep usbip

Ну и добавим в /etc/modules такие строки, чтобы загружать их автоматически при старте системы:

usbip-core
usbip-host
vhci-hcd

Запустим сервер usbip:

sudo usbipd -D

Дальше всемирный разум нам подсказывает, что в комплекте с usbip идут скрипты, позволяющие нам управлять сервером — показать, какое устройство он будет расшаривать по сети, посмотреть статус, и так далее. Тут нас поджидает еще один садовый инструмент — эти скрипты в ветке 0.2.x, опять же, переименованы. Получить список команд можно с помощью

sudo usbip

Почитав описание команд, становится понятно, что для того, чтобы расшарить требуемый USB-девайс, usbip хочет узнать его Bus ID. Уважаемые зрители, на арене грабли номер три: тот Bus ID, который выдаст нам lsusb (казалось бы, самый очевидный путь) — ей не подходит! Дело в том, что железки вроде USB-хабов usbip игнорирует. Поэтому, воспользуемся встроенной командой:

user@usb-server:~$ sudo usbip list -l
 - busid 1-1 (064f:0bd7)
   WIBU-Systems AG : BOX/U (064f:0bd7)

Примечание: здесь и далее в листингах я буду всё описывать на примере моего конкретного USB-ключа. Ваши название железки и пара VID:PID могут и будут отличаться. Моя называется Wibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Теперь мы можем расшарить наше устройство:

user@usb-server:~$ sudo usbip bind --busid=1-1
usbip: info: bind device on busid 1-1: complete

Ура, товарищи!

user@usb-server:~$ sudo usbip list -r localhost
Exportable USB devices
======================
 - localhost
        1-1: WIBU-Systems AG : BOX/U (064f:0bd7)
           : /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb1/1-1
           : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/ff)

Троекратное ура, товарищи! Сервер расшарил железку по сети, и мы можем её подключать! Осталось только дописать автозапуск демона usbip в /etc/rc.local

usbipd -D

Часть третья, клиентская и запутанная

Подключить расшаренное устройство по сети к машине под управлением Debian я попробовал сразу же на том же сервере, и всё прекрасно подключилось:

sudo usbip attach --remote=localhost --busid=1-1

Переходим к Windows. В моем случае это был Windows Server 2008R2 Standard Edition. Официальное руководство просит сначала установить драйвер. Процедура прекрасно описана в прилагаемом к windows-клиенту readme, делаем всё как написано, всё получается. На XP тоже работает без каких-либо трудностей.

Распаковав клиент, пробуем примонтировать наш ключик:

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_network.c: 121 (usbip_recv_op_common) recv op_common, -1
usbip err: usbip_windows.c: 756 (query_interface0) recv op_common
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

Ой-ой. Что-то пошло не так. Используем навык гугла. Встречаются отрывочные упоминания, что что-то там не так с константами, в серверной части разработчики при переходе на версию 0.2.0 изменили версию протокола, а вот в клиенте под Win сделать это забыли. Предлагаемое решение — поменяйте константу в исходнике и пересоберите клиент.

Вот только очень мне не хочется качать Visual Studio ради этой процедуры. Зато у меня есть старый-добрый Hiew. В исходнике константа объявлена как двойное слово. Поищем в файле 0х00000106, заменяя на 0х00000111. Не забываем, порядок байт обратный. Итог — два совпадения, патчим:

[usbip.exe]
00000CBC: 06 11
00000E0A: 06 11

Ииии… да!

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
new usb device attached to usbvbus port 1

На этом можно было бы закончить изложение, но музыка играла недолго. Перезагрузив сервер, я обнаружил, что устройство на клиенте не монтируется!

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

И всё. На это мне не смог ответить даже всезнающий гугл. А при этом команда отобразить доступные на сервере устройства вполне корректно показывает — вот он, ключ, можете монтировать. Пробую примонтировать из-под Linux — работает! А если теперь попробовать из-под Windows? О ужас — это работает!

Грабли последние: что-то там в коде сервера не дописано. При расшаривании устройства он не считывает с него количество USB-дескрипторов. А при монтировании устройства из-под Linux, это поле заполняется. К сожалению, с разработкой под Linux я знаком на уровне «make && make install». Поэтому проблема решена с помощью довольно грязного хака — добавлением в /etc/rc.local

usbip attach --remote=localhost --busid=1-1
usbip port
usbip detach --port=00

Часть заключительная

После некоторых мытарств, это работает. Желаемое получено, теперь ключ можно примонтировать к любому ПК (и размонтировать, конечно же, тоже), в том числе — за пределами широковещательного сегмента сети. Если хочется — можно это сделать с помощью скрипта командной оболочки. Что приятно — удовольствие абсолютно бесплатное.
Надеюсь, что мой опыт поможет хабражителям обойти те грабли, которые отпечатались у меня на лбу. Спасибо за внимание!

Progressor2009

Сообщения: 62
Зарегистрирован: Пт июн 18, 2010 11:45 pm

Ошибки в USBIP Initiator

У меня много устройств (USB ключей защиты ПО), кот. я подключаю через usb hub, если устройство воткнуто напрямую в терминал, то оно имеет порт (bus) например 1-1, если же через hub, то порт (bus) будет уже 1-1.1, 1-1.2 и т.д. Стандартный usbip клиент подключает эти устройства нормально, а вот USBIP Initiator пытается подключится к 1-1 и соответственно в логах выдает ошибку. Просьба, если возможно, исправить данную ошибку.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Сб июн 19, 2010 1:58 am

Просьба, если возможно, прислать мне логов. Лог терминала, который работает со стандартным usbip.exe, лог терминала, который не работает с нашим инициатором, и лог самого инициатора.

Лог терминала делается так: http://wtware.ru/docs/config.html#syslog Пожалуйста, внимательно посмотри, что сохраняешь лог ТЕРМИНАЛА, а не службы TFTP. Лог присылается на aka@pxe.ru.

Progressor2009

Сообщения: 62
Зарегистрирован: Пт июн 18, 2010 11:45 pm

Re: Ошибки в USBIP Initiator

Сообщение

Progressor2009 » Ср июн 23, 2010 5:01 pm

Уважаемый aka — вы получили логи? Если не достаточно, могу еще какие-нибудь выслать.
Было бы очень хорошо, чтобы можно было пробросить не 3-4 устройства, а 20-30 разных usb, например ключей защиты ПО.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Ср июн 23, 2010 6:08 pm

Логи получил. Еще не читал — все уехали в отпуск :) В первых числах июля что-нибудь по сушеству отвечу.

Arny

Сообщения: 51
Зарегистрирован: Пн июл 20, 2009 10:57 am

Re: Ошибки в USBIP Initiator

Сообщение

Arny » Вт апр 05, 2011 5:17 am

у меня подобное

Код: Выделить всё

Determined MTU 1500 for interface 192.168.1.1/255.255.255.0 on adapter A
sysiplist: Bind at 192.168.1.1:780.
Action: add, ip 192.168.1.14, bus 1-1.
        ..usbip.cpp (  326), usbip_context::_attach_device: -- ERROR -- INTERNAL ERROR (0). Please, contact WTware tech support.
        ..usbip.cpp (  375),   usbip_context::run: -- ERROR -- INTERNAL ERROR (0). Please, contact WTware tech support.
Add: incorrect termination (192.168.1.14, 1-1).

что делать?

самое интересное что подключил, сутки проработало, на следующий день ошибка.
уже голову сломал, помогите, пожааалуйста….
версия 4.9.26, пробовал на 4.9.25, тоже самое

Вложения
logWT.rar
прикрепляю логи
(14.29 КБ) 663 скачивания

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пн апр 11, 2011 12:15 pm

Ничего хорошего не подскажу. Не отзывается драйвер. Тот, который в .inf в архиве с usbip. Перегрузиться, переставить, еще раз перегрузиться, попробовать поймать устройство штатным usbip.exe — такого рода шаманства нужны.

Если победишь — расскажи, как.

Arny

Сообщения: 51
Зарегистрирован: Пн июл 20, 2009 10:57 am

Re: Ошибки в USBIP Initiator

Сообщение

Arny » Ср май 04, 2011 10:24 am

пробую пойматся стандартным, вот что пишет:

Код: Выделить всё

C:>usbip -a 192.168.1.14 1-1
usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.1.14 port 3240

usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 192.168.1.14:3240
usbip dbg:       usbip.c: 147 (query_interface0) exportable 1 devices
usbip dbg:       usbip.c: 164 (query_interface0)      1-1: unknown vendor : unkn
own product (04b8:0131)
usbip dbg:       usbip.c: 165 (query_interface0)         : /sys/devices/pci0000:
00/0000:00:1f.2/usb1/1-1
usbip dbg:       usbip.c: 166 (query_interface0)         : unknown class / unkno
wn subclass / unknown protocol (ff/ff/ff)
usbip dbg:       usbip.c: 186 (query_interface0)         :  0 - unknown class /
unknown subclass / unknown protocol (ff/ff/ff)
usbip dbg:       usbip.c: 189 (query_interface0)
usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.1.14 port 3240

usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 192.168.1.14:3240
usbip err:       usbip.c: 211 (import_device) no free port
usbip err:       usbip.c: 309 (attach_device) query

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Ср май 04, 2011 11:34 am

Я больше ничего не понимаю в usbip. Их свежую версию мне не удалось запустить.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Ср май 04, 2011 8:35 pm

Старую usbip можно на сорсфорже взять. К ней и втварь надо старую — 4.6.11 например. В последней 4.9 более свежее ядро, и в нем протокол у usbip уже поменяли.

А еще старая usbip только на 32битных серверах едет.

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Ср май 18, 2011 11:45 am

Похоже та же проблема

Код: Выделить всё

Action: add, ip 192.168.2.221, bus 1-1.
        ..usbip.cpp (  297), usbip_context::_get_vbus_handle: -- ERROR -- INTERNAL ERROR (0). Please, contact WTware tech support.
        ..usbip.cpp (  371),   usbip_context::run: -- ERROR -- INTERNAL ERROR (0). Please, contact WTware tech support.
Add: incorrect termination (192.168.2.221, 1-1).
Close TCP connection while sending data, errno 0.
Action: add, ip 192.168.2.221, bus 1-1.
        ..usbip.cpp (  297), usbip_context::_get_vbus_handle: -- ERROR -- INTERNAL ERROR (0). Please, contact WTware tech support.
        ..usbip.cpp (  371),   usbip_context::run: -- ERROR -- INTERNAL ERROR (0). Please, contact WTware tech support.
Add: incorrect termination (192.168.2.221, 1-1).

Победил кто-то?

UPD: Отбой. Просто тупо не установлен был usbip на сервере ))))))))
Скачал последнюю версию с http://usbip.sourceforge.net
Установил по мануалу. Полет нормальный, сканер определился на ура!

Вложения
Logs.zip
(13.42 КБ) 415 скачиваний

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Ср май 18, 2011 2:11 pm

Круто. У нас не работает, а у тебя работает :)

Расскажи, что качал под виндовс (версия, название файла) и какая версия втвари с этим поехала. И сервер 32 или 64 бита?

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Ср май 18, 2011 9:47 pm

качал с офсайта:
http://citylan.dl.sourceforge.net/proje … signed.zip

версия сервера: Win2k3 sp2 32bit
версия wtware: свежая — 4.9.28

установил usbip по мануалу, что в архиве лежит. (usbip.exe вручную переписал в c:windowssystem32, этого в инструкции нет)

На wtware уже к этому моменту был прописан параметр:
shared_usb=server:192.168.2.249,04a9:2206

я перезагрузил терминал и сканер обнаружился, и попросил драйвера. все.
в терминалку входил доменным админом… после установки дров, заходил пользователем. полет нормальный
сканер — сканирует. все

Arkadiy

Сообщения: 20
Зарегистрирован: Вт июн 01, 2004 10:02 am
Контактная информация:

Arkadiy

Сообщения: 20
Зарегистрирован: Вт июн 01, 2004 10:02 am
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

Arkadiy » Пн июл 04, 2011 7:24 pm

У меня на ХРx86 и Win2008R2 SP1 стоят драйвера 0.2.0.signed.
Екзешник(usbip.exe) использую от 0.1.0, т.к. из 0.2.0.signed с WTWare не дружит(под Win2008R2 оба екзешника только показывают список устройств, подключить не могут).
WTWare Usb Initiator работает и на ХРx86 и на Win2008R2 SP1.
WTWare 4.9.28
Заметил, что в Win2008R2 не всегда запускается мастер установки нового оборудования, если драйвера не были ранее установлены в систему, но при этом в списке устройств присутствует USB Device Over IP с восклицательным значком(Для устройства не установлены драйверы)
Драйвер можно доставать вручную. Я этого не делал, т.к. втыкал для теста Сбербанковский ключ, а к нему много чего
лишнего ставится. При этом, для сберовского ключа нужно пробрасывать два устройства (иначе не работает) a420:5420 и a420:542a, т.к. ISB-IP кажет почему-то ID a420:5420, а винда ID a420:542a
PS:
С флешками вообще проблем не было.
На ХР сбербанковский ключ работает.

Последний раз редактировалось Arkadiy Вт июл 05, 2011 10:31 am, всего редактировалось 2 раза.

Arkadiy

Сообщения: 20
Зарегистрирован: Вт июн 01, 2004 10:02 am
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

Arkadiy » Пн июл 04, 2011 11:09 pm

Кстати, когда разбирался со всей этой кухней, мне пришлось искать решение проблемы работы USB в виртуальных машинах на HYPER-V, т.к. це изначально не поддерживает USB, то в системе «Контроллеры USB» отсутствуют как класс.

Enabling USB Support in Windows Virtual Machines
Symptoms
This guide has been confirmed as a possible solution for the following symptoms:
Attached USB peripherals do not function

Enabling USB Support
To enable Windows USB support for a Windows virtual machine, you need to copy eight Windows «USB core files» into the virtual machine. These eight files can be found on the standard Windows install CD in the I386 folder, and should be copied into the directories shown:

C:WindowsINF
USB.IN_
USBPORT.IN_
C:WindowsSystem32
USBMON.DL_
C:WindowsSystem32Drivers
USBOHCI.SY_
USBUHCI.SY_
USBD.SY_
USBPORT.SY_
USBHUB.SY_
Next,expand the files by running the following commands from a Windows command prompt (Please note there is a space between each two file names):

C:WINDOWSINF>expand USB.IN_ USB.INF
C:WINDOWSINF>expand USBPORT.IN_ USBPORT.INF
C:WINDOWSsystem32>expand USBMON.DL_ USBMON.DLL
C:WINDOWSsystem32drivers>expand USBOHCI.SY_ USBOHCI.SYS
C:WINDOWSsystem32drivers>expand USBUHCI.SY_ USBUHCI.SYS
C:WINDOWSsystem32drivers>expand USBD.SY_ USBD.SYS
C:WINDOWSsystem32drivers>expand USBPORT.SY_ USBPORT.SYS
C:WINDOWSsystem32drivers>expand USBHUB.SY_ USBHUB.SYS

http://www.ncomputing.com/kb/Enabling-U … es_76.html

foxden

Сообщения: 3
Зарегистрирован: Вт янв 11, 2011 5:40 pm

Re: Ошибки в USBIP Initiator

Сообщение

foxden » Чт окт 27, 2011 12:42 pm

У меня сервак win2008R2 просто падает в синий экран из за драйвера USBIP. Пробовал версию 2.0. 1.0 после проброса устроства из Wtware сервер его устанавливает и потом падает.

hell

Сообщения: 124
Зарегистрирован: Вт авг 30, 2011 3:26 pm

Re: Ошибки в USBIP Initiator

Сообщение

hell » Ср ноя 09, 2011 8:41 am

Не подскажите, ipusb на виртуалку ставить или все таки на сервер ?
я так понимаю у большинства народ сидит в 2008 терминальных сессиях, а у меня стоит VmWare и около 60 виртуалок, хочу перебросить вебку )

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пт ноя 18, 2011 12:00 am

Ramirez писал(а):Ставишь на виртуалке USB контроллер и устанавливаешь драйвер usbip версии 1.0.

А где брать 1.0?
Если ты про 0.1.0.0, то мне кажется лучше свежую 0.2.0.0.

cartorys

Сообщения: 1
Зарегистрирован: Пт фев 03, 2012 12:22 pm

Re: Ошибки в USBIP Initiator

Сообщение

cartorys » Пт фев 03, 2012 12:35 pm

Здравствуйте.

Использую Win Server 2008R2 x64, wtware 5.0.5, службы USB IP и TFTP — из комплекта wtware, DHCP сервер — встроенный в систему.
Не могу пробросить устройство (usb токен) по USB IP. Так же пробовал пробрасывать обычные USB флешки — тот же результат.
В конфиге прописал: shared_usb=server:192.168.13.2,15cf:0015.
Логи приложил.

Посоветуйте варианты решения проблемы.

Заранее благодарен.

Вложения
WTware_00.80.64.7F.20.D4_2012-02-03_11-30-25.zip
лог
(29.82 КБ) 675 скачиваний
WTware_USBIP_2012-02-03_11-17-49.txt
лог
(2.28 КБ) 1529 скачиваний

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пт фев 03, 2012 2:14 pm

cartorys
1. Свежая версия втвари называется 5.0.7 или 5.1.3.
2. Пробрасывая токен через usbip, ты получишь токен как бы физически воткнутый в usb порт сервера. Проверь, увидит ли твоя прикладная программа, запущенная в терминальном сеансе, токен подключенный к usb порту сервера. Возможна неприятная неожиданность.

hell

Сообщения: 124
Зарегистрирован: Вт авг 30, 2011 3:26 pm

Re: Ошибки в USBIP Initiator

Сообщение

hell » Чт сен 13, 2012 4:17 pm

чтоб темы не плодить напишу сюда, от чего может быть такая фигня.
имеем 2 юзб-двд привода, один нормально пробрасывается и читается-пишется, а второй пробрасывается но ни читается ни темболее пишется, и самое интересное что пробрасывается почему то тока вручную, сама служба подтягивать привод не хочет ни тот ни другой(((

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пт сен 14, 2012 7:41 am

Логи в студию. И терминала, и службы, и то и то чтобы было свежей версии.

hell

Сообщения: 124
Зарегистрирован: Вт авг 30, 2011 3:26 pm

Re: Ошибки в USBIP Initiator

Сообщение

hell » Пн сен 17, 2012 11:04 am

Лог1 с USBDVD который даже в ручную не подтягивается, но именно его надо заставить работать.

WTware v_5_1_20_log2.txt
Лог с USBDVD который автоматом не подтягивается , но подтягивается вручную и работает на чтениезапись.
(53.16 КБ) 1289 скачиваний

Лог2 с USBDVD который автоматом не подтягивается , но подтягивается вручную и работает на чтениезапись.

Кажись тута зарыто

Код: Выделить всё

[gm] Loading IDE bus driver.
[gm] modprobe libata dma=2.
[KERNEL] libata version 3.00 loaded.
[gm] modprobe pata_legacy all=1.
[SYSLOG] <29>Sep 17 11:45:06 modprobe: FATAL: Module pata_legacy not found.

[gm] hardware.cpp ( 35), modprobe: -- ERROR -- INTERNAL ERROR. Please, contact WTware tech support.
[gm] Loading cdrom driver.
[gm] modprobe usb-storage.
[gm] modprobe sr_mod.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Ср сен 19, 2012 11:57 pm

Втварь старается сделать из компьютера электрочайник, или что-то сравнимое по сложности. Электрочайник не заморачивается контролем за конфликтами использования ресурсов. Если оди юзер вылил всю воду, а другой включил чайник не проверив наличие воды — это ваши проблемы. Чайник в этой ситуации обязан не сгореть. Сами догадывайтесь, почему нет кипятка.

«disk=cdrom» означает, что сидиром будет перенаправляться через RDP. Для этого сидиром будет подхватываться встроенным в втварь драйвером сидирома, в том числе usb сидирома.

shared_usb означает, что устройство вообще никак не будет обрабатываться на терминале. Вместо этого весь usb траффик будет уходить в сеть.

Эти два метода никак не могут работать на одном устройстве!

Вторая ошибка опять же твоя. Если написал shared_usb=server:…, то не надо лезть к usbip руками. Если хочешь лезть руками, убери указания для автоматики оставь только shared_usb=on.

Дальше буду разбираться когда эти ляпы устранишь и выложишь новые логи.

За ошибку с pata_legacy спасибо, но к USB сидирому оно никакого отношения не имеет.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пт сен 21, 2012 6:41 pm

hell писал(а):Вот лог только с параметром disk=usb

В логе написано disk=cdrom. И это правильно. Ошибок в логе не вижу. Сидиром оно нашло, готово с ним работать. Ты точно нажимал кнопку «подключить» во всплывающем снизу справа окошке? Проверь пожалуйста еще раз. Надо нажать на кнопку, и после этого сохранять лог.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пн сен 24, 2012 11:04 am

Мышку в правый нижний угол экрана. Вылезет окошко. В нем кнопка диска. Сидиром и флоповод надо подключать и отключать нажатием на кнопку, иначе до втвари не доходит. Эх молодежь, раньше и usb флешки так же подключали…

hell

Сообщения: 124
Зарегистрирован: Вт авг 30, 2011 3:26 pm

Re: Ошибки в USBIP Initiator

Сообщение

hell » Пн сен 24, 2012 4:52 pm

от черт, яж его отключил, а автоматизировать никак ? чтобы автоматом подтягивало ?

а так через окошечко все гуд

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пн сен 24, 2012 5:17 pm

Не, сидиром и флоп не могу автоматизировать. Никакого сообщения «диск подключен», «диск отключен» при этом не создается. А без определенных событий «подключили-отключили» спецэффекты всякие вылазят.

Soft_warrior

Сообщения: 278
Зарегистрирован: Вс ноя 13, 2005 7:39 pm
Откуда: Москва
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

Soft_warrior » Вт сен 25, 2012 9:38 am

в линуксе както система, если в гуи, определяет же — диск вставлен, и монтирует его…
насчет отмонтирования вроде какието вопросы выскакивают…. если просто вытащишь.
но — то что монтирует автоматом — есть.
может какой то сервис периодически опрашивает привод?

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Вт сен 25, 2012 10:03 am

Если втвари в конфиге написать shared_disk=cdrom,floppy то будет работать та самая линуксовая система, которая автоматом монтирует и отмонтирует.

Заморочки возникли именно с пробросом этого диска непонятного состояния по RDP. Слишком виндовс не любила, когда перенаправленный диск с открытыми файлами вдруг становился недоступен, а потом на том же месте появлялись новые файлы. Да и не актуально это уже: флоповоды вымерли, сидиромы тоже скоро вымрут.

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Чт окт 04, 2012 8:46 am

Имеем:
Терминальный сервер Win2008R2 SP1 Std (192.168.2.247). Установлен в виртуальной машине Hyper-V.
Служба wtusbip установлена на этом терминальном сервере (192.168.2.247)
Клиент wtware 5.1.20. (192.168.2.222)

Не пробрасывается МФУ HP 1536dnf (Принтер работает через встроенный в него принтсервер. проброс USB нужен чтоб использовать сканер)

Если пробросить вручную (usbip -a 192.168.2.222 1-1) то принер/сканер прекрасно работают.
Значит дело в службе wtusbip.

Логи прилагаю до проброса вручную и после проброса вручную.
Лог wtusbip с помошью конфигуратора снять не удалось, поэтому прилагаю его скриншотом. На нем видно что конфигуратор даже к диску не обращается при нажатии кнопки сохранить лог. (специально открывал ProcessMonitor)

Вложения
WTware_00.80.AD.79.86.B1_2012-10-04_11-16-06.txt
Лог терминала после ручного проброса
(121.11 КБ) 1264 скачивания
Лог wtusbip
Лог wtusbip
Screenshot.PNG (117 КБ) 76305 просмотров
WTware_00.80.AD.79.86.B1_2012-10-04_10-30-50.txt
лог терминала до ручного проброса
(107.47 КБ) 1418 скачиваний

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Чт окт 04, 2012 11:50 am

Фигасе. В логе «_beginthread () failed» это очень любопытно. Как этого добиться? Если перезапустить службу и перезапустить конфигуратор, то как быстро вылезет новое «_beginthread () failed»? Какие-то закономерности можно найти, после чего оно вылезает в первый раз?

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Чт окт 04, 2012 2:13 pm

Закономерность простая, как только терминал загружается. Выскакивает эта ошибка в логе. Наверно это происходит в момент попытки проброса устройства. Уж кто эту попытку инициирует — я не знаю. вам виднее. Перезагрузка терминала приводит к тому же результату… После перезагрузки службы или сервера, ошибка не вылазит сколь угодно долго. Пока не включаю терминал. Как только он включен и загружен — ошибка выскакивает. Возможно это связано с тем, что сервер на виртуальной машине Hyper-V. Там с USB не всё гладко вроде бы. Хотя ручной проброс работает, как ни странно. Может службе не хватает прав каких то? Опять же ручной проброс я выполняю в консоли с повышением и без. В другом офисе настраивал тоже 2008 х64 но не R2. Так там работает без вопросов. К тому же и машина не виртуальная там.

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Чт окт 04, 2012 2:19 pm

Убрал параметр: port 100 из конфига терминала. Завелось. Сканер пробросился «автоматом» после перезагрузки терминала. Пошел экспериментировать с этим параметром.
Отпишусь позже.

UPD:
команда «usbip -d 1» в консоли (1 — номер порта) — вызывает ошибку:

..usbip.cpp ( 438), usbip_context::run: — ERROR — INTERNAL ERROR (0).
Add: incorrect termination (192.168.2.222, 1-1).

UPD2:
Попробовал последовательно port = 1,10,50,99,100 (!!!) С перезагрузкой терминала. Службу не трогал. Устройства отключал вручную в консоли, перед перезагрузкой терминала.
Работает. даже 100

Презапустил службу. Поставил снова порт 100. Ошибка снова выскакивает.

_beginthread() failed
..usbip.cpp ( 410), usbip_context::run: — ERROR — INTERNAL ERROR (12).
Add: incorrect termination (192.168.2.222, 1-1).

Поставил пор 50. Перезапустил терминал. Ошибка на месте правда _beginthread() failed уже нет.

Снова убрал порт. И перезаупстил терминал:

_beginthread() failed
..usbip.cpp ( 413), usbip_context::run: — ERROR — INTERNAL ERROR (12).
Add: incorrect termination (192.168.2.222, 1-1).

Перезапустил службу и терминал
Ошибки нет. Теперь можно указывать любой порт (указал снова 100). ручной deattach Не делал больше. Само отключается нормально.
ДО перезагрузки службы все взлетает само.

Как только презагружаю службу — ошибка всплывает. Пока не уберу порт и не перезапущу службу. Вот и закономерность! Уфф…

UPD3: Как насчет несохранения логов от службы WTUSBIP? Скриншоты делать неудобно, а текст с окна выдрать в буфер обмена тоже нельзя. Контрол не позволяет текст выделить… Либо скриншот, либо перепечатка пока.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Чт окт 04, 2012 5:48 pm

Закономерности я не понял. Закономерность — это такая последовательность действий, которую я могу повторить на наших стендах, и увижу ошибку. Ошибкой я в этом случае считаю «beginthread failed», то что происходит дальше уже не интересно. Ручной детач хорошая мысль. Один из потоков службы при этом падает таким способом, который мы не проверяли, потому что такое жестокое обращение в голову не приходило. Я проверю, но ты тоже еще подумай пожалуйста. Мне нужна последовательность действий, которая приводит к ПЕРВОМУ «beginthread failed» ПОСЛЕ СТАРТА СЛУЖБЫ. Отставить рестарт, рестарт не совсем корректно. Надо выключить службу, затем включить, затем сделать так, чтбы появилось «beginthread failed». Последовательность действий рассказать мне.

Думаю, несохраняемость логов это тоже результат чего-то «ручного». Что еще ты делаешь «ручное»? Возможно, это связано не с втварью, а с настройкой сервера в целом. Права там поменять, службы дефолтные запретить. На свеепоставленном 2008r2sp1, с которым не сделали ничего ручного, логи будут сохраняться. Инфа 100%.

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Чт окт 04, 2012 7:48 pm

У меня гарантированно выскакивает эта «_beginthread() failed» в этом случае: После перезапуска службы инициатора wtusbip и последующем старте клиента с настройкой порт. Причем не важно какой порт указать (хотя ноль не пробовал).

Но если после перезапуска службы запустить клиент с настройкой без указания порта, ошибки нет. И позже менять настройки порта можно произвольно и перезапускать терминал.

Если после появления ошибки «_beginthread() failed», просто перезапустить терминал (настройка порт не влияет на поведение в данном случае), то ошибка больше не появлется. Сыпятся другие (например ..usbip.cpp ( 438), usbip_context::run: — ERROR — INTERNAL ERROR (0) ), но не «_beginthread() failed». Я так понимаю — это уже следствие того, что поток не создан. Она выскакивает только один раз — после запуска службы инициатора. (см первый абзац этого комментария)

Про логи:
Вопрос снят. Сам дурак был. Отменял сохранение, когда выскакивало предупреждение от том, что я не нажал кнопку обновить лог, иначе он будет не полным.

Хотя справедливости ради — этот запрос тут не к месту, т.к. нет кнопки обновить лог в данном случае. ))

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пт окт 05, 2012 1:57 pm

SANSoft писал(а):Хотя справедливости ради — этот запрос тут не к месту, т.к. нет кнопки обновить лог в данном случае. ))

Да, наша ошибка. Будет исправлено в следующей версии.

Про beginthread пока ищем.

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Пт окт 19, 2012 11:49 am

SANSoft
Ау! Ты еще здесь? Я не могу повторить «_beginthread() failed». Останавливаю службу, запускаю, подключаю USB устройство к терминалу, в конфиге терминала указано подключаться к wtusbip и указан порт. Оно подключается без ошибок.

Попробуй пожалуйста вот это:

http://pxe.ru/files/testing/201210191134.zip

Тут лишнего диалога при сохранении точно не будет. Если «_beginthread() failed» не пропадет — пиши, соберу службу wtusbip.exe с развернутым логом и будем искать, откуда оно берется.

SANSoft

Сообщения: 92
Зарегистрирован: Чт янв 20, 2011 9:33 pm
Откуда: Челябинск

Re: Ошибки в USBIP Initiator

Сообщение

SANSoft » Пт окт 19, 2012 2:52 pm

На присланной версии «_beginthread() failed» — не появляется. Сохранение лога USBIP работает без лишнего вопроса. Спасибо!

shurix

Сообщения: 32
Зарегистрирован: Пн окт 31, 2011 5:48 pm

Re: Ошибки в USBIP Initiator

Сообщение

shurix » Пн дек 03, 2012 11:41 pm

Не совсем по теме, но, наверное, этот вопрос лучше задать здесь. Ситуация похожая на ту, что была у SANSoft’а:
Сервер Win2008R2 является хостом виртуальных машин Hyper-V (внутри которых та же Win2008R2 в качестве терминального сервера). На него установлена WTWare и физически воткнут токен AvPass (ключ для электронной подачи деклараций от белорусских налоговиков).

Можно ли воспользовавшись USBIP пробросить этот ключ в виртуальную машину, к которой будут присоединяться с бесдисковых терминалов WTWare? Не хочется использовать дополнительные решения (вроде FabulaTech USB over Network), опасаюсь возможных конфликтов с проброшенными флешками с бесдисковиков посредством USBIP.

В статье «http://vmind.ru/2012/01/25/ispolzovanie … yx-mashin/ описывается подобная штука посредством плясок с бубнами. А можно ли сделать подобное, например, использовав службу WTWare «USBIP Initiator»?

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Вт дек 04, 2012 6:44 am

Смарт-карты перенаправлять нельзя. Служба смарт-карт в виндовсе так устроена, что подключенную физически к машине (карта, подключенная через usbip, выглядит для операционной системы как подключенная прямо в физический usb порт) карту видит только сессия, запущенная на консоли.

RDP-сессии видят только те карты, которые проброшены через механизм перенаправления смарт-карт этой RDP сессии, но не видят подключенную к порту usb сервера карту.

Здесь на форуме был злобный хак виндовса, который это ограничение отламывал. Но я его боюсь :?

Если ключ у тебя воткнут в хост супервизора — заведи там отдельную WinXP и средствами супервизора отдай карту ей. И пусть софт, использующий карту, работает только на этой XP.

shurix

Сообщения: 32
Зарегистрирован: Пн окт 31, 2011 5:48 pm

Re: Ошибки в USBIP Initiator

Сообщение

shurix » Вт дек 04, 2012 12:14 pm

aka писал(а):Смарт-карты перенаправлять нельзя. Служба смарт-карт в виндовсе так устроена, что подключенную физически к машине (карта, подключенная через usbip, выглядит для операционной системы как подключенная прямо в физический usb порт) карту видит только сессия, запущенная на консоли.

RDP-сессии видят только те карты, которые проброшены через механизм перенаправления смарт-карт этой RDP сессии, но не видят подключенную к порту usb сервера карту.

Т.е. уточняю: (а) сервер-гипервизор с воткнутой смарт-картой; (б) виртуальная машина; (в) бесдисковая станция. И если соединяться по RDP с (а) на (б), то смарт-карта будет видна в (б), а если с (в) на (б), то нет. Я правильно понял?

aka писал(а):Если ключ у тебя воткнут в хост супервизора — заведи там отдельную WinXP и средствами супервизора отдай карту ей. И пусть софт, использующий карту, работает только на этой XP.

На ключе сотня сертификатов (все школы и д/с у нас являются юридическими лицами, но не имеют своей бухгалтерии. Их всех обслуживает централизованная бухгалтерия нашего отдела образования) и доступ к ключу нужен где-то 20-25 бухгалтерам. Я одурею от такого счастья в попытках реализовать такое на XP.

aka писал(а):Здесь на форуме был злобный хак виндовса, который это ограничение отламывал. Но я его боюсь :?

Видел эту статью. Наверное, придется испробовать.

Или fabulatech usb over network — не знаете, конфликтов у него с проброшенными флешками с бесдисковиков не будет?

Кстати, цитируемую мной статейку про USBIP не смотрели случаем? Там написано, что серверная часть USBIP есть только под Линух, а клиентская — под Линух и Windows. Я вот и подумал, что можно как-то использовать ваш виндушный USB Initiator.
Хотя в данном случае «серверная часть» — это тот компонент, который запускается на самом бесдисковой станции, я правильно понимаю? Значит, тут дело действительно мёртвое :-(

И вдогонку к глупым вопросам — проброс USB в терминальных сессии посредством RemoteFX на Windows 2012 никто еще не испытывал?

aka

Разработчик
Разработчик
Сообщения: 11522
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: Ошибки в USBIP Initiator

Сообщение

aka » Вт дек 11, 2012 8:31 pm

shurix писал(а):Т.е. уточняю: (а) сервер-гипервизор с воткнутой смарт-картой; (б) виртуальная машина; (в) бесдисковая станция. И если соединяться по RDP с (а) на (б), то смарт-карта будет видна в (б), а если с (в) на (б), то нет. Я правильно понял?

Не понимаю, как и зачем это — соединяться по RDP с сервера-гипервизора с виртуальной машиной.

Если по RDP подключиться к гипервизору и затем открыть виртуальную машину средствами гипервизора, т.е. с точки зрения
виртуальной машины — оказаться за ее консолью, за ее клавиатурой и монитором, то подключенная к гипервизору карта будет видна.

Если с бездиска подключаться по rdp к виртуальной машине, то подключенной к гипервизору карты не будет.

shurix писал(а):На ключе сотня сертификатов (все школы и д/с у нас являются юридическими лицами, но не имеют своей бухгалтерии. Их всех обслуживает централизованная бухгалтерия нашего отдела образования) и доступ к ключу нужен где-то 20-25 бухгалтерам. Я одурею от такого счастья в попытках реализовать такое на XP.

А как еще это реализовать?? И я не понимаю высокого смысла иметь ОДИН ключ, доступ к которому имеют 25 человек :?

shurix писал(а):Кстати, цитируемую мной статейку про USBIP не смотрели случаем? Там написано, что серверная часть USBIP есть только под Линух, а клиентская — под Линух и Windows. Я вот и подумал, что можно как-то использовать ваш виндушный USB Initiator.
Хотя в данном случае «серверная часть» — это тот компонент, который запускается на самом бесдисковой станции, я правильно понимаю? Значит, тут дело действительно мёртвое :-(

Сервер usbip запускается на бездиске. Наш инициатор только автоматизирует обращение клиента (виндовса, терминального сервера) к серверу usbip. N/t/ никакой принципиально новой функциональносте не добавляет, но без нашего инициатора на виндовсе пришлось бы руками запускать usbip.exe для подключения каждого устройства, при каждом подключении устройства.

shurix писал(а):И вдогонку к глупым вопросам — проброс USB в терминальных сессии посредством RemoteFX на Windows 2012 никто еще не испытывал?

Оно появилось еще в 2008r2sp1. Но оно работает только в виртуальную win7, запущенную под Huper-V. В обычную терминальную сессию оно не умеет перенаправлять USB.

The environment is

  • Windows 10
  • WSL2 Ubuntu 20.04 LTS

Table of contents

  1. Mount USB to WSL
  2. Setup usbipd-win
    1. Install usbipd-win to the Windows machine
    2. Preparation on WSL with Ubuntu
  3. Connect USB device to WSL
    1. Check the device list
    2. Attach the desired device to WSL
    3. usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed.
  4. Hack to connect the desired device to WSL without Admin privilege
    1. Start SSH server on WSL
    2. Connect to WSL via SSH from the Host machine
    3. Show the available devices and try to connect the device to WSL

Mount USB to WSL

It’s easy to mount if it is just a USB drive that is shown on Windows e.g. E: or F:.

Let’s create a directory to mount the USB directory first. Then, mount it.

sudo mkdir /mnt/usb
sudo mount -t drvfs E: /mnt/usb

If you execute the following command, you can see the files on the USB stick.

ls -la /mnt/usb

Execute the following command if you want to umount it.

sudo unmount /mnt/usb

Setup usbipd-win

Install usbipd-win to the Windows machine

First, usbipd-win needs to be installed on your host machine before doing something on WSL.

  1. Go to the release page of usbipd-win
  2. Download msi and install it

You can see the following service after the installation.

> sc queryex usbipd

SERVICE_NAME: usbipd
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 2032
        FLAGS

Preparation on WSL with Ubuntu

Execute the following command to install the necessary tools on WSL.

sudo apt update
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

If you don’t update the package list by apt update, you could get the following error

$ sudo apt install linux-tools-virtual hwdata
[sudo] password for yuto:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
  libfwupdplugin1
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  libdw1 linux-tools-5.4.0-125 linux-tools-5.4.0-125-generic linux-tools-common
The following NEW packages will be installed:
  hwdata libdw1 linux-tools-5.4.0-125 linux-tools-5.4.0-125-generic linux-tools-common linux-tools-virtual
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 6026 kB of archives.
After this operation, 27.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 hwdata all 0.333-1 [23.3 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 libdw1 amd64 0.176-1.1build1 [226 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-common all 5.4.0-125.141 [187 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-5.4.0-125 amd64 5.4.0-125.141 [5586 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-5.4.0-125-generic amd64 5.4.0-125.141 [1996 B]
Ign:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-virtual amd64 5.4.0.125.126
Err:6 http://security.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-virtual amd64 5.4.0.125.126
  404  Not Found [IP: 91.189.91.39 80]
Fetched 6024 kB in 1s (4058 kB/s)
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/l/linux-meta/linux-tools-virtual_5.4.0.125.126_amd64.deb  404  Not Found [IP: 91.189.91.39 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Connect USB device to WSL

All commands in this section are on the host machine.

Check the device list

Let’s check how many devices are there and which one is what we want to connect.

> usbipd.exe wsl list
BUSID  VID:PID    DEVICE                                                        STATE
1-5    0b0e:245e  Jabra Link 370, USB Input Device                              Not attached
1-7    0408:5390  HP Full-HD Camera, HP IR Camera                               Not attached
1-8    06cb:00b7  Synaptics VFS7552 Touch Fingerprint Sensor with PurePrint...  Not attached
1-14   8087:0029  Intel(R) Wireless Bluetooth(R)                                Not attached
2-1    8087:0af1  HP GNSS Sensor                                                Not attached
2-2    8087:0aca  USB Serial Device (COM5), USB Serial Device (COM4), Modem...  Not attached
2-3    8087:0ac9  Intel(R) XMM(TM) 7360 LTE-A                                   Not attached
6-2    05e0:1200  USB Input Device                                              Not attached
6-5    2109:8888  USB Billboard Device                                          Not attached
7-3    0bda:8153  Realtek USB GbE Family Controller                             Not attached
9-1    0c45:7638  USB Input Device                                              Not attached
9-5    03f0:0269  HP Thunderbolt Dock Audio Headset, USB Input Device           Not attached
9-7    03f0:0667  WinUSB, USB Input Device                                      Not attached
10-1   2149:2306  USB Input Device                                              Not attached

In my case, 6-2 is what I want. It’s a scanner.

Attach the desired device to WSL

But I got this error.

> usbipd.exe wsl attach --busid 6-2
usbipd: info: Using default WSL distribution 'Ubuntu-20.04'; specify the '--distribution' option to select a different one.
usbipd: error: Access denied; this operation requires administrator privileges.
usbipd: info: The first time attaching a device to WSL requires elevated privileges; subsequent attaches will succeed with standard user privileges.

I got the following error if I executed it with an Admin user.

> usbipd.exe wsl attach --busid 6-2
usbipd: error: There are no WSL distributions installed; see https://docs.microsoft.com/windows/wsl/basic-commands#install on how to install one.

Because I installed WSL on my own user but not on the Admin user. The Admin user doesn’t have WSL.

In this case, you can’t execute the command even if you try the following command. The domain name and user name are replaced with a placeholder here.

> runas /profile /user:<Domain name><User Name> "usbipd.exe wsl attach --busid 6-2"
Enter the password for <Domain name><User Name>:
Attempting to start usbipd.exe wsl attach --busid 6-2 as user "<Domain name><User Name>" ...

This command fails. A new window appears but is closed immediately.

usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed.

The account must be in the Administrator group. I executed the following command after putting my account into the Administrator group.

> usbipd.exe wsl attach --busid <busid>
usbipd: info: Using default WSL distribution 'Ubuntu-20.04'; specify the '--distribution' option to select a different one.
usbipd: warning: A third-party firewall may be blocking the connection; ensure TCP port 3240 is allowed.
usbip: error: tcp connect
usbipd: error: Failed to attach device with busid '6-2'.

But this error above is thrown…

Hmm… I don’t have a right to turn off Firewall. I uninstalled usbipd-win and re-installed it but it didn’t work for me.

Hack to connect the desired device to WSL without Admin privilege

Let’s cheat here. If you connect to the WSL from the host machine via ssh, you can ignore the firewall settings.

Start SSH server on WSL

All commands are on WSL here.

Execute the following command on WSL to check the content of ssh connection config.

cat /etc/ssh/sshd_condig

Then, you will see the following.

PasswordAuthentication no

Change it to yes and save it.

PasswordAuthentication yes

Then, execute the following command. The server will start.

$ sudo service ssh restart
* Restarting OpenBSD Secure Shell server sshd

Connect to WSL via SSH from the Host machine

The format to connect via SSH is the following.

ssh <username>@<IP address of WSL> -R 3240:127.0.0.1:3240

You can check the IP address on WSL with ip a command. The IP address is shown on inet for eth0.

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 6e:27:82:86:7d:6e brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 56:5a:7d:9f:42:5d brd ff:ff:ff:ff:ff:ff
4: [email protected]: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
5: [email protected]: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:1c:7f:e0 brd ff:ff:ff:ff:ff:ff
    inet 172.23.31.247/20 brd 172.23.31.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe1c:7fe0/64 scope link
       valid_lft forever preferred_lft forever

Let’s connect to the WSL from the host machine via SSH.

> ssh [email protected] -R 3240:127.0.0.1:3240
[email protected]'s password:
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.10.102.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue Nov 15 15:58:58 CET 2022

  System load:  0.0                Processes:             36
  Usage of /:   1.1% of 250.98GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for eth0: 172.23.31.247
  Swap usage:   0%

  => There is 1 zombie process.


0 updates can be applied immediately.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

It could connect to WSL.

Show the available devices and try to connect the device to WSL

I could see the following result when executing the following command on WSL.

$ usbip list -r 127.0.0.1
Exportable USB devices
======================
 - 127.0.0.1
        1-1: Symbol Technologies : Bar Code Scanner (05e0:1200)
           : USBVID_05E0&PID_1200S/N:38B63F28B0A967459FDC95404F7D3524:3
           : (Defined at Interface level) (00/00/00)
           :  0 - Human Interface Device / Boot Interface Subclass / Keyboard (03/01/01)

        6-2: Symbol Technologies : Bar Code Scanner (05e0:1200)
           : USBVID_05E0&PID_120022222523070578__
           : (Defined at Interface level) (00/00/00)
           :  0 - Human Interface Device / Boot Interface Subclass / Keyboard (03/01/01)

Yes!! No more connection errors here!!

However… it doesn’t work for this scanner at all…

$ usbip attach -b 6-2 -r 127.0.0.1
usbip: error: import device

Oooooops… Lost my day…

According to the wiki page of usbipd-win, some devices can’t be used…

Понравилась статья? Поделить с друзьями:
  • Usbip error failed to open usr share hwdata usb ids
  • Urllib error httperror http error 429 too many requests
  • Usb002 ошибка принтера samsung
  • Urllib error httperror http error 410 gone pytube
  • Usb флешка не читается нет носителя как исправить