Linux forenzika u obliku praćenja povijesti povezivanja USB uređaja. Linux forenzika u obliku praćenja povijesti povezivanja USB uređaja Prikaz povezanih USB uređaja

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Prilikom spajanja USB flash pogona ili bilo kojeg drugog USB uređaji a na računalu se stvara skup datoteka pomoću kojih im možete pristupiti. Kada radite u upravitelj datoteka sve je dovoljno jednostavno, ali jednom kad dođe do konzole sve postaje puno teže.

Za svakog početnika važno je da može prepoznati povezane uređaje, bilo da se radi o USB flash pogonima, SD karticama ili tvrdih diskova kako ne bi zapisali nešto na krivo mjesto ili formatirali krivi disk. U ovom ćemo članku pogledati nekoliko načina za pregled Linux USB uređaja spojenih na računalo.

U operacijskoj sali Linux sustav koristi se posebna filozofija upravljanja. Svi objekti, uključujući uređaje, smatraju se datotekama. Kada je uređaj spojen na sustav, za njega se stvara datoteka u direktoriju /dev/.

Obično, nakon što spojite bilo koji USB flash pogon ili drugi uređaj za pohranu na sustav s instaliranim desktop okruženjem, uređaj se automatski montira u /media/username/device_label/ mapu, a zatim možete pristupiti datotekama s uređaja u ovoj mapi . Međutim, postoje situacije kada morate ručno montirati USB i tada ova opcija neće pomoći.

Sve datoteke uređaja nalaze se u direktoriju /dev/. Ovdje možete pronaći sda, hda datoteke koje su HDD, kao i datoteke sda1 ili hda1, koje vam omogućuju pristup particijama diska. O svemu tome već smo detaljno govorili u članku. Možete vidjeti popis svih uređaja u direktoriju /dev/ pomoću naredbe:

Sada ostaje razumjeti koje od ovih datoteka uređaja pripadaju USB uređajima i kojim točno uređajima.

Kako vidjeti Linux USB uređaje

Kako biste saznali detaljnije informacije o svakom uređaju spojenom na vaš sustav i vidjeli popis linux uređaja, možete koristiti naredbu df. Koristi se za pregled slobodnog prostora na disku:

Prema ukupnoj veličini i zauzetom prostoru možete odrediti koji je uređaj vaš flash pogon, ali ovaj način pregledavanja Linux uređaja nije baš prikladan i radi samo s već montiranim flash pogonom; postoji još nekoliko koji pružaju točnije informacije.

Naredba lsblk prikazuje popis svih blok uređaja povezanih s vašim računalom. Uslužni program prikazuje ne samo njihovu veličinu, već i njihovu vrstu (disk/particija), kao i glavne i sporedne brojeve uređaja. Ovdje je malo lakše pronaći flash pogon, vidimo dva diska, a ako je prvi s veličinom od 698 gigabajta tvrdi disk, onda je drugi definitivno flash pogon:

Postoji još jedan način, ovo je uslužni program fdisk. Omogućuje vam pregled tablice particija na svim blok uređajima spojenim na računalo. Ali uslužni program mora se izvršiti kao superkorisnik:

Također možete saznati više o spojenom USB uređaju gledajući red poruka jezgre dmesg. Ovdje se pohranjuju informacije o svim operacijama koje se odvijaju u kernelu. Ovdje će se prikazati naziv flash pogona koji je upravo povezan s računalom. Za pregled kernel poruka, pokrenite:

Kako biste vidjeli koji su SD uređaji USB, upotrijebite sljedeću naredbu:

ls -l /dev/disk/by-id/usb*

USB podrška je uključena u kernel od verzije 2.2.7 i možemo reći da je ova tehnologija već testirana i ne bi trebalo biti problema prilikom povezivanja ovakvih uređaja. Samo trebate spojiti kameru, flash pogon, pisač ili bilo koji drugi uređaj i automatski će se prepoznati. Hoće li pisač raditi, primjerice, ovisi o dostupnosti upravljačkih programa.

