如何设置一个USB-over-IP服务器和客户端与Debian Lenny

Debian Lenny如何设置一个USB-over-IP服务器和客户端

本教程将介绍如何使用Debian Lenny以及一个USB-over-IP客户端(也运行Debian Lenny)设置一个IP over IP服务器。 USB / IP项目旨在通过IP网络开发一个通用的USB设备共享系统。 要在具有完整功能的计算机之间共享USB设备,USB / IP将“USB I / O消息”封装到TCP / IP有效载荷中,并在计算机之间传输。 USB over IP可以用于虚拟机,例如,无法访问主机系统的硬件 - USB-over-IP允许虚拟机使用远程USB设备。

我不会保证这将为您工作!

1初步说明

本教程基于AliRezaTaleghani的教程如何修改您的Gnu / Linux Box以作为IP over IP服务器上的USB ,但我已经调整了Debian Lenny(服务器和客户端)。 如果您想使用Windows客户端,请查看AliRezaTaleghani的教程 - 该部分仍然相同。

在本教程中,我使用服务器server1.example.com ,IP地址为192.168.0.100 ,客户端client1.example.com的IP地址为192.168.0.101 ,都运行Debian Lenny。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。

2在服务器上安装和使用USB / IP

server1:

有一个用于Debian Squeeze(测试)的usbip包,但不是Lenny。 要从Lquee的Squeeze安装usbip软件包,我们修改以下三个文件(请看我的教程A简介 ,以了解我在做什么):

vi /etc/apt/sources.list

在文件末尾添加Debian Squeeze(测试)存储库:

[...]
## Squeeze / Testing
deb http://ftp2.de.debian.org/debian/ squeeze main
deb-src http://ftp2.de.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
vi /etc/apt/apt.conf

将以下行放入此文件中:

APT::Cache-Limit "100000000";
vi /etc/apt/preferences

使文件看起来如下:

Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650

更新包数据库...

aptitude update

...并安装usbip如下:

aptitude install usbip usbip-source module-assistant

我们需要为我们的Debian Lenny内核构建usbip内核模块,这就是为什么我们必须安装usbip-sourcemodule-assistant软件包。 我们现在可以如下构建内核模块:

m-a prepare
m-a update
m-a a-i usbip-source

之后我们加载usbip内核模块:

modprobe usbip
modprobe usbip_common_mod

要检查是否真的加载,运行:

lsmod | grep usbip

输出应与此类似:

server1:~# lsmod | grep usbip
usbip                  18660  0
usbip_common_mod       17672  1 usbip
server1:~#

为了确保两个模块在引导系统时自动加载,您可以将它们添加到/ etc / modules中

vi /etc/modules
[...]
usbip
usbip_common_mod

现在我们可以启动usbip守护进程:

usbipd -D
server1:~# usbipd -D
Bind usbip.ko to a usb device to be exportable!
server1:~#

现在附上要导出到服务器的USB设备 - 我在这里使用SanDisk USB闪存驱动器。

执行命令

lsusb

以找到相应的供应商/设备ID,其形式为:

Bus XXX Device YYY: ID VendorID:DeviceID

我的服务器上的输出如下:

server1:~# lsusb
Bus 004 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro 256/512MB Flash Drive
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 058f:6362 Alcor Micro Corp. Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External)
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
server1:~#

我的SanDisk USB闪存驱动器的供应商/设备ID为0781:​​5151

现在跑

usbip_bind_driver --list

我的服务器上的输出如下:

server1:~# usbip_bind_driver --list
List USB devices
 - busid 3-4 (058f:6362)
         3-4:1.0 -> usb-storage

 - busid 4-5 (0781:5151)
         4-5:1.0 -> usb-storage

server1:~#

如您所见,我的SanDisk USB闪存驱动器的供应商/设备ID( 0781:​​5151 )对应于BUSID 4-5 。 我们需要这个BUSID将USB设备连接到服务器:

usbip_bind_driver --usbip 4-5
server1:~# usbip_bind_driver --usbip 4-5
** (process:7290): DEBUG:  4-5:1.0      -> usb-storage
** (process:7290): DEBUG: unbinding interface
** (process:7290): DEBUG: write "add 4-5" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 4-5 to usbip, complete!
server1:~#

就这样,我们现在可以在远程usbip客户端上使用SanDisk USB闪存驱动器。

BTW,如果你运行...

netstat -tap

...你应该看到usbip守护进程正在监听端口3240,所以请确保该端口没有被防火墙阻止:

server1:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      2062/portmap
tcp        0      0 *:49008                 *:*                     LISTEN      2073/rpc.statd
tcp        0      0 *:ssh                   *:*                     LISTEN      3244/sshd
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      2546/exim4
tcp        0    172 192.168.0.15:ssh        192.168.0.199:4176      ESTABLISHED 3204/0
tcp        0    148 server1.example.com:ssh 192.168.0.199:4177      ESTABLISHED 3245/1
tcp6       0      0 [::]:3240               [::]:*                  LISTEN      7254/usbipd
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      3244/sshd
server1:~#
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