uy - Qayta tiklash
USB qurilmalarining ulanish tarixini kuzatish shaklida Linux sud ekspertizasi. USB qurilmalarining ulanish tarixini kuzatish shaklida Linux sud-tibbiyoti Ulangan usb linux qurilmalari

USB - universal seriyali avtobus seriyali avtobus) tashqi qurilmalarni ulash uchun yagona oddiy avtobusni taqdim etish maqsadida kompaniyalar konsorsiumi tomonidan ishlab chiqilgan.

USB dizayni ulanish uchun standart uyalar yordamida qurilmalarga tezda ulanish imkonini beradi. USB qurilmalariga quyidagilar kiradi: klaviaturalar, sichqonchalar, printerlar, skanerlar, qattiq disklar, flesh-disklar, kameralar, modemlar, tarmoq adapterlari va ustunlar va ularning ro'yxati doimiy ravishda o'sib bormoqda.

USB qurilmalari uchun Linuxni qo'llab-quvvatlash juda keng qamrovli, ammo ba'zi qurilmalar maxsus drayverlarni talab qiladi, boshqalari, asosan, printerlar va skanerlar qo'llab-quvvatlanmasligi yoki qisman qo'llab-quvvatlanishi mumkin.

Kompyuter tizimlari USB qurilmalarini yoki boshqa (tashqi) markazni ulash uchun mo'ljallangan bir yoki bir nechta kontrollerlar yoki markazlarni o'z ichiga olishi mumkin. Hub 7 tagacha qurilmani qo'llab-quvvatlashi mumkin, bu esa o'z navbatida qo'shimcha markazlarga ega bo'lishi mumkin. Ichkarida markaz tizim birligi ildiz markazi deb ataladi. Har bir yulduz topologiyasi 127 tagacha markaz yoki qurilmalarni qo'llab-quvvatlashi mumkin.

USB port deganda, biz qurilma ishlatadigan ichki port manzilini emas, balki kompyuterning USB-quvvatlashini va ulanish portini nazarda tutamiz.

USB tizimining qatlamlari xostga USB qurilmasining xususiyatlarini, jumladan sinfi, ishlab chiqaruvchisi nomi, qurilma nomi, kuchlanish talablari, tezlik, USB qo'llab-quvvatlash darajasi va boshqa funktsiyalarni aniqlash imkonini beradi.

Linux USB qurilmalarini qo'llab-quvvatlash moduli

USB qurilmalari hozirda Linuxda to'liq qo'llab-quvvatlanadi. O'zgarishlarning aksariyati 2,6 yadro filialida paydo bo'ldi, garchi hatto 2,2 yadrolarida ham bir oz qo'llab-quvvatlangan bo'lsa-da. Linux ham USB 2.0, ham oldingi xususiyatlarni qo'llab-quvvatlaydi. USB-ning issiq ulanish xususiyati tufayli, qo'llab-quvvatlash odatda kerak bo'lganda yuklanishi yoki tushirilishi mumkin bo'lgan yadro modullari orqali amalga oshiriladi.

Lspci buyrug'i USB qurilmalarini ko'rsatishga imkon beradi:

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

Buyruqning chiqishi tizimda 3 ta USB kontrollerlari mavjudligini ko'rsatadi.

Lsmod buyrug'i yordamida yuklangan USB modullarini ko'rsatishingiz mumkin:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|sichqoncha|Moduli" moduli oʻlchami hid_microsoft 3232 tomonidan qoʻllaniladi 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41644 _4hccih _4hcss d 34152 0

Ulangan USB qurilmalari ko'rsatilmoqda

Hozirda ulangan USB qurilmalarining qisqacha tavsifi /proc/bus/usb/devices faylida mavjud. Siz uni quyidagi buyruq bilan ko'rsatishingiz mumkin:

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: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Ishlab chiqaruvchi=Linux 2.6.29.6 ohci_hcd S: Mahsulot=OHCI Xost Controller S: SerialNumber=0000:00:03.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 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=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: Ishlab chiqaruvchi=Linux 2.6.29.6 ohci_hcd S: Mahsulot=OHCI Host Controller S: SerialNumber0:0: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: Sotuvchi=045e ProdID=00db Rev= 1.73 S: Ishlab chiqaruvchi=Microsoft S: Mahsulot=Natural� Ergonomik klaviatura 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: Sotuvchi=1d6b ProdID=0002 Rev= 2.06 S: Ishlab chiqaruvchi= Linux 2.6.29.6 ehci_hcd S: Mahsulot=EHCI Xost 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

Ro'yxatda Spd=480 mos keladi USB avtobus 2.0 va Spd=12 - USB 1.1 qurilmalari uchun. Keyinchalik ro'yxatda siz hozirda tizimga 1 ta USB qurilmasi ulanganligini ko'rishingiz mumkin - Microsoft Natural Ergonomic Keyboard 400 (Spd=1,5).

Tabiiyki, men ushbu matnni ushbu klaviaturada yozaman.