Kako bismo mogli procijeniti situaciju, pogledajmo kako je implementirana podrška za USB i gdje tražiti informacije o povezanim uređajima, iako sve rečeno djelomično vrijedi i za USB. Implementacija USB podrške u Linuxu Linux USB Projekt (www.linux-usb.org) je mjesto gdje biste trebali potražiti informacije. U današnjim računalima možete pronaći tri vrste kontrolera, koji se razlikuju po sučelju za interakciju s uređajima. To su OHCI (Open Host Controller Interface), UHCI (Universal Host Controller Interface) i EHCI (Enhanced Host Controller Interface). Prva dva podržavaju USB verziju 1.1, a posljednja 2.0 omogućuje brzine prijenosa do 480 Mbit/s. UHCI kontroleri su nešto jednostavniji i jeftiniji, ali zahtijevaju složene upravljačke programe i više opterećuju procesor. Pronalaženje vrste kontrolera i dalje je vrlo jednostavno:

$lspci -v
00:02.0 USB kontroler: nVidia Corporation MCP55 USB kontroler (rev a1) (prog-if 10)

Oznake: master sabirnice, 66MHz, brzo razvijanje, latencija 0, IRQ 11
Memorija na fe02f000 (32-bitna, bez mogućnosti prethodnog dohvaćanja)
Mogućnosti:

00:02.1 USB kontroler: nVidia Corporation MCP55 USB kontroler (rev a2) (prog-if 20)
Podsustav: Biostar Microtech Int'l Corp Nepoznati uređaj 3405
Oznake: master sabirnice, 66MHz, brzo razvijanje, latencija 0, IRQ 5
Memorija na fe02e000 (32-bitna, bez mogućnosti prethodnog dohvaćanja)
Mogućnosti:

Kao što vidite, imam obje vrste kontrolera: OHCI i EHCI. Ako koristite kernel koji ste sami sklopili, omogućite potrebni upravljački program u stavci "Upravljački programi za USB host kontroler". Neću vas opterećivati ​​svim opcijama, sve parametre koji su dostupni u kernelu možete pogledati upisivanjem “cat /usr/src/linux/.config | grep -i usb".

Također treba imati na umu da se rad s USB-om odvija SCSI emulacijom, tako da morate aktivirati parametre koji se odnose na SCSI podršku.
Za izravan rad s USB uređajima stvara se direktorij /proc/bus/usb u virtualnom datotečnom sustavu /proc, koji se montira putem /etc/fstab:

