د USB/IP ټیم کول

د ځایی شبکې له لارې لیرې کمپیوټر ته د USB وسیله وصل کولو دنده په منظم ډول راپورته کیږي. د کټ لاندې ، پدې لور کې زما د لټونونو تاریخ ترتیب شوی ، او د خلاصې سرچینې پروژې پراساس چمتو شوي حل ته لاره USB/IP په دې لاره کې د مختلفو خلکو لخوا په احتیاط سره د خنډونو تشریح سره، او همدارنګه د دوی د تیرولو لارې.

لومړۍ برخه، تاریخي

که ماشین مجازی وي - دا ټول اسانه دي. د کوربه څخه مجازی ماشین ته د USB لیږلو فعالیت په VMWare 4.1 کې څرګند شو. مګر زما په قضیه کې، د امنیت کیلي، د WIBU-KEY په توګه پیژندل کیده، باید په مختلفو وختونو کې مختلف ماشینونو سره وصل شي، او نه یوازې مجازی.
په 2009 لیرې کې د لټون لومړی پړاو زه د اوسپنې یوې ټوټې ته اړوم TrendNet TU2-NU4
پرو:

  • ځینې ​​​​وختونه دا حتی کار کوي

ضمیمه:

  • تل کار نه کوي. فرض کړئ چې د ګارډنټ سټیلت II محافظت کیلي د دې له لارې نه پیل کیږي ، د غلطۍ سره قسم خوړل "وسیله نشي پیل کیدی".
  • د مدیریت سافټویر (لوستل - د USB وسیلو نصب کول او غیر نصب کول) خورا ډیر دردناک دی. د کمانډ لاین سویچونه ، اتومات - نه ، ندي اوریدلي. هرڅه یوازې په لاس کې دي. د شپې خوب.
  • د کنټرول سافټویر پخپله شبکه کې د اوسپنې ټوټې د نشراتو له لارې لټوي، نو دا یوازې د یوې نشراتي شبکې برخې کې کار کوي. تاسو نشئ کولی د لاس په واسطه د اوسپنې ټوټې IP پته مشخص کړئ. په بل سبنټ کې د اوسپنې یوه ټوټه؟ بیا تاسو ستونزه لرئ.
  • پرمخ وړونکو په وسیله نمرې اخیستې، د بګ راپورونو لیږل بې ګټې دي.

دوهم پړاو په داسې وختونو کې پیښ شو چې دومره لیرې نه و، او ما د مقالې موضوع ته لارښوونه وکړه - د USB/IP پروژه. د خلاصون سره جذبوي، په ځانګړې توګه د هلکانو څخه ReactOS دوی د وینډوز لپاره ډرایور لاسلیک کړ ، نو اوس هرڅه حتی په x64 کې د ټیسټ حالت په څیر پرته له کرچ څخه کار کوي. د کوم لپاره چې د ReactOS ټیم څخه ډیره مننه! هر څه ښکلي ښکاري، راځئ چې د احساس کولو هڅه وکړو، ایا دا واقعا همداسې ده؟ له بده مرغه، پروژه پخپله هم پریښودل شوې، او تاسو نشئ کولی په ملاتړ باندې حساب وکړئ - مګر چیرې چې زموږ نه ورک شوی، سرچینه شتون لري، موږ به یې معلومه کړو!

دویمه برخه، سرور-لینکس

یو USB/IP سرور چې په شبکه کې د USB وسایل شریکوي یوازې د لینکس میشته 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 غواړي خپل بس ID وپیژني. ګرانو لیدونکو، دریم نمبر ریک په میدان کې دی: د بس ID چې موږ به یې راکړئ lsusb (دا به ترټولو ښکاره لاره ښکاري) - دا د هغې سره مناسب نه ده! حقیقت دا دی چې usbip د USB مرکزونو په څیر هارډویر له پامه غورځوي. له همدې امله، موږ به جوړ شوي کمانډ وکاروو:

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

دریمه برخه، د پیرودونکي اړخ او ګډوډ

ما هڅه وکړه چې شریکه وسیله په شبکه کې د ډیبیان ماشین سره په ورته سرور کې وصل کړم، او هرڅه سم وصل شوي:

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

راځئ چې وینډوز ته لاړ شو. زما په قضیه کې دا د وینډوز سرور 2008R2 معیاري نسخه وه. رسمي لارښود تاسو څخه غوښتنه کوي چې لومړی ډرایور نصب کړئ. طرزالعمل په بشپړ ډول د وینډوز پیرودونکي سره وصل شوي ریډم کې بیان شوی ، موږ هرڅه ترسره کوو لکه څنګه چې لیکل شوي ، هرڅه کار کوي. په 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 پیرودونکي کې دا کول هیر کړل. وړاندیز شوی حل دا دی چې د سرچینې کوډ کې ثابت بدل کړئ او پیرودونکي بیا جوړ کړئ.

مګر زه واقعیا نه غواړم د دې طرزالعمل لپاره بصری سټوډیو ډاونلوډ کړم. مګر زه یو ښه زوړ هیو لرم. د سرچینې کوډ کې، ثابت د دوه ګوني کلمې په توګه اعلان شوی. راځئ چې د 0x00000106 لپاره فایل کې وګورو، دا د 0x00000111 سره بدل کړئ. په یاد ولرئ، د بایټ ترتیب بدل شوی. پایله دوه میچونه دي، پیچ:

[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

او دا دی. حتی ټول پوهه ګوګل زما لپاره دا ځواب نشي کولی. او په ورته وخت کې ، په سرور کې موجود وسیلو ښودلو قوماندې په سمه توګه ښیې - دلته دا کیلي ده ، تاسو کولی شئ دا نصب کړئ. زه هڅه کوم د لینکس لاندې څخه پورته کړم - دا کار کوي! او که اوس د وینډوز لاندې هڅه وکړئ؟ اوه - دا کار کوي!

وروستی ریک: یو څه د سرور کوډ کې ندي اضافه شوي. کله چې یوه وسیله شریکه کړئ، دا د هغې څخه د USB تشریح کونکو شمیر نه لوستل کیږي. او کله چې د لینکس لاندې وسیله نصب کړئ ، دا ساحه ډکه شوې. له بده مرغه، زه د "make &&make install" په کچه د لینوکس لاندې پرمختګ سره اشنا یم. له همدې امله، ستونزه د یو ناپاک هیک سره حل کیږي - په /etc/rc.local کې اضافه کول

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

وروستۍ برخه

د یو څه ځنډ وروسته، دا کار کوي. مطلوب پایله ترلاسه شوې ، اوس کیلي په هر کمپیوټر کې نصب کیدی شي (او غیر نصب شوی ، البته ، هم) ، په شمول د نشراتي شبکې برخې څخه بهر. که تاسو غواړئ، تاسو کولی شئ دا د شیل سکریپټ په کارولو سره ترسره کړئ. څه ښه دي - خوښي بالکل وړیا ده.
زه امید لرم چې زما تجربه به د هابراژیتلي سره مرسته وکړي ترڅو د هغه ریک شاوخوا ترلاسه کړي چې زما په تندي باندې نقش شوي. له پاملرنې څخه مو مننه!

سرچینه: www.habr.com

Add a comment