আপনি এই সফ্টওয়্যারটি ইউএসবিপ ব্যবহার করতে পারেন এবং সফ্টওয়্যারটি সেটআপ করতে এবং সার্ভার এবং ক্লায়েন্ট উভয় পক্ষেই এটি ব্যবহার করতে পারেন
মন্তব্য:
এই টিউটোরিয়ালটিতে ওবুন্টু চলমান উভয়ই ব্যবহার করুন server server1.example.com with IP
192.168.0.100এবং client client1.example.com with IP 192.168.0.101আপনার জন্য এই সেটিংসটি পৃথক হতে পারে, সুতরাং আপনাকে উপযুক্ত যেখানে এগুলি প্রতিস্থাপন করতে হবে।
এছাড়াও এই টিউটোরিয়ালে ব্যবহৃত অ্যাকাউন্টটি rootতাই যদি কোনও কমান্ড কাজ না করে হয় তবে কমান্ডের আগে ব্যবহার করুন rootবা ব্যবহার sudoকরুন
সার্ভারে ইউএসবি / আইপি ইনস্টল করা এবং ব্যবহার করা
আমরা নিম্নরূপে ইউএসবিপ ইনস্টল করতে পারি:
apt-get install usbip
এরপরে আমরা ইউএসবিপ কার্নেল মডিউলগুলি লোড করি:
modprobe usbip
modprobe usbip_common_mod
সেগুলি সত্যিই বোঝা হয়ে গেছে কিনা তা পরীক্ষা করতে, চালান:
lsmod | grep usbip
আউটপুট এই এক অনুরূপ হওয়া উচিত:
root@server1:~# lsmod | grep usbip
usbip 15124 0
usbip_common_mod 13605 1 usbip
root@server1:~#
উভয় মডিউল স্বয়ংক্রিয়ভাবে লোড হয়ে যায় তা নিশ্চিত করার জন্য আপনি যখনই সিস্টেমটি বুট করেন, আপনি সেগুলি / etc / মডিউলগুলিতে যুক্ত করতে পারেন:
vi /etc/modules
[...]
usbip
usbip_common_mod
এখন আমরা ইউএসবিপ ডেমন শুরু করতে পারি:
root@server1:~# usbipd -D
Bind usbip.ko to a usb device to be exportable!
এখন আপনি একটি ইউএসবি ডিভাইস সংযুক্ত করুন যা আপনি সার্ভারে রফতানি করতে চান - আমি এখানে একটি সানডিস্ক ইউএসবি ফ্ল্যাশ ড্রাইভ ব্যবহার করছি।
কমান্ড কার্যকর করুন lsusb
সম্পর্কিত বিক্রেতার / ডিভাইস আইডি যা এই আকারে রয়েছে তা সন্ধান করতে:
Bus XXX Device YYY: ID VendorID:DeviceID
আমার সার্ভারে আউটপুট নিম্নরূপ:
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
আমার সানডিস্ক ইউএসবি ফ্ল্যাশ ড্রাইভের বিক্রেতা / ডিভাইস আইডি 0781: 5151।
এখন চালান
usbip_bind_driver --list
root@server1:~# usbip_bind_driver --list
List USB devices
- busid 1-1 (0781:5151)
1-1:1.0 -> usb-storage
আপনি দেখতে পাচ্ছেন, আমার সানডিস্ক ইউএসবি ফ্ল্যাশ ড্রাইভ (0781: 5151) এর বিক্রেতার / ডিভাইস আইডিটি 1-1 এর সাথে সামঞ্জস্য করে। BUSIDইউএসবি ডিভাইসটি সার্ভারের সাথে সংযুক্ত করার জন্য আমাদের এটি দরকার :
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!
এটি এখন, আমরা এখন রিমোট ইউএসবিপ ক্লায়েন্টে সানডিস্ক ইউএসবি ফ্ল্যাশ ড্রাইভ ব্যবহার করতে পারি।
বিটিডাব্লু, যদি আপনি চালান ...
netstat -tap
... আপনার দেখতে হবে যে ইউএসবিপ ডিমন শুনছে port 3240
সুতরাং দয়া করে নিশ্চিত করুন যে এই পোর্টটি আপনার ফায়ারওয়াল দ্বারা অবরুদ্ধ নয়:
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
ক্লায়েন্টে ইউএসবি / আইপি ইনস্টল ও ব্যবহার করা
আমাদের ক্লায়েন্টের পাশাপাশি ইউএসবিপ ইনস্টল করতে হবে:
sudo apt-get install usbip
এরপরে আমরা vhci-hcdকার্নেল মডিউলটি লোড করব :
modprobe vhci-hcd
এটি সত্যিই লোড হয়েছে কিনা তা পরীক্ষা করতে, চালনা করুন:
root@client1:~# lsmod | grep vhci_hcd
vhci_hcd 19800 0
usbip_common_mod 13605 1 vhci_hcd
আপনি যখনই সিস্টেমটি বুট করবেন তখন মডিউলটি স্বয়ংক্রিয়ভাবে লোড হয়ে যায় তা নিশ্চিত করার জন্য, আপনি এটি এতে যুক্ত করতে পারেন /etc/modules:
vi /etc/modules
[...]
vhci-hcd
এখন ইউএসবিপ সার্ভারের সাথে সংযোগ স্থাপন করুন এবং উপলভ্য ইউএসবি ডিভাইসের একটি তালিকা পান:
usbip -l 192.168.0.100
(192.168.0.100 is the IP address of the usbip server.)
আপনার আউটপুটটিতে সানডিস্ক ইউএসবি ফ্ল্যাশ ড্রাইভটি পাওয়া উচিত (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)
ডিভাইসটি ক্লায়েন্টের সাথে সংযুক্ত করতে, চালান:
root@client1:~# usbip -a 192.168.0.100 1-1
8 ports available
port 0 attached
এখন রান করুন lsusbএবং আপনার ক্লায়েন্টের আউটপুটে দূরবর্তী ইউএসবি ডিভাইসটি খুঁজে পাওয়া উচিত:
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
আপনি এখন দূরবর্তী ইউএসবি ডিভাইসটিকে ব্যবহার করতে পারেন যেন এটি কোনও স্থানীয় ইউএসবি ডিভাইস (যেমন এটি মাউন্ট করুন, এটি ফর্ম্যাট করুন, এতে লিখুন, ফর্মটি পড়ুন ইত্যাদি)।
একটি রিমোট ইউএসবি ডিভাইস আলাদা করা হচ্ছে
একটি দূরবর্তী ইউএসবি ডিভাইসটি নীচে পৃথক করা যেতে পারে:
client1:
চালান ...
usbip --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>
ডিভাইসটি আলাদা করতে আমাদের পোর্ট নম্বরটি প্রয়োজন:
usbip -d 00
root@client1:~# usbip -d 00
8 ports available
port 0 detached
সার্ভারে আমরা BUSID (1-1)ইউএসবি ডিভাইসটিকে স্থানীয় সিস্টেমে আবদ্ধ করতে ব্যবহার করি (- অন্য সুইচটি ডিভাইসটিকে স্থানীয় সিস্টেমে সংযুক্ত করে যাতে এটি আর নেটওয়ার্কে উপলব্ধ না হয়):
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!
এখন ক্লায়েন্টের কাছে ফিরে যান এবং রিমোট ইউএসবি ডিভাইসটি এখনও উপলব্ধ কিনা তা পরীক্ষা করুন:
client1:
সবকিছু ঠিকঠাক থাকলে, এটি আর তালিকাভুক্ত করা উচিত নয়:
root@client1:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
লিংক
http://usbip.sourceforge.net
টিউটোরিয়াল উত্স (সার্ভার সাইড)
টিউটোরিয়ালের উত্স (ক্লায়েন্ট সাইড)