ništa /proc/bus/usb usbfs noauto 0 0
Ako u vašoj datoteci nema takve linije, to može značiti da su vas programeri spasili od nepotrebnih misli i montiraju usbfs u skripte za pokretanje. U kojoj konkretno skripti se to radi, saznat ćete unosom “ sudo grep -iR "usbfs" /etc/*". Na primjer, u KUbuntu skripta je odgovorna za montiranje USB-a /etc/init.d/mountdevsubfs.sh. Datotečni sustav za USB možete ručno montirati na /proc/bus/usb ovako:

$ sudo mount -t usbdevfs ništa /proc/bus/usb

Nakon toga naredba " montirati | grep usbfs" treba pokazati prisutnost linije:

procbususb na /proc/bus/usb tip usbfs (rw)

I zaključak" lsmod» učitani moduli usbcore, upravljački modul ohci_hcd, ehci_hcd, uhci_hcs, kao i modul koji odgovara upravljačkom programu povezanog uređaja poput skener.o, pisač.o, usb_storage.
Informacije o povezivanju USB uređaja možete dobiti od /var/log/dmesg i to izravno iz /proc. Ako imenik /proc/bus/usb prazno znači da USB virtualni datotečni sustav nije montiran. Unutar direktorija treba biti nekoliko datoteka s nazivima poput 001, 002 prema broju kontrolera i datoteka uređaja koja "zna" za sve uređaje:

$ cat /proc/bus/usb/uređaji

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh=10
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub) Sub=00 Prot=01 MxPS=64 #Cfgs= 1

S: Proizvođač=Linux 2.6.20-15-generički ehci_hcd
S: Proizvod=Host kontroler EHCI
S: Serijski Broj=0000:00:02.1


E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh=10
B: Alloc= 0/900 us (0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Dobavljač=0000 ProdID=0000 Rev= 2.06
S: Proizvođač=Linux 2.6.20-15-generički ohci_hcd
S: Proizvod=OHCI Host Controller
S: Serijski Broj=0000:00:02.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms

T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Dobavljač=1307 ProdID=0163 Rev= 1,00
S: Proizvođač=????????y
S: Proizvod=USB uređaj za masovnu pohranu
S: Serijski Broj=9fe1ad57805553
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 80mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=16ms

Lako je dešifrirati izlaz, potražite detalje u dokumentaciji ( /usr/src//Documentation/usb/proc_usb_info.txt). Samo da kažem da pismo T označava topologiju, Autobus I Razina pokazati na koju je sabirnicu uređaj spojen i razinu, Spd pokazuje brzinu, MxCh- koliko se drugih uređaja može spojiti na njega, Vozač- vozač. Na primjer, Driver=hub pokazuje da je ovo čvorište, a Driver=usb-storage je USB uređaj za pohranjivanje informacija.
U KUbuntu repozitoriju možete pronaći nekoliko uslužnih programa koji će vam pomoći razumjeti USB. Dakle, korištenjem lsusb-a dobit ćete još više informacija o USB uređajima, a ako vam se ne sviđa konzola, koristite usbview.

To je u biti sve što sam htio reći o spajanju vrućih uređaja na računalo s Linuxom, nadam se da od danas više nećete imati problema s tim.




Kao dio mog poniranja u jednu od disciplina (tijekom studija na specijalnosti Compeza), radio sam na jednom zanimljivom projektu koji ne bih želio jednostavno zakopati u dubini mape “Univer” na vanjskom hardu. voziti.

Ovaj projekt se zove usbrip i mali je konzolni uslužni program otvorenog koda za forenziku Linuxa, naime za rad s poviješću povezivanja USB uređaja. Program je napisan u čistom Python 3 (koristeći neke module trećih strana) i ne zahtijeva ovisnosti osim tumača Python 3.x i nekoliko redaka iz zahtjevi.txt, riješeno u jednom retku pomoću pip3.

U ovom ću postu opisati neke od mogućnosti ovog softvera i ostaviti kratki priručnik s vezom na izvor preuzimanja.

Izrezati! (...Mislim Cut!)

Snimke zaslona

Dohvaćanje povijesti povezivanja izmjenjivih USB uređaja:


traži dodatne informacije o USB uređaju prema identifikatoru modela (PID):

Opis

Kao što je poznato, OS Sustavi temeljeni na GNU/Linuxu vrlo su osjetljivi na bilježenje raznih vrsta događaja, a spajanje/isključivanje USB uređaja nije iznimka. U kombinaciji s jednim od "tekstualnih tokova kao univerzalnih sučelja" filozofije UNIX-a, informacije o artefaktima takvih događaja (u različitim stupnjevima detalja) ovisno o distribuciji mogu se pronaći u jednoj ili više sljedećih datoteka:
  • /var/log/kern.log* ;
  • /var/log/syslog* ;
  • /var/log/messages* ;
  • /var/log/dmesg* ;
  • /var/log/daemon.log* .
FORENZIČKI DOKAZ nam čak pokazuje ovu sliku o ovom pitanju (malo nepotpunu, ali nema veze):

Usbrip za svoj rad pronalazi univerzalne za sve verzije Linuxa temeljene na Debianu (Ubuntu, Linux Mint itd.) i RPM (CentOS, Fedora, openSUSE itd.), log datoteke, naime: /var/log/syslog* ili /var/log/messages*, analizira ih u potrazi za potrebne informacije i transformira pronađene tragove povezivanja USB uređaja u prekrasne pločice (ili popise - što god želite).

USBrip također može:

  • kreirati popise ovlaštenih (pouzdanih) uređaja u obliku JSON datoteka;
  • traženje "uvredljivih događaja" na temelju popisa pouzdanih uređaja: događaji (USB veza/prekid veze) koji uključuju USB uređaje koji nisu označeni kao pouzdani;
  • potražite dodatne informacije o USB uređaju prema njegovom VID-u (ID dobavljača) i/ili PID-u (ID proizvoda).

Referenca

Dobijte popis dostupnih modula:

$ python3 usbrip.py -h
Dobijte popis dostupnih podmodula za određeni modul:

$python3 usbrip.py<модуль>-h
Dobijte popis dostupnih opcija za određeni podmodul:

$python3 usbrip.py<модуль> <подмодуль>-h

Sintaksa

$ python3 usbrip.py banner $ python3 usbrip.py povijest događaja [-q] [-t | -l] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-c KOLON [KOLON...]] [-f DNEVNIK [DNEVNIK...]] $ python3 usbrip .py događaji gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-q] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-f LOG FILE [LOG FILE...]] $ python3 usbrip.py kršenja događaja<ВХОДНОЙ_ФАЙЛ.JSON>[-q] [-t | -l] [-e] [-n BROJ DOGAĐAJA] [-d DATUM [DATUM...]] [-c KOLON [KOLON...]] [-f DNEVNIK [DNEVNIK...]] $ python3 usbrip .py ids pretraživanje [-q] [--vid VID] [--pid PID] [--offline] $ python3 usbrip.py ids preuzimanje [-q]

Mogućnosti

Opcije koje podržavaju podmoduli "povijest događaja", "događaji gen_auth", "kršenja događaja", "pretraživanje idova", "preuzimanje idova": -q, --quiet izostaviti prikaz bannera, informativnih (zelenih) poruka i učiniti ne postavljati pitanja tijekom izvršenja ############################################### ## ######################################### Opcije koje podržava "povijest događaja", " događaji gen_auth" podmoduli ", "kršenja događaja": -e, --eksterna pretraga samo za prijenosne USB uređaje (koji imaju informacije o odspajanju) -n BROJ DOGAĐAJA, --broj BROJ DOGAĐAJA broj najnovijih događaja po datumu koji će biti prikazan -d DATUM [DATUM. ..], --date DATUM [DATUM...] popis datuma prema kojima će se događaji filtrirati prilikom pretraživanja -f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE. ..] popis datoteka dnevnika (ako nije navedeno, povijest događaja će se pretraživati ​​pomoću zadanih datoteka dnevnika: /var/log/syslog* ili /var/log/messages* ovisno o verziji OS-a) ##### ######## ############################################ ######## ####################### Opcije koje podržavaju podmoduli "povijest događaja", "kršenja događaja": -t, -- tablica generirati izlaz u obliku tablice (ako veličina prozora terminala nije dovoljna za ispravan prikaz tablice, izlaz će se automatski generirati u obliku liste; kada navedete zastavu -t, izlaz će se prisilno generirati u obliku tablice) -l, --list generirati izlaz kao popis -c STUPAC [STUPAC...], --stupac STUPAC [STUPAC.. .] popis stupaca koji će se koristiti pri izgradnji tablice (ima učinka samo pri generiranju izlaza u obliku tablice); dozvoljeni ključevi: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ##################################################### ##################################### Opcije podržane podmodulima "ids search", "ids download": - -vid VID ID dobavljača ili ID proizvođača USB uređaja (obično 4 heksadecimalne znamenke) --vid PID ID proizvoda ili ID modela USB uređaja (obično 4 heksadecimalne znamenke) --offline ako je navedeno, potražite dodatne informacije o USB uređaju u bazi podataka podaci identifikatora bit će proizvedeni bez prethodnog ažuriranja (baze podataka)

Primjeri korištenja

Prikaži povijest povezivanja svih USB uređaja, izostavljajući banner, informativne (zelene) poruke, a također i bez postavljanja pitanja tijekom izvođenja (-q, --quite), generirajući izlaz u obliku popisa (-l, -- popis), uključujući u njemu sadrži 100 posljednjih pronađenih događaja (-n BROJ DOGAĐAJA, --broj BROJ DOGAĐAJA):
$ python3 usbrip.py povijest događaja -ql -n 100
Prikaži povijest povezivanja izmjenjivih USB uređaja (-e, --external), generirajući izlaz u obliku tablice s poljima (stupcima) "Povezano", "VID", "PID", "Isključeno" i "Serijski broj" ” (-c KOLUMNA [KOLUMNA...], --column KOLUMNA [KOLUMNA...]), filtriranje pretraživanja po datumima (-d DATUM [DATUM...], --date DATUM [DATUM...] ), uzimajući informacije iz vanjskih datoteka dnevnika (-f LOG_FILE [LOG_FILE...], --file LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py povijest događaja -et -c conn vid pid disconn serial -d "9. prosinca" "10. prosinca" -f /var/log/syslog.1 /var/log/syslog.2.gz
Izgradite tablicu povijesti povezivanja svih USB uređaja i preusmjerite izlaz u datoteku za daljnju analizu. U slučaju da izlazni tok nije standardni stdout ("|" ili ">" na primjer), posebni neće biti prisutni u izlaznim podacima. znakovi odgovorni za boju fonta u terminalu, tako tekstualna datoteka neće biti prepun nečitljivih znakova. Također treba napomenuti da usbrip koristi neke UNICODE konstante, pa bi bilo dobro odmah pretvoriti kodiranje kreirane datoteke u UTF-8 kako bi se ispravno prikazale (na primjer, pomoću encov), a također koristiti Windows stil znakovi za novi red za bolju prenosivost (na primjer pomoću awk):
$ python3 usbrip.py događaji povijesti -t | awk "( sub("$", "\r"); print )" > usbrip.txt && enconv -x UTF8 usbrip.txt
Bilješka: osloboditi se posebnih znakovi odgovorni za boju također su mogući ako je izlaz već poslan na stdout. Da biste to učinili, morate kopirati primljene podatke u novu datoteku usbrip.txt i dodati još jednu awk instrukciju:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); print )" usbrip.txt && enconv -x UTF8 usbrip.txt
Napravite popis pouzdanih uređaja u obliku JSON datoteke (trusted/auth.json) koja sadrži prvi tri uređaji povezani 26. rujna:
$ python3 usbrip.py događaji gen_auth trusted/auth.json -n 3 -d "26. rujna"
Potražite "događaje koji krše" u povijesti povezivanja izmjenjivih USB uređaja na temelju popisa pouzdanih uređaja (trusted/auth.json) i generirajte izlaz u obliku tablice s "Povezano", "VID" i "PID ” polja:
$ python3 usbrip.py kršenja događaja trusted/auth.json -et -c conn vid pid
Pronalaženje dodatnih informacija o USB uređaju na temelju njegovog VID-a i PID-a:
$ python3 usbrip.py ids search --vid 0781 --pid 5580
Preuzmite/ažurirajte bazu podataka ID-a USB uređaja (izvor

Kao dio mog poniranja u jednu od disciplina (tijekom studija na specijalnosti Compeza), radio sam na jednom zanimljivom projektu koji ne bih želio jednostavno zakopati u dubini mape “Univer” na vanjskom hardu. voziti.

Ovaj projekt se zove

usbrip

i mali je konzolni uslužni program otvorenog koda za forenziku Linuxa, naime za rad s poviješću povezivanja USB uređaja. Program je napisan u čistom Python 3 (koristeći neke module trećih strana) i ne zahtijeva ovisnosti osim tumača Python 3.x i nekoliko redaka iz

zahtjevi.txt

Riješeno u jednom retku pomoću pip3.

U ovom ću postu opisati neke od mogućnosti ovog softvera i ostaviti kratki priručnik s vezom na izvor preuzimanja.

$ python3 usbrip.py ids preuzimanje

Linkovi i postscript

Uslužni program možete dobiti od

GitHub

Sve ovisnosti za pokretanje i ispravan rad naznačeno u

zahtjevi.txt

Hvala na pažnji!

p.s.

da, stil natpisa i informativne poruke inspiriran projektom

sqlmap

USB - Universal Serial Bus razvio je konzorcij tvrtki s ciljem pružanja jedne, jednostavne sabirnice za povezivanje perifernih uređaja.

USB dizajn omogućuje povezivanje uređaja u hodu koristeći standardne priključke za povezivanje. USB uređaji uključuju: tipkovnice, miševe, pisače, skenere, tvrde diskove, flash pogone, kamere, modeme, mrežni adapteri i kolumne, a njihov popis stalno raste.

Linux podrška za USB uređaje prilično je sveobuhvatna, ali neki uređaji zahtijevaju posebne upravljačke programe, a drugi, uglavnom pisači i skeneri, možda neće biti podržani ili će biti samo djelomično podržani.

Računalni sustavi mogu sadržavati jedan ili više kontrolera ili čvorišta dizajniranih za USB veze uređaja ili drugog (vanjskog) čvorišta. Hub može podržati do 7 uređaja, koji zauzvrat mogu imati dodatne hubove. Hub unutra jedinica sustava zvano korijensko središte. Svaka zvjezdasta topologija može podržati do 127 čvorišta ili uređaja.

govoreći USB priključak, mislimo na mogućnost podržavanja USB-a u računalu i utičnicu za povezivanje, ne interna adresa priključak koji koristi uređaj.

Višeslojnost USB sustavi Omogućuje glavnom računalu da odredi karakteristike USB uređaja, uključujući klasu, naziv proizvođača, naziv uređaja, zahtjeve napona, brzinu, razinu podrške za USB i druge značajke.

Linux USB modul za podršku uređaja

USB uređaji trenutno su u potpunosti podržani na Linuxu. Većina promjena se pojavila u ogranku kernela 2.6, iako je bilo neke podrške čak iu kernelima 2.2. Linux podržava i USB 2.0 i ranije specifikacije. Zbog hot-plug prirode USB-a, podrška se obično vrši putem modula kernela koji se po potrebi mogu učitati ili isprazniti.

Naredba lspci omogućuje vam prikaz USB uređaja:

Root@localhost:~:# lspci | grep -i usb 00:03.0 USB kontroler: Silicon Integrated Systems USB 1.1 kontroler (rev 0f) 00:03.1 USB kontroler: Silicon Integrated Systems USB 1.1 kontroler (rev 0f) 00:03.3 USB kontroler: Silicon Integrated Systems USB 2.0 kontroler

Izlaz naredbe pokazuje da u sustavu postoje 3 USB kontrolera.

Pomoću naredbe lsmod možete prikazati učitane USB module:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|mouse|Module" Veličina modula koju koristi hid_microsoft 3232 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41644 0 ssb 38464 1 ohci_hcd ehci_ h cd 34152 0

Prikaz spojenih USB uređaja

Sažetak trenutno povezanih USB uređaja nalazi se u datoteci /proc/bus/usb/devices. Možete ga prikazati sljedećom naredbom:

Root@localhost:~:# cat /proc/bus/usb/devices T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 B: Alloc= 0/900 us (0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Dobavljač=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 2.6.29.6 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=0000:00:03.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt = 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Vozač=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 B: Alloc= 28/900 us (3%), #Int= 2, #Iso= 0 D: Ver= 1.10 Cls=09( hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Proizvođač=Linux 2.6.29.6 ohci_hcd S: Proizvod=OHCI Host Controller S: SerialNumber=0000:00: 03.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad =81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=045e ProdID=00db Rev= 1.73 S: Manufacturer=Microsoft S: Product=Natural� Ergonomic Keyboard 4000 C:* #Ifs = 2 Cfg#= 1 Atr=a0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID) Sub=01 Prot=01 Driver=usbhid E: Ad=81(I) Atr =03(Int.) MxPS= 8 Ivl=10ms I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID) Sub=00 Prot=00 Driver=usbhid E: Ad=82(I) Atr =03(Int.) MxPS= 8 Ivl=10ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us (0% ), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Dobavljač=1d6b ProdID=0002 Rev= 2.06 S: Proizvođač= Linux 2.6.29.6 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:03.3 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs = 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

U popisu Spd=480 odgovara USB 2.0 sabirnici, a Spd=12 odgovara USB 1.1 uređajima. Dalje na popisu možete vidjeti da je trenutno 1 USB uređaj spojen na sustav - Microsoft Natural Ergonomic Keyboard 400 (Spd=1.5).

Naravno, ovaj tekst tipkam na ovoj tipkovnici.

Hijerarhija povezivanja USB uređaja može se vidjeti pomoću naredbe lsusb s opcijom -t:

Root@localhost:~:# lsusb -t Bus# 3 `-Dev# 1 Dobavljač 0x1d6b Proizvod 0x0001 Bus# 2 `-Dev# 1 Dobavljač 0x1d6b Proizvod 0x0001 `-Dev# 2 Dobavljač 0x045e Proizvod 0x00db Bus# 1 `-Dev# 1 Dobavljač 0x1d6b Proizvod 0x0002

Informacije o određenom USB uređaju mogu se dobiti sljedećom naredbom:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Bus 002 Uređaj 002: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0 Deskriptor uređaja: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Definirano na razini sučelja) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x045e Microsoft Corp. idProduct 0x00db Natural Ergonomic Keyboard 4000 V1.0 bcdDevice 1.73 iManufacturer 1 Microsoft iProduct 2 Natural Ergonomic Keyboard 4000 iSerial 0 bNumConfigurations 1 Deskriptor konfiguracije: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (napajanje sabirnice) Remote Wakeup MaxPower 100mA sučelje Deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Tipkovnica iInterface 0 ** NEPREPOZNATO: 09 21 11 01 00 01 22 3 c 00 Deskriptor krajnje točke: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 Nema podklase bInterfaceProtocol 0 Ništa iInterface 0 ** NEPREPOZNATO : 09 21 11 01 00 01 22 56 00 Deskriptor krajnje točke: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Tip prijenosa Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Status uređaja: 0 x0000 (napajanje autobusom)

Spajanje USB uređaja u hodu

Novi sustavi imaju podršku za spajanje USB uređaja u hodu (hot plugging), što znači povezivanje uređaja s pokrenutim sustavom koji mora:

  • odredite vrstu USB uređaja, pronađite upravljački program i pokrenite ga;
  • povezati vozača s uređajem;
  • obavijestiti druge podsustave o USB uređaju.


reci prijateljima
Vani je ljeto...