USB: erinevus redaktsioonide vahel
Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
(→Misc) |
|||
(ei näidata sama kasutaja 13 vahepealset redaktsiooni) | |||
9. rida: | 9. rida: | ||
* USB host interface controller tegeleb transpordiga (mitte translationiga nagu nt achi kontroller, mis tõlgib achi protokolli käigult sata protokolliks) |
* USB host interface controller tegeleb transpordiga (mitte translationiga nagu nt achi kontroller, mis tõlgib achi protokolli käigult sata protokolliks) |
||
* USB device controller |
* USB device controller |
||
+ | * USB composite device (nt Yubikey) |
||
Klassid |
Klassid |
||
30. rida: | 31. rida: | ||
* host controlleri ülesandeks on usb seadmete nimekirja koostamine, seadmete avastamine ja unustamine, adresserimine, nö liikluse ruutimine jms |
* host controlleri ülesandeks on usb seadmete nimekirja koostamine, seadmete avastamine ja unustamine, adresserimine, nö liikluse ruutimine jms |
||
− | ==== |
+ | ====storage==== |
TODO |
TODO |
||
49. rida: | 50. rida: | ||
* wifi kasutusjuhule on iseloomulik, et liikluse krüptimine toimub allpool ethernet kihti (erinevalt wired võrgust kus on kombeks kasutada nt ipsec protokolli kus toimub krüptimine ülevalpoolt ethernet kihti, nt esp/ah protokollidega) |
* wifi kasutusjuhule on iseloomulik, et liikluse krüptimine toimub allpool ethernet kihti (erinevalt wired võrgust kus on kombeks kasutada nt ipsec protokolli kus toimub krüptimine ülevalpoolt ethernet kihti, nt esp/ah protokollidega) |
||
* wifi võrgu puhul ei ole usb universaalne mõtlmine realiseeritud sellise põhimõttekindlusega nagu nt webcam puhul - st device kontrolleriga tegelevad pigem spetsiifilised draiverid |
* wifi võrgu puhul ei ole usb universaalne mõtlmine realiseeritud sellise põhimõttekindlusega nagu nt webcam puhul - st device kontrolleriga tegelevad pigem spetsiifilised draiverid |
||
+ | |||
+ | ====bluetooth network==== |
||
+ | |||
+ | Väited |
||
+ | |||
+ | * tavaliselt realiseeritakse bluetooth seade wifi seadmena kuna bluetooth kasutab suhteliselt väikest kiirust, nt läptop puhul |
||
+ | |||
+ | <pre> |
||
+ | root@ubu2110:~# lsusb -t |
||
+ | /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M |
||
+ | /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |
||
+ | |__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M |
||
+ | |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |
||
+ | |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M |
||
+ | |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M |
||
+ | |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M |
||
+ | ... |
||
+ | </pre> |
||
+ | |||
+ | kus |
||
+ | |||
+ | * dev 3 ja if 0 - control plane |
||
+ | * dev 3 ja if 1 - data plane |
||
+ | * 12M ja 480M väljendavad ühenduse kiirust |
||
+ | |||
+ | ====smart card==== |
||
+ | |||
+ | TODO |
||
+ | |||
+ | ====webcam==== |
||
+ | |||
+ | TODO |
||
+ | |||
+ | <pre> |
||
+ | root@ubu2110:~# lsusb -t |
||
+ | /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M |
||
+ | /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |
||
+ | |__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M |
||
+ | |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |
||
+ | |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M |
||
+ | |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M |
||
+ | |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M |
||
+ | ... |
||
+ | </pre> |
||
+ | |||
+ | kus |
||
+ | |||
+ | * dev 4 ja if 0 - control plane |
||
+ | * dev 4 ja if 1 - data plane |
||
+ | |||
+ | ====serial dongle==== |
||
+ | |||
+ | TODO |
||
+ | |||
+ | ====yubikey==== |
||
+ | |||
+ | TODO |
||
===Misc=== |
===Misc=== |
||
87. rida: | 145. rida: | ||
|__ Port 8: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M |
|__ Port 8: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M |
||
|__ Port 9: Dev 7, If 0, Class=Chip/SmartCard, Driver=usbfs, 12M |
|__ Port 9: Dev 7, If 0, Class=Chip/SmartCard, Driver=usbfs, 12M |
||
+ | |||
+ | root@ubu2110:~# usb-devices |
||
+ | |||
+ | T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh=16 |
||
+ | D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 |
||
+ | P: Vendor=1d6b ProdID=0002 Rev=05.15 |
||
+ | S: Manufacturer=Linux 5.15.0-140-generic xhci-hcd |
||
+ | S: Product=xHCI Host Controller |
||
+ | S: SerialNumber=0000:00:14.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= 4 Ivl=256ms |
||
+ | |||
+ | T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 0 |
||
+ | D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 2 |
||
+ | P: Vendor=0bda ProdID=8152 Rev=20.00 |
||
+ | S: Manufacturer=Realtek |
||
+ | S: Product=USB 10/100 LAN |
||
+ | S: SerialNumber=00E04C31A33D |
||
+ | C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA |
||
+ | I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=00 Driver=r8152 |
||
+ | E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
||
+ | E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
||
+ | E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=16ms |
||
+ | |||
+ | T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 8 |
||
+ | D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 |
||
+ | P: Vendor=1d6b ProdID=0003 Rev=05.15 |
||
+ | S: Manufacturer=Linux 5.15.0-140-generic xhci-hcd |
||
+ | S: Product=xHCI Host Controller |
||
+ | S: SerialNumber=0000:00:14.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= 4 Ivl=256ms |
||
</pre> |
</pre> |
||
+ | |||
+ | ===USB liikluse debugimine=== |
||
+ | |||
+ | TODO |
||
+ | |||
+ | # modprobe usbmon |
||
+ | |||
+ | # ls /sys/kernel/debug/usb/usbmon/ |
||
+ | |||
+ | # tcpdump -D |
||
+ | ... |
||
+ | |||
+ | $ wireshark |
||
+ | |||
+ | TODO |
||
===Kasulikud lisamaterjalid=== |
===Kasulikud lisamaterjalid=== |
Viimane redaktsioon: 21. september 2025, kell 17:29
Sissejuhatus
TODO
Tööpõhimõte
Väited
- USB host interface controller tegeleb transpordiga (mitte translationiga nagu nt achi kontroller, mis tõlgib achi protokolli käigult sata protokolliks)
- USB device controller
- USB composite device (nt Yubikey)
Klassid
- andmesalvestus (storage) - MSC (Mass Storage Class)
- serial port dongle - ACM (Abstract Control Model)
- klaviatuur, hiir - HID (Human Interface Device Class)
- wired network - NCM (Network Control Model)
- wifi network - WCC (Wireless Controller Class)
- bluetooth network - WCC (Wireless Controller Class)
- smart card - CCID (Chip Card Interface Class)
- webcam - UVC (Video Class)
Kusjuures CDC on ülemklass, mille alla kuuluvad WCC, NCM ja ACM. CDC alla otse ei kuulu seadmeid.
Üldiselt toimub CPU ja seadme vaheline suhtlemine kahe kihiliselt
- cpu ja 'host controller interface' vahel toimub hci protokolli abil suhtlemine
- cpu ja 'device controller interface' vahel toimub spetsiifilise protokolli abil suhtlemine (nt usb-storage puhul msc)
- hci protokolli sisse on kapseldatud msc protokolli liiklus
- host controlleri ülesandeks on usb seadmete nimekirja koostamine, seadmete avastamine ja unustamine, adresserimine, nö liikluse ruutimine jms
storage
TODO
klaviatuur ja hiir
TODO
wired network
TODO
wifi network
Väited
- tavaliselt ei realiseerita wifi seadet usb seadmena kuna wifi kasutab suhteliselt suurt kiirust, nt läptop integreeritud wifi seade on pigem pcie seade
- wifi kasutusjuhule on iseloomulik, et liikluse krüptimine toimub allpool ethernet kihti (erinevalt wired võrgust kus on kombeks kasutada nt ipsec protokolli kus toimub krüptimine ülevalpoolt ethernet kihti, nt esp/ah protokollidega)
- wifi võrgu puhul ei ole usb universaalne mõtlmine realiseeritud sellise põhimõttekindlusega nagu nt webcam puhul - st device kontrolleriga tegelevad pigem spetsiifilised draiverid
bluetooth network
Väited
- tavaliselt realiseeritakse bluetooth seade wifi seadmena kuna bluetooth kasutab suhteliselt väikest kiirust, nt läptop puhul
root@ubu2110:~# lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M ...
kus
- dev 3 ja if 0 - control plane
- dev 3 ja if 1 - data plane
- 12M ja 480M väljendavad ühenduse kiirust
smart card
TODO
webcam
TODO
root@ubu2110:~# lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M ...
kus
- dev 4 ja if 0 - control plane
- dev 4 ja if 1 - data plane
serial dongle
TODO
yubikey
TODO
Misc
Peale arvutis usb osakonna nö väljalülitamist
root@ubu2110:~# lsusb -t root@ubu2110:~# usb-devices root@ubu2110:~# lsmod | grep usb root@ubu2110:~#
Tagasi laadimine, nt
root@ubu2110:~# modprobe xhci_pci root@ubu2110:~# lsmod | grep usb usbnet 53248 1 cdc_ether usbhid 65536 0 btusb 61440 0 btrtl 24576 1 btusb hid 151552 2 usbhid,hid_generic mii 16384 2 usbnet,r8152 btbcm 24576 1 btusb btintel 40960 1 btusb bluetooth 671744 43 btrtl,btintel,btbcm,bnep,btusb,rfcomm root@ubu2110:~# lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 480M |__ Port 4: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 6: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 12M |__ Port 7: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 7: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 8: Dev 6, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 8: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 9: Dev 7, If 0, Class=Chip/SmartCard, Driver=usbfs, 12M root@ubu2110:~# usb-devices T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh=16 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev=05.15 S: Manufacturer=Linux 5.15.0-140-generic xhci-hcd S: Product=xHCI Host Controller S: SerialNumber=0000:00:14.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= 4 Ivl=256ms T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 0 D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 2 P: Vendor=0bda ProdID=8152 Rev=20.00 S: Manufacturer=Realtek S: Product=USB 10/100 LAN S: SerialNumber=00E04C31A33D C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=00 Driver=r8152 E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=16ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 8 D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 P: Vendor=1d6b ProdID=0003 Rev=05.15 S: Manufacturer=Linux 5.15.0-140-generic xhci-hcd S: Product=xHCI Host Controller S: SerialNumber=0000:00:14.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= 4 Ivl=256ms
USB liikluse debugimine
TODO
# modprobe usbmon
# ls /sys/kernel/debug/usb/usbmon/
# tcpdump -D ...
$ wireshark
TODO
Kasulikud lisamaterjalid
- TODO