USB qurilma ulanishlarining ierarxiyasini -t opsiyasi bilan lsusb buyrug'i yordamida ko'rish mumkin:

Root@localhost:~:# lsusb -t Bus# 3 `-Dev# 1 Vendor 0x1d6b Product 0x0001 Bus# 2 `-Dev# 1 Vendor 0x1d6b Product 0x0001 `-Dev# 2 Vendor 0x045e Product #1d6b Product 0x045e Product #1d6b 1 ta sotuvchi 0x1d6b mahsulot 0x0002

Muayyan USB qurilmasi haqidagi ma'lumotni quyidagi buyruq bilan olish mumkin:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Avtobus 002 Device 002: ID 045e:00db Microsoft Corp. Tabiiy ergonomik klaviatura 4000 V1.0 Qurilma deskriptori: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Interfeys darajasida belgilangan) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 id Microsoft Corporate id. idProduct 0x00db tabiiy ergonomik klaviatura 4000 V1.0 bcdDevice 1.73 iManufacturer 1 Microsoft iProduct 2 Natural ergonomik klaviatura 4000 iSerial 0 bNumKonfiguratsiyalar 1 Konfiguratsiya deskriptori: bLength 9 bNum29T bLength ConfigurationV alue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Masofadan uyg'otish MaxPower 100mA Interfeys identifikatori: bLength 9 bDescriptorType 4 bInterfeysNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClassClass Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol **REIZGCOInterfaceProtocol **RE02Keyboard 1 11 01 00 01 22 3c 00 Yakuniy nuqta tavsifi yoki: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAtributlari 3 O‘tkazish turi uzilish Sinxronlash turi Yo‘q Foydalanish turi Ma’lumotlar wMaxPacketSize 0x0008 1x 8 bayt bInterval 10 Interfeys identifikatori: bUzunlik 9 bDeskriptorType 4 bInterfeysNumber 1 bEnterfeys o‘rnatish1C bAltervallar Inson interfeysi qurilmasi bInterfaceSubClass 0 Subclass yo'q bInterfaceProto col 0 Yo'q iInterface 0 ** TANIB ETMAGAN: 09 21 11 01 00 01 22 56 00 Yakuniy nuqta deskriptori: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAtributlari 3 O‘tkazish turi uzilishlar Sinxronizatsiya turi Ma’lumotlar turi S01x by S08x bInterval 10 Qurilma holati: 0x0000 (avtobus bilan quvvatlanadi )

Tezda USB qurilmasini ulash

Yangi tizimlar USB qurilmalarini tezda ulashni qo'llab-quvvatlaydi (hot plugging), bu qurilmani ishlaydigan tizimga ulashni anglatadi, buning uchun:

  • USB qurilmasining turini aniqlang, drayverni toping va uni ishga tushiring;
  • drayverni qurilma bilan bog'lash;
  • USB qurilmasi haqida boshqa quyi tizimlarga xabar bering.

Fanlardan biriga kirishimning bir qismi sifatida (kompyuter xavfsizligi ixtisosligi bo'yicha o'qiyotganda) men tashqi qattiq diskdagi "Univer" papkasining chuqurligiga shunchaki ko'mishni istamaydigan bitta qiziqarli loyiha ustida ishladim.

Ushbu loyiha deyiladi usbrip va Linux sud ekspertizasi uchun kichik ochiq kodli konsol yordam dasturi, ya'ni USB qurilmalar ulanishlari tarixi bilan ishlash uchun. Dastur sof Python 3 da (ba'zi uchinchi tomon modullaridan foydalangan holda) yozilgan va Python 3.x tarjimonidan boshqa bog'liqliklar va bir nechta qatorlarni talab qilmaydi. talablar.txt, pip yordamida bir qatorda hal qilingan.

Ushbu postda men ushbu dasturiy ta'minotning ba'zi imkoniyatlarini tasvirlab beraman va yuklab olish manbasiga havola bilan qisqa qo'llanma qoldiraman.

Kes! (...Men Kesishni nazarda tutyapman!)

Eslatma. Maqolada tasvirlangan funksionallik yordam dasturining versiyasiga tegishli. Orqada oxirgi versiya Ko'plab yangi sovg'alar bilan men omborga borishni taklif qilaman.

Skrinshotlar

Olinadigan USB qurilmalarining ulanish tarixini olish:


Model identifikatori (PID) bo'yicha USB qurilmasi haqida qo'shimcha ma'lumotni topish:

Tavsif

Ma'lumki, GNU/Linux-ga asoslangan operatsion tizimlar turli xil hodisalarni ro'yxatga olish uchun juda sezgir va USB qurilmalarini ulash/o'chirish bundan mustasno emas. UNIX falsafasining "universal interfeyslar sifatidagi matn oqimlari" biri bilan birlashganda, bunday hodisalarning artefaktlari haqidagi ma'lumotlarni (turli darajadagi tafsilotlarda) taqsimlanishiga qarab quyidagi matnli fayllarning bir yoki bir nechtasida topish mumkin:
  • /var/log/kern.log*;
  • /var/log/syslog*;
  • /var/log/messages*;
  • /var/log/dmesg*;
  • /var/log/daemon.log*.
