Rozpoznanie urządzenia USB

0

Cześć,

Czy każde urządzenie USB ma jakiś indywidualny kod/serial number cokolwiek co pozwoli je zidentyfikować? Tak jak np. HDD mają taki numer i na jego podstawie można stwierdzić, że to ten konkretnie dysk.
O co chodzi. Podłączam 10 identycznych pendrive, albo kamer usb do komputera i chciałbym rozpoznać które konkretnie urządzenie podłączyłem. Czy taki numer jest gdzieś zaszyty w sterowniku?

Pozdrawiam

2

Taki numer może być zaszyty w deskryptorach urządzenia USB. Wszystko zależy czy programista piszący obsługę tego pendrive'a zaszył w deskryptorze urządzenia ten unikalny numer czy poszedł na łatwiznę i wszystkie pendrive'y mają ustawiony ten sam.
Jeśli próbujesz pod Linux-em to zobacz:

lsusb -v
usbview

one powinny wyświetlić deskryptory podpiętych urządzeń. Szukaj pola: "iSerialNumber" o ile dobrze pamiętam.

0

możesz też zobaczyc co pokazuje program USBDeview
https://www.nirsoft.net/utils/usb_devices_view.html

1

Każde urządzenie posiada idVendor oraz idProduct. Oba są potrzebne dla systemu, aby mógł wybrać odpowiedni sterownik dla urządzenia.
Jak trafnie zauważył @vtx medium USB, udostępnia opcjonalny numer seryjny, który może być taki sam dla podobnych urządzeń (nie muszą być nawet tego samego producenta). Dodatkowo masz nazwę fabryki i jeszcze kilka innych opcjonalnych pól identyfikacyjnych.

Kolejną możliwością jest odczytanie firmweru z urządzenia i sprawdzenie dat oraz numerów identyfikacyjnych, ale mało które udostępnia taką opcję przez port USB.

Dodatkową opcją jeśli chodzi o pendrivy i wszystko co ma partycje, jest odczytanie:
PTUUID - id dysku (układ partycji)
UUID - id dla poszczególnych partycji
Są jeszcze, w zależności od systemu plików, dodatkowe pola z numerami identyfikacyjnymi / seryjnymi? (id).
Te numery są tworzone losowo, w chwili tworzenia partycji, więc powinny być różne.

Można oczywiście, skopiować taki pendrive lub dysk 1 do 1 z numerami, specjalnym narzędziem takim jak na przykład linuxowe dd.
Ale trzeba to zrobić specjalnie.

0

dziękuję za wszystkie odpowiedzi

0

S/N i podobne identyfikatory mogą (nie w każdym przypadku są obowiązkowe) być przechowywane przez oprogramowanie układowe urządzenia. Sterownik jest wspólny dla wszystkich urządzeń na określonych układach, a czasem i dla różnych urządzeń wykorzystujących różne, ale dostatecznie podobne układy.
VID i PID nie identyfikują konkretnego urządzenia, ale jego producenta i model. Przy czym w przypadku pendrivów/kart pamięci urządzeniem jest konfiguracja kontrolera i układów pamięci, a producentem - producent układów. To, co jest napisane na plastikowej/metalowej obudowie, nie ma żadnego praktycznego znaczenia. Liczy się tylko to, co jest w środku.

Co do polecenia dd - ono operuje na poziomie adresacji LBA, czyli na poziomie logicznym. Nie skopiujesz za jego pomocą danych zapisywanych na poziomie adresacji fizycznej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1