Come rilevare un dispositivo USB?


41

Ho uno scenario in cui un software funziona solo quando si inserisce il dispositivo USB fornito dal fornitore del software nel sistema operativo Windows. Sto cercando di trovare il contenuto memorizzato nel dispositivo USB. Nel sistema operativo Windows, l'icona del dispositivo USB non viene visualizzata in My_Computer. Ho pensato, posso vedere il contenuto o almeno rilevare il dispositivo USB in Ubuntu.

Anche in Ubuntu, l'unità non viene rilevata. Ho provato "sudo fdisk -l" per conoscere il file system, ma non è utile. L'unità non viene rilevata affatto.

Volevo sapere come funziona il software solo quando è inserita l'unità USB e non lo farà quando non è inserita. Hanno dei file memorizzati nel dispositivo USB? In ogni caso, come possiamo rilevare questo tipo di dispositivo in Ubuntu?

Risposte:


48

Per rilevare il tuo dispositivo USB, in un terminale, puoi provare:

  • lsusb , esempio:

    $ lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 002: ID 046d:0809 Logitech, Inc. Webcam Pro 9000
    Bus 003 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
    
  • o questo potente strumento, lsinput,
    1 ° installarlo, e poi provare, elenca tutti i dispositivi di input, tra cui il dispositivo USB:

    sudo apt-get install input-utils
    lsinput
    

    esempio:

    $ lsinput
    /dev/input/event0
    ...
    
    /dev/input/event1
    ...
    
    /dev/input/event2
    ...
    
    /dev/input/event3
    bustype : BUS_USB
    vendor  : 0x46d
    product : 0xc016
    version : 272
    name    : "Logitech Optical USB Mouse"
    phys    : "usb-0000:00:1d.1-2/input0"
    uniq    : ""
    bits ev : EV_SYN EV_KEY EV_REL EV_MSC
    
  • udevadm , con questa riga di comando, è necessario scollegare il dispositivo prima di utilizzare il comando e quindi collegarlo per vederlo:

    $ udevadm monitor --udev
    monitor will print the received events for:
    UDEV - the event which udev sends out after rule processing
    UDEV  [1915.787445] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-2 (usb)
    UDEV  [1915.796226] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0 (usb)
    

Ma potrebbe non funzionare. Nel mio caso sto cercando di far funzionare il mio tag Leapfrog su Ubuntu senza successo .


2
Grazie per il tuo contributo. I comandi "lsusb" e "udevadm" elencano il mio dispositivo sebbene il comando "lsinput" non mi fornisca ulteriori informazioni.
Principiante

5

Se il dispositivo in questione è un dongle di protezione software, potrebbe non essere un dispositivo di archiviazione di massa.

Un probabile dispositivo alternativo da implementare sarebbe un controller ethernet; il software può comunicare con il dispositivo tramite l'adattatore di rete, che non verrà visualizzato come unità. Oppure il dispositivo potrebbe implementare una porta seriale o un altro dispositivo per il quale i driver sono inclusi nel sistema operativo.

In ogni caso, questo non è un forum appropriato per chiedere di eludere la protezione dalla copia sul software Windows, anche se stai provando a farlo usando Ubuntu.


esiste un modo per verificare se si tratta di un dongle di portection software o qualcos'altro?
Principiante

1
Se si tratta di un dispositivo il cui unico scopo è impedire l'esecuzione del software senza che sia presente, è un dongle di protezione del software.
Adrian,

1
Grazie mille per il tuo commento. È stato un input prezioso per me. Ho identificato che è un dongle di protezione software con il tuo aiuto. Volevo sapere molto sulla tecnologia utilizzata in esso e su altre cose tecniche. Conosci qualche forum come "askubuntu" sort ?. Ho anche cercato su Google di trovare lo stesso. Ma non sono convinto.
Principiante

2

Ciò che funziona bene anche quando l'hardware del tuo PC ha difficoltà con gli eventi USB è l'esecuzione di un cronjob.

* * * * *    lsusb -v 2>&1 1>/dev/null

Ciò impone una scansione completa dei dispositivi USB collegati.
Ogni minuto la situazione viene aggiornata.


0

Se vuoi rilevare come viene caricato un dispositivo USB, con un'eccellente granularità, ecco (2) modi:

udevadm monitor: Questo ti mostrerà il dispositivo USB che viene caricato come lo vede il bus USB .

udevadmfa parte del pacchetto predefinito udevsu 18.04 LTS; non è necessario installarlo.

Eseguire udevadm monitor PRIMA di inserire il dispositivo USB tuttavia.

Uscita del campione che carica un'unità flash USB mostrata di seguito. Passa all'ultima riga e puoi persino vedere quale dispositivo ha caricato ( sda1 ):

udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[969.010067] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb)
KERNEL[969.010367] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[969.018769] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0 (scsi)
KERNEL[969.018849] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/scsi_host/host0 (scsi_host)
KERNEL[969.018934] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[969.019049] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb)
UDEV  [969.024995] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb)
UDEV  [969.031390] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [969.036362] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0 (scsi)
UDEV  [969.041258] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/scsi_host/host0 (scsi_host)
UDEV  [969.046202] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [969.051734] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb)
KERNEL[970.051706] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0 (scsi)
KERNEL[970.052068] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0 (scsi)
KERNEL[970.052215] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0 (scsi_disk)
KERNEL[970.052435] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0 (scsi)
KERNEL[970.052585] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0 (scsi_device)
KERNEL[970.052774] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0 (scsi_generic)
KERNEL[970.052963] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0 (bsg)
UDEV  [970.060833] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0 (scsi)
KERNEL[970.061634] add      /devices/virtual/bdi/8:0 (bdi)
UDEV  [970.069006] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0 (scsi)
UDEV  [970.071467] add      /devices/virtual/bdi/8:0 (bdi)
UDEV  [970.075852] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0 (scsi_disk)
KERNEL[970.079839] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/block/sda (block)
KERNEL[970.079989] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)
UDEV  [970.083556] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0 (scsi)
UDEV  [970.091288] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0 (scsi_device)
UDEV  [970.091755] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0 (scsi_generic)
UDEV  [970.106807] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/bsg/0:0:0:0 (bsg)
UDEV  [970.339976] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/block/sda (block)
UDEV  [970.519549] add      /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)

.

dmesg (che stampa il buffer dell'anello del kernel) ti darà anche una visibilità granulare sul caricamento del tuo dispositivo USB.

Tuttavia, dmesgal contrario di udevadm monitormostra come caricare il dispositivo USB esterno dal punto di vista del kernel

Uscita campione da dmesgquesto momento da un'unità CD esterna USB- mostrata di seguito. " 1-2 " si riferisce alla sua posizione sul bus USB: primo bus, seconda porta. Se avessi collegato l'unità CD all'altra porta, avrebbe riportato " 1-1 ":

[   55.296482] usb 1-2: new high-speed USB device number 4 using xhci_hcd
[   55.453715] usb 1-2: New USB device found, idVendor=1c6b, idProduct=a222
[   55.453730] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   55.453740] usb 1-2: Product: Mass Storage Device
[   55.453749] usb 1-2: Manufacturer: USB2.0 External
[   55.453758] usb 1-2: SerialNumber: 2010100500000000174
[   55.525860] usb-storage 1-2:1.0: USB Mass Storage device detected
[   55.527273] scsi host0: usb-storage 1-2:1.0
[   55.530031] usbcore: registered new interface driver usb-storage
[   55.545215] usbcore: registered new interface driver uas
[   56.553073] scsi 0:0:0:0: CD-ROM            slimtype  eTDU108   1     SL46 PQ: 0 ANSI: 0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.