SUNIY-ISHLAB CHIQISH hatto bizga ushbu masala bo'yicha ushbu rasmni ham ko'rsatadi (bir oz to'liq emas, lekin muhim emas):

O'z ishi uchun usbrip Debian (Ubuntu, Linux Mint va boshqalar) va RPM (CentOS, Fedora, openSUSE va boshqalar) asosidagi barcha Linux tuzilmalari uchun universal bo'lgan jurnal fayllarini topadi, xususan: /var/log/syslog* yoki /var/log/messages* , ularni qidirib tahlil qiladi zarur ma'lumotlar va USB qurilma ulanishlarining topilgan izlarini chiroyli plitalarga (yoki ro'yxatlarga - xohlaganingizcha) aylantiradi.

USBrip shuningdek:

  • JSON fayllari ko'rinishida ruxsat etilgan (ishonchli) qurilmalar ro'yxatini yaratish;
  • ishonchli qurilmalar ro'yxati asosida "haqoratli hodisalar" ni qidiring: ishonchli deb belgilanmagan USB qurilmalari bilan bog'liq hodisalar (USB ulanish/ajralish);
  • qidirmoq Qo'shimcha ma'lumot VID (Vendor ID) va/yoki PID (Mahsulot identifikatori) bo'yicha USB qurilmasi haqida.

Malumot

Mavjud modullar ro'yxatini oling:

$ python3 usbrip.py -h
Muayyan modul uchun mavjud submodullar ro'yxatini oling:

$python3 usbrip.py<модуль>-h
Muayyan submodul uchun mavjud variantlar ro'yxatini oling:

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

Sintaksis

$ python3 usbrip.py banneri Utilit bannerini ekranda ko'rsatadi. $ python3 usbrip.py voqealar tarixi [-q] [-t | -l] [-e] [-n VOQEALAR SONI] [-d DATE [SANA...]] [-c USTUN [USTUN...]] [-f LOGFILE [LOGFILE...]] USB ulanishini ko‘rish tarix. $ python3 usbrip.py voqealari gen_auth<ВЫХОДНОЙ_ФАЙЛ.JSON>[-a BELGI [SIGN...]] [-q] [-e] [-n NUMBER_VOQEA] [-d DATE [DATE...]] [-f LOG_FILE [LOG_FILE...]] Roʻyxatni shakllantirish vakolatli (ishonchli) USB qurilmalari. $ python3 usbrip.py hodisalari buzilishi<ВХОДНОЙ_ФАЙЛ.JSON>[-a XARAKTER [ZARJ...]] [-q] [-t | -l] [-e] [-n VOQEALAR SONI] [-d DATE [SANA...]] [-c USTUN [USTUN...]] [-f LOGFILE [LOGFILE...]] Qidiruv "" ishonchli qurilmalar ro'yxatiga asoslangan "" xafagarchilik hodisalari. $ python3 usbrip.py identifikatorlarini qidirish [-q] [ --vid VID] [--pid PID] [--offline] Identifikator maʼlumotlar bazasida VID va/yoki PID boʻyicha qurilma haqida qoʻshimcha maʼlumotlarni qidiring. $ python3 usbrip.py identifikatorlarini yuklab oling [-q] Mahalliy USB qurilma identifikatori ma'lumotlar bazasini yangilang (yuklang).

Variantlar

