ዩኤስቢ/አይ ፒን በመግራት ላይ

በአካባቢያዊ አውታረመረብ በኩል የዩኤስቢ መሣሪያን ከርቀት ፒሲ ጋር የማገናኘት ተግባር በየጊዜው ይነሳል. በመቁረጫው ስር ፣ በዚህ አቅጣጫ የፍለጋዎቼ ታሪክ ተቀምጧል ፣ እና በክፍት ምንጭ ፕሮጀክት ላይ ወደ ተዘጋጀ መፍትሄ የሚወስደው መንገድ ዩኤስቢ/አይ.ፒ በዚህ መንገድ ላይ የተለያዩ ሰዎች በጥንቃቄ የተቀመጡትን መሰናክሎች እንዲሁም እነሱን ለማለፍ መንገዶችን በመግለጽ ።

ክፍል አንድ, ታሪካዊ

ማሽኑ ምናባዊ ከሆነ - ይህ ሁሉ ቀላል ነው. የዩኤስቢ ከአስተናጋጅ ወደ ቨርቹዋል ማሽን የማስተላለፍ ተግባር በVMWare 4.1 ላይ ታየ። ነገር ግን በእኔ ሁኔታ፣ እንደ WIBU-KEY የሚታወቀው የደህንነት ቁልፍ በተለያዩ ጊዜያት ከተለያዩ ማሽኖች ጋር መገናኘት ነበረበት፣ እና ምናባዊ ብቻ ሳይሆን።
እ.ኤ.አ. በ2009 በሩቅ የተደረገው የመጀመርያው ዙር ፍለጋ ወደ ሚባል ብረት መራኝ። TrendNet TU2-NU4
ምርቶች

  • አንዳንድ ጊዜ እንኳን ይሰራል

Cons:

  • ሁልጊዜ አይሰራም. የ Guardant Stealth II መከላከያ ቁልፉ በእሱ በኩል አይጀምርም, "መሣሪያ መጀመር አይቻልም" በሚለው ስህተት መሳደብ.
  • የአስተዳዳሪ ሶፍትዌር (ማንበብ - የዩኤስቢ መሳሪያዎችን መጫን እና ማራገፍ) እስከ ጽንፍ ድረስ አሳዛኝ ነው። የትእዛዝ መስመር መቀየሪያዎች, አውቶማቲክ - አይ, አልሰሙም. ሁሉም ነገር በእጅ ብቻ ነው. ቅዠት.
  • የመቆጣጠሪያው ሶፍትዌር በማሰራጨት በአውታረ መረቡ ውስጥ ያለውን የብረት ቁራጭ እራሱን ይፈልጋል ፣ ስለዚህ ይህ በአንድ የብሮድካስት አውታረ መረብ ክፍል ውስጥ ብቻ ይሰራል። የብረቱን ቁራጭ አይፒ አድራሻ በእጅ መግለጽ አይችሉም። በሌላ ሳብኔት ውስጥ ያለ ብረት? ከዚያ ችግር አለብዎት.
  • ገንቢዎች በመሣሪያው ላይ ነጥብ ያስመዘገቡ፣ የሳንካ ሪፖርቶችን መላክ ምንም ፋይዳ የለውም።

ሁለተኛው ዙር በጣም ሩቅ ባልሆነ ጊዜ ውስጥ ተከሰተ እና ወደ መጣጥፉ ርዕስ መራኝ - የዩኤስቢ/አይፒ ፕሮጀክት. በተለይ ከወንዶቹ ጀምሮ በግልጽ ይስባል ReactOS ለዊንዶውስ ሾፌር ፈርመዋል ፣ ስለዚህ አሁን ሁሉም ነገር በ x64 ላይ እንኳን ያለ ምንም ክራንች እንደ የሙከራ ሁኔታ ይሰራል። ለዚህም ብዙ ምስጋና ለReactOS ቡድን! ሁሉም ነገር የሚያምር ይመስላል, ለመሰማት እንሞክር, በእርግጥ እንደዚያ ነው? እንደ አለመታደል ሆኖ ፕሮጀክቱ ራሱ ተትቷል ፣ እና እርስዎ በድጋፍ ላይ መቁጠር አይችሉም - ግን የእኛ ካልጠፋ ፣ ምንጩ እዚያ አለ ፣ እኛ እንረዳዋለን!

ክፍል ሁለት, አገልጋይ-ሊኑክስ

የዩኤስቢ መሳሪያዎችን በኔትወርክ የሚያጋራ የዩኤስቢ/IP አገልጋይ ሊነክስ ላይ በተመሰረተ ስርዓተ ክወና ላይ ብቻ ሊዋቀር ይችላል። ደህና ፣ ሊኑክስ ሊኑክስ ነው ፣ Debian 8 ን በምናባዊ ማሽን ላይ በትንሹ ውቅር ፣ መደበኛ የእጅ እንቅስቃሴ እንጭነዋለን።

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install usbip

ተቀምጧል። በተጨማሪም በይነመረብ የዩኤስቢፕ ሞጁሉን ማውረድ እንደሚያስፈልግ ይጠቁማል ፣ ግን - ሰላም ፣ የመጀመሪያው መሰቅሰቂያ። እንደዚህ አይነት ሞጁል የለም. እና ሁሉም በአውታረ መረቡ ላይ ያሉት አብዛኛዎቹ ማኑዋሎች የቀድሞውን ቅርንጫፍ 0.1.x ስለሚያመለክቱ እና በቅርብ ጊዜ 0.2.0 የዩኤስቢፕ ሞጁሎች የተለያዩ ስሞች አሏቸው።

ስለዚህ

sudo modprobe usbip-core
sudo modprobe usbip-host
sudo lsmod | grep usbip

