Ngamaxesha amaninzi, xa sisebenzisa ikhompyuter yethu siqhawula isixhobo se-USB (ngokukhuselekileyo, njengoko kufanelekile) kwaye, kwangoko emva koko, siyaqonda ukuba silibale ukukopa ifayile okanye kwafuneka siqinisekise ukuba idatha ikwindawo yethu. iyunithi. Kwezi meko kudla ngokuba luncedo kakhulu ukukhupha iidiski ze-USB xa sisebenza ukude.
Emva kokusikhupha isixhobo, asisaboni kuluhlu lwethu lwezixhobo, kodwa i-hard drive okanye i-pendrive isaqhagamshelwe kwizibuko le-USB, kwaye kwiindawo ezininzi zokusasazwa namhlanje, siyikhuphile ngokukhuselekileyo iyunithi, nathi asisiboni isixhobo kwaye Asinakuyenza Ukunyuka ukusuka kwi-terminal yethu. Isisombululo esona sikhawulezayo kukuqhawula intambo kwaye uyixhume kwakhona, kwezinye iimeko, nokuba kungenxa yobuvila okanye kufuneka uphakame okanye ngenxa yokuba sifikelela kwizixhobo ezingekho phambi kwethu kwaye akukho mntu usondeleyo, asinakuyenza.
Ulwazi malunga nezixhobo ze-USB
Ngaphambi kokuba siqale, makhe sibone indlela yokufumana ulwazi malunga nezixhobo ze-USB eziqhagamshelwe kwinkqubo. Kule nto, sinokusebenzisa lsusb, eya kudwelisa izixhobo eziqhagamshelwe ngoku. Ndinika imizekelo yento endiyifumanayo kwikhompyuter yam ngoku, kodwa inokwahluka kakhulu kwinto oyifumanayo:
$ lsusb Bus 002 Isixhobo 001: ID 1d6b:0003 Linux Foundation 3.0 ingcambu hub Bus 001 Isixhobo 006: ID 8087:0a2a Intel Corp. Ibhasi 001 Isixhobo 007: ID 046d:c52b Logitech001 005 I-ID ye-Bus 1 I-ID ye-Bus 40 I-ID ye-Bus 0101 I-ID ye-Bus 001 i-Un. : 010 Terminus Technology Inc. Hub Bus 125 Isixhobo 93: ID 4f:c001a A-DATA Technology Co., Ltd. 003GB Pen Drive Bus 04 Isixhobo 2: ID 424f001:b001 Chicony Electronics Co., Ltd Ibhasi 1b Isixhobo se-ID6 :0002 Linux Foundation 2.0 hub ingcambu
Ukuba sifuna ulwazi oluthe kratya, sinokusebenzisa i -t switch eya kusibonisa imveliso efana nomthi ngolwazi malunga neemodyuli:
$ lsusb -t /: Ibhasi 02.Izibuko 1: Dev 1, Iklasi=root_hub, Driver=xhci_hcd/8p, 5000M /: Ibhasi 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p___480M Port 4: Dev 3, Ukuba 0, Class=Video, Driver=uvcvideo, 480M |__ Port 4: Dev 3, Ukuba 1, Class=Video, Driver=uvcvideo, 480M |__ Port 5: Dev 10, Ukuba 0, Udidi =Ugcino lweSininzi, Umqhubi=usb-ukugcinwa, 480M |__ Izibuko 6: Dev 5, Ukuba 0, Udidi=Hub, Umqhubi=hub/4p, 12M |__ Port 4: Dev 7, Ukuba 0, Udidi=IsiXhobo soMsebenzi woMntu, Umqhubi=usbhid, 12M |__ Izibuko 4: I-Dev 7, Ukuba 1, Udidi=Isixhobo soNxibelelwano loMntu, Driver=usbhid, 12M |__ Port 4: Dev 7, Ukuba 2, Udidi=Isixhobo soNxibelelwano loMntu, uMqhubi=usbhid, 12M | __ Port 9: Dev 6, Ukuba 0, Udidi=Okungenangcingo, Umqhubi=btusb, 12M |__ Port 9: Dev 6, Ukuba 1, Class=Wireless, Driver=btusb, 12M
Ukuba sifuna ulwazi oluninzi, sinokulusebenzisa lsusb -v (imveliso inkulu kakhulu), singakwazi kwakhona, umzekelo, ukwazi amandla aphezulu anikezelwe kwisixhobo, ngale ndlela ilandelayo:
$ lsusb -v 2>/dev/null |egrep "^Bus|MaxPower" Ibhasi 002 Isixhobo 001: ID 1d6b:0003 Linux Isiseko 3.0 ingcambu hub MaxPower 0mA Bus 001 Isixhobo 006: ID 8087:0a2a100 Intel001m Intel007m046Power Isixhobo 52: ID 98d:c001b Logitech, Inc. Umamkeli oManyeneyo MaxPower 005mA Bus 1 Isixhobo 40: ID 0101a100:001 Terminus Technology Inc. Hub MaxPower 010mA Bus 125 Isixhobo 93: IDc 4GB Af. I-Pen Drive MaxPower 480mA Bus 001 Device 003: ID 04f2:b424 Chicony Electronics Co., Ltd MaxPower 500mA Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub MaxPower 0mA
Eminye imiyalelo eluncedo kakhulu usb-izixhobo, lwazi, okanye, umzekelo, ukuba sinomendo wesixhobo (ngaphakathi / dev/), sinokubuza inkqubo kulo lonke ulwazi olunokwenzeka malunga nayo kunye neendlela ezisezantsi ekufuneka idlule kuzo. Ngokomzekelo, ukuba sidibanisa i-USB hard drive, ukuze sikwazi ukusebenzisa isixhobo, sifuna umqhubi we-SCSI (kuba / dev / sdX), sifuna umqhubi wokugcina we-USB, osebenza ngokusebenzisa I-USB port, eye hub, efakwe kwi-PCI port, phakathi kwezinye iinkqubo eziphakathi. Sasiyibona yonke le nto
$ udevadm ulwazi --query=indlela --igama=/dev/sdX --attribute-walk
o
$ udevadm ulwazi -a -n /dev/sdX
Ukuba sifuna ukuphuma, sinokungena /sys/ibhasi/usb kwaye ujonge kuyo yonke into apho, siya kubona ulwazi oluninzi, kodwa ngethamsanqa imiyalelo yangaphambili ihlela zonke ezi nkcukacha.
Amalungelo kunye nezixhobo
Ukwenza lo msebenzi kuya kufuneka sazi ukuba sesiphi isixhobo esiya kuso qhagamshela kwakhona. Ukwenza oku, sinokwenza:
$dmesg | umsila [Thu Nov 24 19:50:04 2016] sd 7:0:0:0: Iqhotyoshelweyo scsi generic sg3 uhlobo 0 [798339.431677] sd 7:0:0:0: [sdc] 15806464 by 512 blocks 8.09 GB/7.54 GiB) [798339.431840] sd 7:0:0:0: [sdc] Bhala iProtect icinyiwe [798339.431848] sd 7:0:0:0: [sdc] IMode Sense: 00 00. sd 00:00:798339.431988:7: [sdc] Ukucela idatha ye-cache ayiphumelelanga [0] sd 0: 0: 798339.431996: 7: [sdc] Ukucinga i-cache ye-drive: bhala nge- [0] sdc: sdc0 sdc0. :798339.434157:1:2: [sdc] Iqhotyoshelwe kwidiski esusekayo ye-SCSI [798339.446812] ISO 7 Izandiso: iMicrosoft Joliet iNqanaba 0 [0] ISO 0 Izandiso: RRIP_798360.808588A
Kule mveliso, siya kubona ukuba isixhobo esisebenza naso si sdc (i-sdc1 kunye ne-sdc2 iya kuba yizahlulo ngaphakathi kwediski). Kwimizekelo endiya kusebenzisa esi sixhobo, kwimeko yakho kuya kufuneka ubone ukuba yeyiphi onayo.
Kule mizekelo ingezantsi ndiya kusebenzisa sudo ukuqhuba imiyalelo ngamalungelo Ingcambu. Nangona kuya kwanela ukuba nomsebenzisi onemvume eyaneleyo. Ukuba sifuna ukubona amalungelo ayimfuneko, yenza nje ls kwisixhobo:
$ ls -latr /dev/sdc brw-rw---- 1 ingcambu disk 8, 32 Nov 24 19:50 /dev/sdc
Apho sibona ukuba umnini yingcambu kunye neqela disk. Kuya kwanela ukuba nomsebenzisi okwiqela lediski.
Indlela yoku-1. Yiphathe ngokungathi yiCD/DVD
Yeyona ilula kuzo zonke. Ngokuqinisekileyo ukuba ubusebenzisa i-GNU/Linux iminyaka, xa ubusebenza nge-CD-ROM okanye iDVD usebenzise umyalelo wokukhupha. Kulungile, i-eject isetyenziselwe ukuvula iCDROM kwaye ikhuphe -t yasetyenziswa ukuvala itreyi. Ewe, ukuba senza oku phambi kwesixhobo se-USB:
$ sudo eject -t /dev/sdc
Isixhobo kufuneka sibonakale ngathi siqhagamshele kwakhona.
Indlela yesi-2. Ukukhutshwa kwe-Virtual kunye nokuplaga
Kwezinye iinkqubo (ixesha elide i-hardware iyayixhasa), xa ususa ngokukhuselekileyo isixhobo se-USB, amandla kwisixhobo amisiwe kwaye isixhobo asisabonakali. Kuyafana naxa usenza:
udisksctl ukucima amandla -b /dev/sdc
Kule meko, / dev / sdc Sisixhobo sam, kwaye ngalo myalelo yalinganisa uqhawulo lombane lwenyani.
Ingxaki kukuba ngoku / dev/sdc ayikho, enyanisweni, ukuba sijonga i-dmesg, siya kufumana into enje:
$dmesg | umsila [281954.693298] usb 1-5: Ukuqhawula i-USB, inombolo yesixhobo 3
Ngoko ukuba sizama indlela ye khupha ayiyi kusebenza. Qaphela: Ndibalule usb 1-5 kwaye kungekudala siza kubona ukuba kutheni.
Ukuba usebenza ukude, oku kunokuba ngumbono olungileyo. Khawufane ucinge ukuba une-USB eqhagamshelwe ukwenza iikopi zokugcina. Xa usenza iikopi, kuhle ukuba inkqubo yazi ukuba kukho iidiski ezidityanisiweyo, kodwa xa singazisebenzisi, kwelinye icala, kufuneka. yonga amandla kwaye ugweme ukunxitywa kweediski, ngoko kungcono ukunqumla amandla, kwelinye icala, asifuni izicelo ezinobungozi zibone ukuba zikhona ezi disks ukuze bangosulelwa. (Ewe, kukho iintsholongwane kwi-GNU/Linux).
Sidibanisa njani amandla ngoku?
Kufuneka senze umnxeba kwizibuko le-USB, kuba le kukho iprojekthi ebizwa hubpower (Ndidibanisa nefolokhwe yeprojekthi yokuqala kuba i-bug ilungisiwe apha enokuthi ithathe amandla ngaphandle kwezixhobo ezininzi kwaye hayi le esiyifunayo kuphela). Kukho iiprojekthi ezininzi (ezifana ne uhubctl), kodwa oku akunakuxhomekeka xa sisiya kuqulunqa, kwaye yifayile ye hubpower.c.
Okokuqala, siyayiqulunqa,
$ gcc -o hubpower hubpower.c
Ngoku, uyawakhumbula amanani abhalwe ngqindilili kwi dmesg?, kulungile siza kuzisebenzisa, kuya kufuneka sikhuphe isixhobo kwaye siqhagamshele kwakhona, ngolu hlobo:
$ sudo ./hubpower 1:1 amandla 5 off Izibuko 5 ubume: 0000 Power-Off $ sudo ./hubpower 1:1 amandla 5 kwisiZibuko 5 ubume: 0100 Power-On
Ukuba isixhobo asisiboni, sinokuzama ukwenza:
$ sudo ./hubpower 1:1 bopha Faka isicelo somqhubi esithunyelwe kwikernel
Ngale ndlela, siya kubona isixhobo sethu se-USB esiqhagamshelweyo kwakhona.
Ukuba asifuni inkqubo kwi-C ... ndinayo kwi-perl
Inkqubo ye-C kunzima ukuyiqokelela kunye nokuvavanya ukuba into esiza kuyenza ilula kakhulu, ngoko sinokuzama eli zibuko lincinci kwimigca eli-10 eyenziwe ePerl:
#!/bin/perl ifuna "sys/ioctl.ph"; $isixhobo="05"; vula(yam i$usbdev, ">", "/dev/bus/usb/001/001"); $ data = ipakethe ("H *", "23010800".$device."000000FFFF8813"); ioctl($usbdev, 0xC0185500, data $); $ data = ipakethe ("H *", "23030800".$device."000000FFFF8813"); ioctl($usbdev, 0xC0185500, data $); vala ($ usbdev);
Kufuneka sihloniphe $isixhobo, inombolo yezibuko (kwimeko yam yayiyi-5), lixabiso le-hexadecimal, ngoko ke i-10 iya kuba ngu-A, i-11 iya kuba ngu-B, i-15 iya kuba ngu-F, i-16 iya kuba yi-10... Kwakhona kufuneka sibeke iliso kwisixhobo kunye nesixhobo. ibhasi, esifikelela kuyo ukusuka /dev/bus/usb/001/001, amanani kufuneka abe noziro abakhokelayo kuba sibiza loo fayile.
Njengoko sibona, isitshixo sikwi ioctl (), ngumsebenzi olawula iiparamitha zesixhobo kwifayile ekhethekileyo kwindlela yefayile. Phakathi kwexabiso le-hexadecimal elisetyenzisiweyo, sifumana 0xC0185500, into eqhubekayo ebizwa USBDEVFS_CONTROL esiya kuthi ngayo sithumele umyalelo wolawulo kwisixhobo se-USB.Ezinye iikhowudi zezoqhawulo kunye nesicelo soqhagamshelo (ungafumana ulwazi oluthe kratya kwinkqubo eyenziwe ku-C).
Indlela yesi-3. Ukufihla kunye nokubonisa isixhobo
Enye indlela yokuqhawula ifowuni inokuba:
echo '1-5' | sudo tee /sys/bus/usb/drivers/usb/unbind
Kwaye sinokuyibuyisela ngokwenza:
i-echo '1-5' | sudo tee /sys/ibhasi/usb/abaqhubi/usb/bophelela
Le ndlela ayibangeli ukuqhawulwa ngokupheleleyo kwesixhobo. Ikhusela kuphela inkqubo yokusebenza ekuthetheni nayo kunye nezixhobo ezininzi, xa ikhomputha ingafuni ukwazi nantoni na ngabo, yiya kwimodi yamandla aphantsi, kuba asiyi kubabuza nantoni na.
Indlela 4. Ugunyaziso lweSixhobo
Into embi ngale ndlela kukuba kwiinkqubo ezininzi izixhobo ezininzi zinokukhutshazwa okwethutyana, ezingeyiyo kuphela esiyifunayo, kodwa sihlasela ihabhu yonke ye-USB. Umzekelo:
$ echo 0 | sudo tee /sys/bus/usb/devices/usb1/egunyazisiweyo $ echo 1 | sudo tee /sys/bus/usb/devices/usb1/authorized
Oko, ewe, sinokwenza yonke into ngokulandelelana:
$ echo 0 | sudo tee /sys/bus/usb/devices/usb1/egunyazisiweyo; echo 1 | sudo tee /sys/bus/usb/devices/usb1/authorized
Kufuneka silumke, ukuba kukho iidrive ezininzi eziqhagamshelwe kwizibuko le-USB elifanayo (kwaye phantse rhoqo kwiikhompyuter zethu amazibuko e-USB amaninzi kunokuba sibona adityaniswe ngaphakathi kwi-hub, ngoko ke kukho amaqela amazibuko ane-USB efanayo. ubawo, uyibeke ngandlela thile.
Indlela yesi-5. Qalisa kwakhona i-subsystem ye-USB
Ukuba sifuna ukuqalisa kwakhona isistim esezantsi ye-USB. Oko kukuthi, hlaziya zonke izixhobo ze-USB, ezifana nokukhupha kunye nokuzifaka kuzo zonke, kwelinye icala sinokukhuphela kwaye silayishe kwakhona imodyuli ye-kernel ye-USB:
$ sudo modprobe -r ehci_hcd ; sudo modprobe ehci_hcd #Ye-USB2 $ sudo modprobe -r xhci_hcd; sudo modprobe xhci_hcd #Ye-USB3
Nangona ezinye izinikezelo, iinguqulelo zamva nje ze-Ubuntu kunye nezinto eziphuma kuzo zibandakanyiwe, zine iimodyuli ezidityanisiweyo ze-USB kwaye ayinakukhutshelwa. Kwelinye icala, inkqubo inokungasivumeli ukuba sizikhuphele ngenxa yokuba zisetyenziswa ngenxa yezinye iimodyuli (abashicileli, ukugcinwa, izixhobo zokujongana, njl.njl.), kwaye ukuba siqala ukukhuphela iimodyuli kunye nokwaphula izinto sinokuphinda siqalise ikhompyuter. ekugqibeleni. Ke, enye indlela esinokuyenza ngayo:
$echo '0000:00:14.5' | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind $ echo '0000:00:14.5' | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind
Ukufumana isixhobo sethu, sinokwenza ls ngaphakathi /sys/bus/pci/drivers/xhci_hcd, izinto ezininzi ziya kuvela, kufuneka sijonge enye ejongeka ngolu hlobo. yyyy:bb:cc:dd.e. Izibuko lakho le-USB alinakuza njenge xhci_hcd (USB3), kodwa endaweni yoko lize njenge ehci_hcd (USB2)
Inqaku elihle!
Enkosi kakhulu Cristian! Ndiyathemba ukuba uyifumene iluncedo.
Kule nqaku ayikhankanywanga ukuba nanini na xa uza kuyifaka kuyo ikwicala elichaseneyo nelichanekileyo kwaye kufuneka ujike ... hehehe. Inqaku elikhulu.
Enkosi Antonio Juan! yhazi jonga awuyazi ukuba indehlele kangaphi lonto ngoku ndivavanya yonke into endiyifake eposini!!! 🙂
Uqaqambileyo. Inqaku eliphezulu. Ifanele ibe nesihloko esithi: "Funda ngeLinux ngokukhupha iplagi kunye nokuplaga intonga yakho ye-USB." Sivuyisana nawe.
Imibuliso evela eMalaga.
Ewe ewe, andazi ukuba nabani na uya kuqalisa inkqubo kwi-C kunye nokufikelela kwizixhobo kule post!! NaseMalaga!! Sikho kuyo yonke indawo 🙂
Inqaku elinomtsalane. Uhambe kakhulu ngezinto ezinjalo.
Enkosi HO2Gi!! Kwiblogi yam yobuqu ( http://totaki.com/poesiabinaria ) kukwakho ezininzi zokufundisa kwisitayile 🙂
enkosi kakhulu mfondini. Ndiqala kwiLinux, ngakumbi kwiLinux Mint, kwaye ndinengxaki elandelayo: kwikhonsoli ndiyabona ukuba ifowuni yam iqhagamshelwe kumatshini kodwa kumphathi wefayile ayikho. Ke ngoko andinakuyisebenzisa njengemodem ukuqhagamshela kwi-intanethi. Ndingenza ntoni?
Kukho iifowuni ezingakuvumeli ukuba uqhagamshele njengemodem, kodwa unokwenza iTethering
Amaxwebhu agqwesileyo!
Enkosi ngokuthatha ixesha lakho ukwabelana ngamava.
Ndiyisebenzisa njengesalathiso solunye uhlobo lwengxaki endinayo: Ukuqhawulwa koqhagamshelwano lwezibuko ze-USB ku-Ubuntu (#42~precise1-Ubuntu SMP Wed Aug 14 15:31:16 UTC 2013)
Kuza ixesha kwi-System ebuyisela i--110 kwi-dmesg kwaye iphinde iqalise i-PC, kucingelwa ukuba ukusilela kubangelwa ukungabikho kwamandla kwi-USB apho ifowuni ixhunyiwe (i-USB3.0).
Ngoku ndisebenzisa i-lsusb -v ukujonga umgangatho wamandla wesixhobo kodwa ibuyisela i-2mA, engenangqondo ngokupheleleyo ... kuphela ii-LED ezidla ngaphezu koko ...
Ndidibanisa imodem yeHuawei E4 8372G-USB, nangona kunjalo amandla amakhulu abonisa i-2mA, engakholelekiyo, ngoku ukuthandabuza kutshintshile kwaye kwavela abanye:
Ngaba iMaxPower luphawu oluza ngokuzenzekelayo kwisixhobo okanye kwi-OS?
Ngaba iparameter yamandla aphezulu ukuba izibuko le-USB liza kuzisa?
Ukuba yiparameter
Ngaba le parameter ingalungiswa kwaye ibekwe kubuninzi obunikwe yi-USB port (900mAh- 3.0 / 500mAh- 2.0)?
Ukuba ayiyo parameter,
Ngaba lixabiso lokulinganisa ixesha lokwenyani lokusetyenziswa nge-USB (akunakwenzeka)?
Ukuba yenye inketho, nceda undicacisele kuba ndinokuthandabuza malunga nolwazi lwereferensi.
Ndinamathandabuzo amaninzi malunga nexabiso leMaxPower Ukuba unalo naluphi na ulwazi olongezelelweyo, ndingabulela kakhulu.
lsusb -v 2>/dev/null |egrep «^Bus|MaxPower|bDeviceClass|iProduct»
Ibhasi 002 Isixhobo 006: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial iadaptha
bDeviceClass 255 Umthengisi Class Specific
iProduct 2 USB2.0-Serial
Amandla aphezulu angama-96mA
Ibhasi 002 Isixhobo 008: ID 12d1:14db Huawei Technologies Co., Ltd.
bDeviceClass 2 uNxibelelwano
iProduct 2 HUAWEI_MOBILE
MaxPower 2mA
Ngaba inokufakwa kwiifestile?
Enkosi kakhulu. Ukusebenzisa i-udisksctl power-off -b /dev/sdc kwi-drive yam yangaphandle kwakwanele ukusombulula intloko. Ngaba bekungayi kuba ngcono ukuba ukwehlisa kunenketho yokwenza le nto inye?
Thixo, yintoni i-c * ck! Ngaba ukho umntu owayifunda yonke le will? Kwaye emva kwayo yonke into, asazi ukuba ukucima njani i-DAC / USB sound interface, umshicileli, ithebhulethi yegraphics ... ngokufutshane, nantoni na ngaphandle kwe-skewer okanye idiski yangaphandle. Yhini ukumosha ixesha...