"Voqealar tarixi", "voqealarning gen_auth", "voqea buzilishlari", "idlarni qidirish", "identifikatorlarni yuklab olish" submodullari tomonidan qo'llab-quvvatlanadigan variantlar: -q, --quiet bannerlar, ma'lumot (yashil) xabarlarni ko'rsatmaslik va bajarish. ijro paytida savol bermang ############################################ ## #################################### "Voqealar tarixi", " tomonidan qo'llab-quvvatlanadigan variantlar voqealar gen_auth" submodules ", "voqea buzilishlari": -e, --faqat olinadigan USB qurilmalari uchun tashqi qidiruv (o'chirish ma'lumotlariga ega) -n VOQADALAR SONI, --VOQADALAR SONI sana bo'yicha oxirgi voqealar soni ko'rsatiladi -d DATE [DATE. ..], --date DATE [DATE...] -f LOG_FILE [LOG_FILE...], --fayl LOG_FILE [LOG_FILE] qidiruvida hodisalar filtrlanadigan sanalar ro'yxati. ..] jurnal fayllari roʻyxati (agar koʻrsatilmagan boʻlsa, voqea tarixi standart jurnal fayllari yordamida qidiriladi: OS versiyasiga qarab /var/log/syslog* yoki /var/log/messages*) ##### ################################################# ######## ##################### "Hodisalar tarixi", "voqealarning buzilishi" submodullari tomonidan qo'llab-quvvatlanadigan variantlar: -t, -- jadvalni jadval shaklida ishlab chiqarish (agar terminal oynasining o'lchami jadvalni to'g'ri ko'rsatish uchun etarli bo'lmasa, chiqish avtomatik ravishda ro'yxat shaklida hosil bo'ladi); -t bayrog'ini ko'rsatganda, chiqish majburiy ravishda jadval ko'rinishida hosil bo'ladi) -l, --list chiqishni ro'yxat sifatida yaratish -c COLUMN [COLUMN...], --column COLUMN [COLUMN.. .] jadval tuzishda foydalaniladigan ustunlar ro‘yxati (faqat jadval ko‘rinishida chiqish hosil qilganda ta’sir qiladi); ruxsat etilgan kalitlar: "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn". ################################################# ################################# "Events gen_auth", "voqe buzilishlari" submodullari tomonidan qo'llab-quvvatlanadigan variantlar: - a SIGN [SIGN...], --atribut SIGN [SIGN...] ruxsat etilgan qurilmalar ro'yxatini tuzishda (shuningdek, "buzuvchi hodisalar" ni qidirishda) foydalaniladigan atributlar ro'yxati. "voqealarning buzilishi" kichik moduli); ruxsat etilgan kalitlar: "vid", "pid", "prod", "ishlab chiqarish", "seriyali". ################################################# ################################# "IDs search", "IDs download" submodullari tomonidan qo'llab-quvvatlanadigan variantlar: - -vid VID sotuvchi identifikatori yoki USB qurilmasi ishlab chiqaruvchisi identifikatori (odatda 4 o'n oltilik raqam) --vid PID mahsulot identifikatori yoki USB qurilma modeli identifikatori (odatda 4 o'n oltilik raqam) --ko'rsatilgan bo'lsa, oflayn rejimda, ma'lumotlar bazasida USB qurilmasi haqida qo'shimcha ma'lumot qidiring identifikator ma'lumotlari avval yangilanmasdan ishlab chiqariladi (ma'lumotlar bazasi)

Foydalanishga misollar

Barcha USB qurilmalarining ulanish tarixini ko'rsating, bannerni, ma'lumotli (yashil) xabarlarni qoldirmang, shuningdek, bajarish paytida savollar bermasdan (-q, --quite), ro'yxat (-l, --) ko'rinishida chiqishni yarating. roʻyxat), shu jumladan, unda eng soʻnggi topilgan 100 ta hodisa (-n NOVOQALAR, --VOQEALAR soni):
$ python3 usbrip.py voqealari tarixi -ql -n 100
"Ulangan", "VID", "PID", "Unlangan" va "Seriya raqami" maydonlari (ustunlari) bo'lgan jadval shaklida chiqishni yaratadigan olinadigan USB qurilmalarining (-e, --external) ulanish tarixini ko'rsating. ” (-c COLUMN [COLUMN...], --column COLUMN [COLUMN...]), qidiruvni sanalar bo‘yicha filtrlash (-d DATE [DATE...], --date DATE [DATE...] ), tashqi jurnal fayllaridan ma'lumot olish (-f LOG_FILE [LOG_FILE...], --fayl LOG_FILE [LOG_FILE...]):
$ python3 usbrip.py voqealar tarixi -et -c ulanish vid pid serialni uzish -d "9 dekabr" "10 dekabr" -f /var/log/syslog.1 /var/log/syslog.2.gz
Barcha USB qurilmalarining ulanish tarixi jadvalini tuzing va keyingi tahlil qilish uchun chiqishni faylga yo'naltiring. Chiqish oqimi standart stdout bo'lmasa (masalan, "|" yoki ">"), chiqish ma'lumotlarida maxsuslar mavjud bo'lmaydi. terminaldagi shrift rangi uchun mas'ul bo'lgan belgilar, shuning uchun matn fayli o'qilmaydigan belgilar bilan to'ldirilmaydi. Shuni ham ta'kidlash kerakki, usbrip ba'zi UNICODE konstantalaridan foydalanadi, shuning uchun kodlashni darhol o'zgartirsangiz yaxshi bo'lardi. yaratilgan fayl UTF-8 da ularni to'g'ri ko'rsatish (masalan, encov-dan foydalanish) va belgilardan foydalanish yangi qator yaxshi ko'chirish uchun Windows uslubida (masalan, awk-dan foydalanish):
$ python3 usbrip.py tarixi voqealari -t | awk "( sub("$", "\r"); chop et)" > usbrip.txt && enconv -x UTF8 usbrip.txt
Eslatma: maxsusdan xalos bo'ling Agar chiqish allaqachon stdout-ga yuborilgan bo'lsa, rang uchun mas'ul belgilar ham mumkin. Buning uchun siz olingan ma'lumotlarni yangi usbrip.txt fayliga nusxalashingiz va boshqa awk ko'rsatmasini qo'shishingiz kerak:
$ awk "( sub("$", "\r"); gsub("\\x1B\\[*[ -/]*[@-~]", ""); chop et)" usbrip.txt && enconv -x UTF8 usbrip.txt
Ishonchli qurilmalar roʻyxatini JSON fayli (trusted/auth.json) koʻrinishida yarating, unda birinchisining “VID” va “PID” maydonlari mavjud. uch 26 sentyabr kuni ulangan qurilmalar:
$ python3 usbrip.py voqealari gen_auth trusted/auth.json -a vid pid -n 3 -d "26-sentabr"
Ishonchli qurilmalar roʻyxati (trusted/auth.json) asosida olinadigan USB qurilmalarining ulanish tarixidan “PID” maydonidan foydalanib “huquqbuzar hodisalari”ni toping va “Ulangan”, “” bilan jadval koʻrinishida natijani yarating. VID" va "PID" maydonlari:
$ python3 usbrip.py hodisalari buzilishi ishonchli/auth.json -a pid -et -c conn vid pid
VID va PID-ga asoslangan USB qurilmasi haqida qo'shimcha ma'lumotni toping:
$ python3 usbrip.py identifikatorlarini qidirish --vid 0781 --pid 5580
USB Device ID ma'lumotlar bazasini yuklab olish/yangilash (manba):
$ python3 usbrip.py identifikatorlarini yuklab oling

Havolalar va postscript

Yordamchi dasturni Github'dan olishingiz mumkin, ishga tushirish va to'g'ri ishlash uchun barcha bog'liqliklar ro'yxatda keltirilgan talablar.txt.

E'tiboringiz uchun tashakkur!

P.S. ha, banner uslubi va axborot xabarlari loyihadan ilhomlangan sqlmap (*^.^*)

UPD 06/13/2018. Codeby bo'lgan odamdan mening foydam bilan bog'liq haqiqiy (?) ishi bo'yicha tergov bor edi (to'g'risini aytsam, hayratdaman).

Fanlardan biriga sho'ng'ishning bir qismi sifatida (Compeza mutaxassisligi bo'yicha o'qish davomida) men "Univer" papkasining tubiga shunchaki ko'mishni istamaydigan bitta qiziqarli loyiha ustida ishladim. haydash.

Ushbu loyiha deyiladi

usbrip

va Linux sud ekspertizasi uchun kichik ochiq kodli konsol yordam dasturi, ya'ni USB qurilmalar ulanishlari tarixi bilan ishlash uchun. Dastur sof Python 3 da (ba'zi uchinchi tomon modullaridan foydalangan holda) yozilgan va Python 3.x tarjimonidan boshqa bog'liqliklar va bir nechta qatorlarni talab qilmaydi.

