Làm cách nào để phát hiện thiết bị USB?


41

Tôi có một kịch bản, trong đó một phần mềm chỉ hoạt động khi bạn cắm thiết bị USB được cung cấp bởi nhà cung cấp phần mềm trong hệ điều hành windows. Tôi đang cố gắng tìm nội dung được lưu trữ trong thiết bị USB. Trong hệ điều hành windows, biểu tượng thiết bị USB không được hiển thị trong My_Computer. Tôi nghĩ rằng, tôi có thể thấy nội dung hoặc ít nhất phát hiện thiết bị USB trong Ubuntu.

Ngoài ra trong Ubuntu, ổ đĩa không được phát hiện. Tôi đã thử "sudo fdisk -l" để biết hệ thống tập tin, nhưng nó không hữu ích. Ổ đĩa không được phát hiện ở tất cả.

Tôi muốn biết, làm thế nào phần mềm chỉ hoạt động khi ổ USB được cắm và nó sẽ không hoạt động khi không được cắm. Họ có tập tin nào được lưu trong thiết bị USB không? Trong mọi trường hợp, làm thế nào chúng ta có thể phát hiện loại thiết bị như vậy trong Ubuntu?

Câu trả lời:


47

Để phát hiện thiết bị USB của bạn, trong một thiết bị đầu cuối, bạn có thể thử:

  • lsusb , thí dụ:

    $ 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
    
  • hoặc công cụ mạnh mẽ này lsinput,
    lần đầu tiên cài đặt nó, sau đó thử nó, nó liệt kê tất cả các thiết bị đầu vào bao gồm cả thiết bị USB của bạn:

    sudo apt-get install input-utils
    lsinput
    

    thí dụ:

    $ 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 , với dòng lệnh này, bạn cần rút phích cắm thiết bị trước khi sử dụng lệnh và sau đó cắm thiết bị để xem:

    $ 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)
    

Nhưng nó có thể không hoạt động. Trong trường hợp của tôi, tôi đang cố gắng làm cho Thẻ Leapfrog của mình chạy trên Ubuntu mà không thành công .


2
Cảm ơn vì đầu vào của bạn. Lệnh "lsusb" và "udevadm" liệt kê thiết bị của tôi mặc dù lệnh "lsinput" không cung cấp cho tôi bất kỳ thông tin bổ sung nào.
Học viên

4

Nếu thiết bị được đề cập là một dongle bảo vệ phần mềm, nó có thể không phải là một thiết bị lưu trữ lớn.

Một thiết bị thay thế có khả năng để nó thực hiện sẽ là bộ điều khiển ethernet; phần mềm có thể giao tiếp với thiết bị thông qua bộ điều hợp mạng, không xuất hiện dưới dạng ổ đĩa. Hoặc thiết bị có thể thực hiện một cổng nối tiếp hoặc một thiết bị khác có trình điều khiển đi kèm với hệ điều hành.

Trong mọi trường hợp, đây không phải là một diễn đàn thích hợp để hỏi về việc phá vỡ tính năng bảo vệ bản sao trên phần mềm Windows, ngay cả khi bạn đang cố gắng thực hiện bằng Ubuntu.


Có cách nào để kiểm tra xem phần mềm của nó có phải là phần mềm không?
Học viên

1
Nếu đó là một thiết bị với mục đích duy nhất là ngăn phần mềm chạy mà không có mặt thì đó là một thiết bị bảo vệ phần mềm.
Adrian

1
Cảm ơn rất nhiều về lời bình luận của bạn. Đó là đầu vào có giá trị đối với tôi. Tôi đã xác định rằng đó là một dongle bảo vệ phần mềm với sự giúp đỡ của bạn. Tôi muốn biết nhiều về công nghệ được sử dụng trong đó và các công cụ kỹ thuật khác. Bạn có biết bất kỳ diễn đàn nào như "Askubfox" sắp xếp không?. Tôi cũng googled để tìm về cùng. Nhưng tôi không bị thuyết phục.
Học viên

2

Điều gì cũng hoạt động tốt khi phần cứng PC của bạn gặp khó khăn với các sự kiện usb đang chạy một cronjob.

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

Điều này buộc phải quét toàn bộ các thiết bị USB được kết nối.
Mỗi phút tình hình được cập nhật.


0

Nếu bạn muốn phát hiện cách thiết bị USB được tải - với độ chi tiết tuyệt vời - đây là (2) cách:

udevadm monitor: Điều này sẽ cho bạn thấy thiết bị USB đang được tải khi USB Bus nhìn thấy nó .

udevadmlà một phần của gói mặc định udevtrên 18.04 LTS; Không cần phải cài đặt nó.

Thực thi udevadm monitor TRƯỚC KHI bạn cắm thiết bị USB.

Đầu ra mẫu tải một ổ flash USB hiển thị bên dưới. Chuyển đến dòng cuối cùng và thậm chí bạn có thể xem thiết bị nào được tải dưới dạng ( 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 (in bộ đệm vòng Kernel) cũng sẽ cung cấp cho bạn khả năng hiển thị chi tiết khi tải thiết bị USB của bạn.

Tuy nhiên, dmesgngược lại để udevadm monitorcho bạn thấy cách tải thiết bị USB bên ngoài của bạn từ phối cảnh của Kernel

Đầu ra mẫu từ dmesgthời gian này từ ổ đĩa CD ngoài USB - được hiển thị bên dưới. " 1-2 " chỉ vị trí của nó trên bus USB: Bus thứ nhất, cổng thứ hai. Nếu tôi kết nối ổ đĩa CD với cổng khác, nó sẽ báo " 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.