Anda dapat menggunakan usbip perangkat lunak ini dan ini adalah cara mengatur perangkat lunak dan menggunakannya di sisi server dan klien
Catatan:
Dalam tutorial ini gunakan server server1.example.com with IP
192.168.0.100
dan client client1.example.com with IP 192.168.0.101
, keduanya menjalankan Ubuntu Pengaturan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu.
Akun yang digunakan dalam tutorial ini adalah root
demikian jika suatu perintah tidak berfungsi, gunakan root
atau gunakan sudo
sebelum perintah
Menginstal Dan Menggunakan USB / IP Di Server
Kita dapat menginstal usbip sebagai berikut:
apt-get install usbip
Setelah itu kami memuat modul kernel usbip:
modprobe usbip
modprobe usbip_common_mod
Untuk memeriksa apakah benar-benar dimuat, jalankan:
lsmod | grep usbip
Outputnya harus sama dengan yang ini:
root@server1:~# lsmod | grep usbip
usbip 15124 0
usbip_common_mod 13605 1 usbip
root@server1:~#
Untuk memastikan bahwa kedua modul dimuat secara otomatis setiap kali Anda mem-boot sistem, Anda dapat menambahkannya ke / etc / modules:
vi /etc/modules
[...]
usbip
usbip_common_mod
Sekarang kita dapat memulai daemon usbip:
root@server1:~# usbipd -D
Bind usbip.ko to a usb device to be exportable!
Sekarang pasang perangkat USB yang ingin Anda ekspor ke server - Saya menggunakan flash drive USB SanDisk di sini.
Jalankan perintah lsusb
untuk menemukan Vendor / Device ID yang sesuai yang berupa:
Bus XXX Device YYY: ID VendorID:DeviceID
Output di server saya adalah sebagai berikut:
root@server1:~# lsusb
Bus 001 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Vendor / Device ID dari flash drive USB SanDisk saya adalah 0781: 5151.
Sekarang jalankan
usbip_bind_driver --list
root@server1:~# usbip_bind_driver --list
List USB devices
- busid 1-1 (0781:5151)
1-1:1.0 -> usb-storage
Seperti yang Anda lihat, Vendor / Device ID dari flash drive USB SanDisk saya (0781: 5151) sesuai dengan BUSID 1-1. Kami membutuhkan ini BUSID
untuk melampirkan perangkat USB ke server:
root@server1:~# usbip_bind_driver --usbip 1-1
** (process:765): DEBUG: 1-1:1.0 -> usb-storage
** (process:765): DEBUG: unbinding interface
** (process:765): DEBUG: write "add 1-1" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 1-1 to usbip, complete!
Itu saja, kita sekarang dapat menggunakan flash drive USB SanDisk pada klien usbip jarak jauh.
BTW, jika Anda menjalankan ...
netstat -tap
... Anda akan melihat bahwa daemon usbip sedang mendengarkan port 3240
jadi pastikan port ini tidak diblokir oleh firewall Anda:
root@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 *:ssh *:* LISTEN 537/sshd
tcp 0 0 *:3240 *:* LISTEN 762/usbipd
tcp 0 52 server1.example.com:ssh 192.168.0.199:4024 ESTABLISHED 667/0
tcp6 0 0 [::]:ssh [::]:* LISTEN 537/sshd
Menginstal Dan Menggunakan USB / IP Pada Klien
Kita perlu menginstal usbip pada klien juga:
sudo apt-get install usbip
Setelah itu kami memuat vhci-hcd
modul kernel:
modprobe vhci-hcd
Untuk memeriksa apakah benar-benar dimuat, jalankan:
root@client1:~# lsmod | grep vhci_hcd
vhci_hcd 19800 0
usbip_common_mod 13605 1 vhci_hcd
Untuk memastikan bahwa modul dimuat secara otomatis setiap kali Anda mem-boot sistem, Anda dapat menambahkannya ke /etc/modules
:
vi /etc/modules
[...]
vhci-hcd
Sekarang terhubung ke server usbip dan dapatkan daftar perangkat USB yang tersedia:
usbip -l 192.168.0.100
(192.168.0.100 is the IP address of the usbip server.)
Anda harus menemukan flash drive USB SanDisk di output (BUSID 1-1):
root@client1:~# usbip -l 192.168.0.100
- 192.168.0.100
1-1: SanDisk Corp. : Cruzer Micro Flash Drive (0781:5151)
: /sys/devices/pci0000:00/0000:00:07.2/usb1/1-1
: (Defined at Interface level) (00/00/00)
: 0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
Untuk melampirkan perangkat itu ke klien, jalankan:
root@client1:~# usbip -a 192.168.0.100 1-1
8 ports available
port 0 attached
Sekarang jalankan lsusb
dan Anda akan menemukan perangkat USB jarak jauh di output pada klien:
root@client1:~# lsusb
Bus 001 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro 256/512MB Flash Drive
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Anda sekarang dapat menggunakan perangkat USB jarak jauh seolah-olah itu adalah perangkat USB lokal (mis. Pasang, format, tulis, baca formulir, dll.).
Melepaskan Perangkat Remote USB
Perangkat USB jarak jauh dapat dilepas sebagai berikut:
client1:
Lari...
usbip --port
... untuk mengetahui port yang digunakan perangkat remote USB pada klien - dalam hal ini port 00:
root@client1:~# usbip --port
8 ports available
Port 00: <Port in Use> at High Speed(480Mbps)
SanDisk Corp. : Cruzer Micro 256/512MB Flash Drive (0781:5151)
1-1 -> usbip://192.168.0.100:3240/1-1 (remote devid 00010002 (bus/dev 001/002))
1-1:1.0 used by usb-storage
/sys/class/bsg/1:0:0:0/device
/sys/class/scsi_device/1:0:0:0/device
/sys/class/scsi_disk/1:0:0:0/device
/sys/class/scsi_host/host1/device
/sys/class/usb_endpoint/usbdev1.4_ep02/device
/sys/class/usb_endpoint/usbdev1.4_ep81/device
/sys/block/sdb/device
Port 01: <Port Available>
Port 02: <Port Available>
Port 03: <Port Available>
Port 04: <Port Available>
Port 05: <Port Available>
Port 06: <Port Available>
Port 07: <Port Available>
Kami membutuhkan nomor port untuk melepaskan perangkat:
usbip -d 00
root@client1:~# usbip -d 00
8 ports available
port 0 detached
Di server, kami menggunakan BUSID (1-1)
untuk mengikat perangkat USB ke sistem lokal (- switch lainnya mengikat perangkat ke sistem lokal sehingga tidak lagi tersedia di jaringan):
server1:
usbip_bind_driver --other 1-1
root@server1:~# usbip_bind_driver --other 1-1
** (process:7333): DEBUG: write "del 1-1" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 1-1 to other drivers than usbip, complete!
Sekarang kembali ke klien dan periksa apakah perangkat USB jarak jauh masih tersedia:
client1:
Jika semuanya berjalan dengan baik, seharusnya tidak terdaftar lagi:
root@client1:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Tautan
http://usbip.sourceforge.net
Sumber tutorial (Sisi Server)
Sumber tutorial (Sisi Klien)