talablar.txt

Pip3 yordamida bir qatorda hal qilingan.

Ushbu postda men ushbu dasturiy ta'minotning ba'zi imkoniyatlarini tasvirlab beraman va yuklab olish manbasiga havola bilan qisqa qo'llanma qoldiraman.

$ python3 usbrip.py identifikatorlarini yuklab oling

Havolalar va postscript

Yordamchi dasturni dan olishingiz mumkin

GitHub

Ishga tushirish va to'g'ri ishlash uchun barcha bog'liqliklar ro'yxatda keltirilgan

talablar.txt

E'tiboringiz uchun tashakkur!

P.S.

ha, banner va axborot xabarlari uslubi loyihadan ilhomlangan

sqlmap

Siz Linux kompyuteringizga USB flesh-disk yoki klaviatura yoki sichqonchani ulagansiz. Lekin hech narsa bo'lmaydi.

Nima gap? Nima uchun Linux kompyuteringiz qurilmani aniqlamaydi? Bu Linuxmi yoki USB qurilmangiz ishlamay qolganmi?

USB Ubuntu'da ishlamaydi?

Disk drayvlar, xotira kartasini o'qish qurilmalari, telefonlar, media pleerlar va periferiya qurilmalari multimedia...ularning barchasi foydali, lekin USB port yoki tizim drayverlarida muammo bo'lsa, ular ishlamaydi. Agar siz Bluetooth klaviaturasi yoki sichqonchadan (USB dongle bilan) foydalanayotgan bo'lsangiz, bu, ayniqsa, asabiylashishi mumkin, chunki bu simli USB muqobillarini qazib olishni anglatadi.

Biroq, bu o'lik port bo'lmasligi mumkin. Siz foydalanayotgan USB qurilmasi noto'g'ri bo'lishi mumkin va uni aniqlab bo'lmaydi.

USB muammolarini hal qilish qiyin bo'lishi mumkin, ammo bu muammolarni tashxislash va kerakli tuzatishlarni amalga oshirish mumkin emas.

Linuxda USB muammolarini hal qilish uchun beshta qadam mavjud:

  1. USB porti aniqlanganligiga ishonch hosil qiling
  2. Portda kerakli ta'mirlash ishlarini bajaring
  3. USB qurilmalarini tuzatish yoki ta'mirlash
  4. Qayta ishga tushirish operatsion tizim Linux
  5. Qurilma drayverlari mavjudligini tasdiqlang

