如何设置USB-over-IP服务器和客户端与Mandriva 2010.0

如何通过Mandriva 2010.0设置USB-over-IP服务器和客户端

本教程将介绍如何使用Mandriva 2010.0以及USB-over-IP客户端(也运行Mandriva 2010.0)设置USB-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框以服务于IP over IP服务器 ,但我已经调整了Mandriva 2010.0(服务器和客户端)。 如果您想使用Windows客户端,请查看AliRezaTaleghani的教程 - 该部分仍然相同。

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

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

server1:

首先我们加载usbip内核模块:

modprobe usbip

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

lsmod | grep usbip

输出应与此类似:

[root@server1 administrator]# lsmod | grep usbip
usbip                  17988  0
usbip_common_mod       22168  1 usbip
usbcore               219188  2 usbip
[root@server1 administrator]#

为了确保在引导系统时模块自动加载,您可以将其添加到/etc/modprobe.preload中

vi /etc/modprobe.preload
[...]
usbip

Mandriva 2010.0没有usbip包,所以我们必须手动构建它:

urpmi wget flex gcc gcc-c++ libsysfs-devel libglib2.0-devel
cd /tmp
wget http://downloads.sourceforge.net/project/usbip/usbip/0.1.7/usbip-0.1.7.tar.gz?use_mirror=kent
tar xvfz usbip-0.1.7.tar.gz
cd usbip-0.1.7/src/
./autogen.sh
./configure
make
make install

usbip希望包含目录/ usr / share / hwdata中的已知USB设备列表( usb.ids )的文件,但是在Mandriva 2010.0中,它位于/usr/share/usb.ids中 ,因此我们创建一个符号链接:

mkdir /usr/share/hwdata
ln -sf /usr/share/usb.ids /usr/share/hwdata/

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

usbipd -D
[root@server1 src]# usbipd -D
Bind usbip.ko to a usb device to be exportable!
[root@server1 src]#

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

执行命令

lsusb

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

Bus XXX Device YYY: ID VendorID:DeviceID

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

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

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

现在跑

bind_driver --list

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

[root@server1 src]# bind_driver --list
List USB devices
 - busid 1-4 (058f:6362)
         1-4:1.0 -> usb-storage

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

[root@server1 src]#

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

bind_driver --usbip 1-5
[root@server1 src]# bind_driver --usbip 1-5
** (process:5807): DEBUG:  1-5:1.0      -> usb-storage
** (process:5807): DEBUG: unbinding interface
** (process:5807): DEBUG: write "add 1-5" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 1-5 to usbip, complete!
[root@server1 src]#

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

BTW,如果你运行...

netstat -tap

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

[root@server1 src]# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 *:nfs                       *:*                         LISTEN      -
tcp        0      0 *:41286                     *:*                         LISTEN      2258/rpc.mountd
tcp        0      0 *:3240                      *:*                         LISTEN      5780/usbipd
tcp        0      0 server1.example.com:10026   *:*                         LISTEN      2309/master
tcp        0      0 server1.example.com:11211   *:*                         LISTEN      1843/memcached
tcp        0      0 *:59887                     *:*                         LISTEN      1865/rpc.statd
tcp        0      0 *:sunrpc                    *:*                         LISTEN      1828/rpcbind
tcp        0      0 *:5555                      *:*                         LISTEN      1867/dc_server
tcp        0      0 *:ftp                       *:*                         LISTEN      2315/proftpd: (acce
tcp        0      0 *:44725                     *:*                         LISTEN      -
tcp        0      0 *:ssh                       *:*                         LISTEN      2185/sshd
tcp        0      0 server1.example.com:smtp    *:*                         LISTEN      2309/master
tcp        0      0 *:https                     *:*                         LISTEN      2321/httpd
tcp        0    596 192.168.0.101:ssh           192.168.0.26:4758           ESTABLISHED 2364/sshd: administ
tcp        0      0 *:netbios-ssn               *:*                         LISTEN      2164/smbd
tcp        0      0 *:sunrpc                    *:*                         LISTEN      1828/rpcbind
tcp        0      0 *:http                      *:*                         LISTEN      2321/httpd
tcp        0      0 *:48117                     *:*                         LISTEN      -
tcp        0      0 *:ssh                       *:*                         LISTEN      2185/sshd
tcp        0      0 *:microsoft-ds              *:*                         LISTEN      2164/smbd
[root@server1 src]#
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