ደህና፣ በስርዓት ጅምር ላይ በራስ ሰር ለመጫን የሚከተሉትን መስመሮች ወደ /etc/modules እንጨምር።

usbip-core
usbip-host
vhci-hcd

የዩኤስቢፕ አገልጋይን እንጀምር፡-

sudo usbipd -D

በተጨማሪ፣ ሁለንተናዊው አእምሮ ዩኤስቢፕ አገልጋዩን እንድናስተዳድር ከሚረዱን ስክሪፕቶች ጋር እንደሚመጣ ይነግረናል - የትኛውን መሳሪያ በአውታረ መረቡ ላይ እንደሚያጋራ ያሳዩ ፣ ሁኔታውን ይመልከቱ እና የመሳሰሉት። እዚህ ሌላ የአትክልት መሳሪያ ይጠብቀናል - እነዚህ በ 0.2.x ቅርንጫፍ ውስጥ ያሉ ስክሪፕቶች እንደገና ተሰይመዋል. የትእዛዞችን ዝርዝር ማግኘት ይችላሉ።

sudo usbip

የትእዛዞቹን መግለጫ ካነበቡ በኋላ አስፈላጊውን የዩኤስቢ መሣሪያ ለማጋራት ዩኤስቢፕ የአውቶቡስ መታወቂያውን ማወቅ እንደሚፈልግ ግልጽ ይሆናል. ውድ ተመልካቾቻችን ሬክ ቁጥር ሶስት በመድረኩ ላይ ነው፡ የሚሰጠን የአውቶብስ መታወቂያ lsusb (በጣም ግልፅ መንገድ ይመስላል) - ለእሷ አይስማማም! እውነታው ግን ዩኤስቢፕ እንደ ዩኤስቢ መገናኛዎች ያሉ ሃርድዌሮችን ችላ ማለቱ ነው። ስለዚህ አብሮ የተሰራውን ትዕዛዝ እንጠቀማለን፡-

user@usb-server:~$ sudo usbip list -l
 - busid 1-1 (064f:0bd7)
   WIBU-Systems AG : BOX/U (064f:0bd7)

ማስታወሻ፡ ከዚህ በኋላ በዝርዝሩ ውስጥ የኔን ልዩ የዩኤስቢ ቁልፍ ምሳሌ በመጠቀም ሁሉንም ነገር እገልጻለሁ። የእርስዎ የሃርድዌር ስም እና 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)

ሶስት አይዞህ ፣ ጓዶች! አገልጋዩ የብረቱን ቁራጭ በኔትወርኩ ላይ አጋርቶታል፣ እና ማገናኘት እንችላለን! የዩኤስቢፕ ዴሞንን በራስ ማስጀመር ወደ /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 ሲቀይሩ የፕሮቶኮሉን ሥሪት ቀይረዋል፣ ነገር ግን ይህንን በዊን ደንበኛ ውስጥ ማድረግ ረስተውታል። የታቀደው መፍትሄ በመነሻ ኮድ ውስጥ ያለውን ቋሚ መለወጥ እና ደንበኛው እንደገና መገንባት ነው.

ግን ለእዚህ አሰራር ምክንያት ቪዥዋል ስቱዲዮን ማውረድ አልፈልግም. ግን ጥሩ የድሮ ሂው አለኝ። በምንጭ ኮድ ውስጥ ቋሚው እንደ ድርብ ቃል ይገለጻል። ለ 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

እና ያ ነው. ሁሉን የሚያውቀው ጎግል እንኳን ይህንን ሊመልስልኝ አልቻለም። እና በተመሳሳይ ጊዜ በአገልጋዩ ላይ የሚገኙትን መሳሪያዎች ለማሳየት ትእዛዝ በትክክል ያሳያል - እዚህ ነው ፣ ቁልፉ ፣ እሱን መጫን ይችላሉ። ከሊኑክስ ስር ለመጫን እሞክራለሁ - ይሰራል! እና አሁን ከዊንዶውስ ስር ይሞክሩት? ወይ ጉድ - ይሰራል!

የመጨረሻው መሰቅሰቂያ፡ በአገልጋይ ኮድ ውስጥ የሆነ ነገር አልተጨመረም። መሣሪያን ሲያጋሩ የዩኤስቢ ገላጭዎችን ቁጥር ከእሱ አያነብም። እና መሳሪያውን ከሊኑክስ ስር ሲጫኑ, ይህ መስክ ተሞልቷል. እንደ አለመታደል ሆኖ፣ በሊኑክስ ስር ያለውን የ"meke & & make install" ደረጃ ላይ ያለውን እድገት አውቀዋለሁ። ስለዚህ፣ ችግሩ በቆሸሸ ጠለፋ ተፈቷል - ወደ /etc/rc.local በመጨመር

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

የመጨረሻ ክፍል

ከተወሰነ ጊዜ በኋላ, ይሰራል. የተፈለገውን ውጤት ተገኝቷል, አሁን ቁልፉ ወደ ማንኛውም ፒሲ (እና ያልተሰካ, እንዲሁም, እንዲሁም) ከስርጭት አውታር ክፍል ውጭ ጨምሮ. ከፈለጉ, የሼል ስክሪፕት በመጠቀም ሊያደርጉት ይችላሉ. ምን ጥሩ ነው - ደስታው ሙሉ በሙሉ ነፃ ነው።
የእኔ ልምድ habrazhiteli በግንባሬ ላይ የታተመውን መሰቅሰቂያ ዙሪያ ለማግኘት እንደሚረዳው ተስፋ አደርጋለሁ። ለሰጠህው አትኩሮት እናመሰግናለን!

ምንጭ: hab.com

አስተያየት ያክሉ