Keling, ularning har birini navbatma-navbat ko'rib chiqamiz va Linuxda qiyin USB qurilmalari bilan qanday ishlashni o'rganamiz.

1. Qurilmangiz Linux tomonidan aniqlanganmi?

USB qurilmangizni Linux kompyuteringizga kiritishda birinchi bo'lib tekshirilishi kerak bo'lgan narsa uning aniqlanganligidir. USB qurilmasini aniqlash odatda Windows yoki macOS'da bo'lgani kabi og'zaki yoki ovozli emas (Linux Deepin'da bunday emas), ya'ni siz tez-tez qurilma operatsion tizim tomonidan qo'lga olinganligini tekshirishingiz kerak.

Yaxshiyamki, bu oddiy.

Birinchidan, siz so'ragan USB qurilmalarini ajratib oling. Keyin terminal oynasini oching va buyruqni kiriting »Ro'yxat USB:

dmesg buyrug'i tizimingizda ulangan USB qurilmalarini ro'yxatlaydi. Shuningdek, u USB bo'lmagan uskunani o'z ichiga oladi va afsuski, juda ko'p ma'lumot beradi. Bunga qarshi turish uchun quyidagilarni sinab ko'rishingiz mumkin:

Bu dmesg va lsusb buyruqlari o'rtasidagi o'zaro bog'liqlik kabi ko'rinadi, ulangan USB qurilmalari ularni aniqlash uchun etarli ma'lumotga ega.

Xo'sh, siz ulagan USB bu erda ko'rsatilganmi? Aks holda, port shikastlangan yoki qurilmada muammo bo'lishi mumkin. Xuddi shunday, qurilma Linux bilan mos kelmasligi mumkin.

2. USB portni qanday tekshirish mumkin

Agar USB qurilmasi ko'rsatilmasa, bu USB portidagi muammo tufayli bo'lishi mumkin.

Buni sinab ko'rishning eng yaxshi usuli - kompyuteringizda boshqa USB portidan foydalanish. Agar USB uskunasi aniqlansa, siz USB portlaridan birida muammo borligini bilasiz.

Agar boshqa USB port mavjud bo'lmasa, USB qurilmasini boshqa kompyuter yoki noutbukda sinab ko'rishingiz kerak. Biroq, bu ideal bo'lmasligi mumkin, chunki siz muqobil ravishda Windows yoki macOS kompyuteridan foydalanishingiz mumkin va bu holda ba'zi USB qurilmalarini Linuxda ishlatib bo'lmaydi. Shunday qilib, muammoga nima sabab bo'lganini aniqlash qiyin bo'ladi, bu USB qurilmasi yoki USB portmi.

Eng yaxshi natijalarga erishish uchun USB qurilmalaridagi nosozliklarni bartaraf etishda iloji boricha Linuxga mos keladigan uskunadan foydalaning.

3. Zararlangan USB uskunasini tuzatish

Agar USB uskunangiz noto'g'ri bo'lsa, sizda ikkita variant bor: uni tuzatish yoki qaytarish.

Tuzatish odatda tekshirishni o'z ichiga oladi USB port, shuningdek, hozirda ishlamayotgan qurilmalar. Tuzatishlar deyarli har doim atrofida bo'ladi USB kabeli va kompyuteringizdagi port. USB kabellari odatda almashtirilishi mumkin, lekin USB portlarini ta'mirlash mumkin.

Jismoniy tekshirish USB uskunasi- yaxshi fikr. Kabellar mustahkam bo'lishi kerak, hech qanday uzilishlarsiz va metall qism ishonchli tarzda mahkamlangan bo'lishi kerak.

Shu bilan birga, USB portlari kompyuter o'chirilgan va elektr tarmog'idan uzilgan holda sinovdan o'tkazilishi kerak. Portlar xavfsiz va chayqalganligini tekshiring USB portlari asbob-uskunalarning eskirganligining belgisidir.

Agar USB port bo'shab qolsa, uni joyiga qaytarishingiz mumkin. Albatta, siz qanday qilib lehimlashni bilishingiz kerak, hech qachon tajribasiz DIY ishiga urinmang.

Bundan tashqari, USB portlarida chang va axloqsizlik bor-yo'qligini tekshiring, ayniqsa kompyuterning orqa tomonida, bu erda chang muntazam ravishda to'planadi. Chang shaxsiy kompyuterning dushmanidir, shuning uchun tizimingizni changsiz muhitda saqlash yaxshidir. Chang USB portlari orqali kompyuteringizga kirib borishi mumkin, bu portlarni toza saqlashga vaqt ajrating. Chang va kirni tarqatish uchun siqilgan havodan foydalaning.

USB qurilmangizni qaytarib bera olasizmi? Agar u yangi bo'lsa, ehtimol. Muammo shundaki, agar u Linux ishlayotgani aniq belgilanmagan bo'lsa, do'kon daromadlarni qabul qila olmaydi.

4. USB portini tuzatish uchun Linuxni qayta yoqing

Ba'zi hollarda, masalan, noutbukdan foydalanayotgan bo'lsangiz, quvvat bilan bog'liq muammolar uning USB qurilmalarini aniqlash qobiliyatiga ta'sir qilishi mumkin. Avtomatik to'xtatib turish opsiyasi Linux noutbuklarida quvvat sarfini kamaytirish uchun mo'ljallangan, biroq u teskari bo'lishi mumkin.

Xo'sh, nima qila olasiz?

Avval avtomatik to'xtatib turish muammoga sabab bo'lganligini tekshiring. Buni kompyuteringizni qayta ishga tushirish orqali qilishingiz mumkin. Agar USB qurilmasi ishlayotgan bo'lsa, u holda USB port quvvat oladi.

Keyingi qadam bu boshqa takrorlanmasligiga ishonch hosil qilishdir. Keyingi fokuslar buyruq qatori Ubuntu 18.10 uchun mo'ljallangan, shuning uchun siz afzal ko'rgan Linux tarqatishda to'g'ri tartibni tekshiring.

Terminal oynasini oching va yozing:

cat /sys/module/usbcore/parameters/autosuspend

Mana qarang:

GRUB_CMDLINE_LINUX_DEFAULT="sokin chayqalish"

GRUB_CMDLINE_LINUX_DEFAULT = "sokin chayqalish"

USB-quvvatlash 2.2.7 versiyasidan boshlab yadroga kiritilgan va aytishimiz mumkinki, bu texnologiya allaqachon sinovdan o'tgan va bunday qurilmalarni ulashda hech qanday muammo bo'lmasligi kerak. Siz shunchaki kamera, flesh-disk, printer yoki boshqa qurilmani ulashingiz kerak va u avtomatik ravishda tanib olinadi. Printerning ishlashi, masalan, drayverlarning mavjudligiga bog'liq.

Vaziyatni baholash uchun keling, USB-ni qo'llab-quvvatlash qanday amalga oshirilayotganini va ulangan qurilmalar haqida ma'lumotni qaerdan izlash kerakligini ko'rib chiqaylik, garchi hamma narsa qisman USB-ga tegishli bo'lsa. Linuxda USB-quvvatlashni amalga oshirish Linux USB Loyiha (www.linux-usb.org) ma'lumot uchun borishingiz kerak bo'lgan joy. Hozirgi kompyuterlarda siz qurilmalar bilan o'zaro aloqada bo'lish interfeysida farq qiluvchi uch turdagi kontrollerlarni topishingiz mumkin. Bular OHCI (Ochiq Host Controller Interface), UHCI (Universal Host Controller Interface) va EHCI (Enhanced Host Controller Interface). Birinchi ikkitasi USB 1.1 versiyasini qo'llab-quvvatlaydi, oxirgi 2.0 480 Mbit/s gacha uzatish tezligini ta'minlaydi. UHCI kontrollerlari biroz sodda va arzonroq, ammo murakkab drayverlarni talab qiladi va protsessorga ko'proq yuk beradi. Nazoratchi turini aniqlash hali ham juda oddiy:

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

Bayroqlar: bus master, 66MHz, tez ishlab chiqish, kechikish 0, IRQ 11
Xotira fe02f000 (32-bit, oldindan yuklab bo'lmaydi)
Imkoniyatlar:

00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2) (prog-agar 20)
Quyi tizim: Biostar Microtech Int'l Corp Noma'lum qurilma 3405
Bayroqlar: bus master, 66MHz, tez ishlab chiqish, kechikish 0, IRQ 5
Xotira fe02e000 (32-bit, oldindan yuklab bo'lmaydi)
Imkoniyatlar:

Ko'rib turganingizdek, menda ikkala turdagi kontrollerlar mavjud: OHCI va EHCI. Agar siz o'zingiz yig'ilgan yadrodan foydalanayotgan bo'lsangiz, uni yoqing zarur haydovchi"USB Host Controller Drivers" bandida. Men sizga barcha variantlarni yuklamayman; yadroda mavjud bo'lgan barcha parametrlarni “cat /usr/src/linux/.config | grep -i usb".

Shuni ham yodda tutish kerakki, USB bilan ishlash SCSI emulyatsiyasi orqali amalga oshiriladi, shuning uchun siz SCSI-ni qo'llab-quvvatlash bilan bog'liq parametrlarni faollashtirishingiz kerak.
USB qurilmalari bilan bevosita ishlash uchun /etc/fstab orqali o'rnatilgan /proc virtual fayl tizimida /proc/bus/usb katalogi yaratiladi:

yo'q /proc/bus/usb usbfs noauto 0 0
Agar faylingizda bunday qator bo'lmasa, bu ishlab chiquvchilar sizni keraksiz fikrlardan qutqarganligini va ishga tushirish skriptlarida usbf-larni o'rnatayotganligini anglatishi mumkin. Bu qaysi maxsus skriptda amalga oshirilganligini "" kiritish orqali bilib olasiz. sudo grep -iR "usbfs" /etc/*". Masalan, KUbuntu-da skript USB-ni o'rnatish uchun javobgardir /etc/init.d/mountdevsubfs.sh. USB uchun fayl tizimini /proc/bus/usb ga quyidagi tarzda qo'lda o'rnatishingiz mumkin:

$ sudo mount -t usbdevfs hech biri /proc/bus/usb

Shundan so'ng buyruq " o'rnatish | grep usbfs" qatori mavjudligini ko'rsatishi kerak:

procbususb on /proc/bus/usb tipidagi usbfs (rw)

Va xulosa " lsmod» yuklangan modullar usbcore, haydovchi moduli ohci_hcd, ehci_hcd, uhci_hcs, shuningdek, ulangan qurilmaning drayveriga mos keladigan modul kabi scanner.o, printer.o, usb_storage.
haqida ma'lumot USB ulanishi qurilmalardan olish mumkin /var/log/dmesg va to'g'ridan-to'g'ri dan /proc. Agar katalog bo'lsa /proc/bus/usb bo'sh, bu virtual fayl degan ma'noni anglatadi USB tizimi o'rnatilmagan. Katalog ichida kontrollerlar soniga ko'ra 001, 002 kabi nomli bir nechta fayllar va barcha qurilmalar haqida "biladigan" qurilmalar fayli bo'lishi kerak:

$ cat /proc/bus/usb/qurilmalar

T: Avtobus=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: Ishlab chiqaruvchi=Linux 2.6.20-15-umumiy ehci_hcd
S: Mahsulot = EHCI xost boshqaruvchisi
S: Seriya raqami = 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: Sotuvchi = 0000 ProdID = 0000 Rev = 2.06
S: Ishlab chiqaruvchi=Linux 2.6.20-15-generic ohci_hcd
S: Mahsulot = OHCI xost boshqaruvchisi
S: Seriya raqami = 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: Sotuvchi = 1307 ProdID = 0163 Rev = 1.00
S: Ishlab chiqaruvchi=?????????y
S: Mahsulot = USB Mass Storage Device
S: Seriya raqami = 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-xotira
E: Ad=01(O) Atr=02(Ommaviy) MxPS= 512 Ivl=125us
E: Ad=82(I) Atr=02(Ommaviy) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=16ms

Chiqishni ochish oson, tafsilotlarni hujjatlardan qidiring ( /usr/src//Documentation/usb/proc_usb_info.txt). Shu xatni aytsam T topologiyani ko'rsatadi, Avtobus Va Daraja qurilma qaysi avtobusga ulanganligini va darajasini ko'rsatadi, Spd tezlikni ko'rsatadi, MxCh- unga qancha boshqa qurilmalar ulanishi mumkin, Haydovchi- haydovchi. Misol uchun, Driver=hub bu hub ekanligini ko'rsatadi va Driver=usb-storage ma'lumotni saqlash uchun USB qurilmasi.
KUbuntu omborida siz USB-ni tushunishingizga yordam beradigan bir nechta yordamchi dasturlarni topishingiz mumkin. Shunday qilib, lsusb-dan foydalanib, siz USB qurilmalari haqida ko'proq ma'lumotga ega bo'lasiz va agar sizga konsol yoqmasa, usbview-dan foydalaning.

Bu, asosan, Linux bilan kompyuterga issiq qurilmalarni ulash haqida aytmoqchi bo'lgan narsam, umid qilamanki, bugundan boshlab sizda bu bilan muammo bo'lmaydi.



 


O'qing:



Eng yaxshi simsiz minigarnituralar reytingi

Eng yaxshi simsiz minigarnituralar reytingi

Universal quloqlarni arzon sotib olish mumkinmi? 3000 rubl - bunday pulga yuqori sifatli eshitish vositalarini sotib olish mumkinmi? Ma'lum bo'lishicha, ha. Va nutq ...

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Yaxshilangan xarakteristikalar va yuqori avtonomiyaga ega planshetning yangilangan versiyasi.Acer smartfonlariga kamdan-kam tashrif buyuradi...

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Rossiyada 1 dekabrdan boshlab abonent boshqa uyali aloqa operatoriga o‘tganda telefon raqamini saqlab qolish to‘g‘risidagi qonun kuchga kirdi. Biroq, ma'lum bo'lishicha, ...

phabletni ko'rib chiqish, qimmat, lekin juda malakali

phabletni ko'rib chiqish, qimmat, lekin juda malakali

Qimmatbaho, lekin juda malakali fablet sharhi 20.03.2015 Men dunyodagi etiksiz yagona poyabzalchiman, o'z smartfonimsiz smartfon sharhlovchisiman....

tasma tasviri RSS