Listar dispositivos USB en la línea de comando OSX


Respuestas:


148

Además de system_profiler SPUSBDataType(sugerido por @kjs), también puede usar ioreg -p IOUSB:

$ ioreg -p IOUSB 
+-o Root  <class IORegistryEntry, id 0x100000100, retain 10>
  +-o EHCI Root Hub Simulation@1A,7  <class IOUSBRootHubDevice, id 0x100000227,$
  | +-o HubDevice@fa100000  <class IOUSBHubDevice, id 0x10000027a, registered, $
  | | +-o Apple Internal Keyboard / Trackpad@fa120000  <class IOUSBDevice, id 0$
  | | +-o BRCM2070 Hub@fa110000  <class IOUSBHubDevice, id 0x1000002b4, registe$
  | |   +-o Bluetooth USB Host Controller@fa113000  <class IOUSBDevice, id 0x10$
  | +-o FaceTime HD Camera (Built-in)@fa200000  <class IOUSBDevice, id 0x100000$
  +-o EHCI Root Hub Simulation@1D,7  <class IOUSBRootHubDevice, id 0x100000228,$
    +-o HubDevice@fd100000  <class IOUSBHubDevice, id 0x10000027b, registered, $
      +-o IR Receiver@fd110000  <class IOUSBDevice, id 0x100000288, registered,$

De manera predeterminada, se ajusta al ancho de la ventana (80 caracteres en el ejemplo anterior), por lo que es posible que desee agregar -w0para obtener una pantalla de ancho completo. Además, agregar -lmostrará detalles (probablemente más de lo que necesita) sobre cada uno de los dispositivos:

$ ioreg -p IOUSB -w0 -l
    +-o Root  <class IORegistryEntry, id 0x100000100, retain 10>
  | {
  |   "IOKitBuildVersion" = "Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64"
  |   "OS Build Version" = "14B25"
  |   "OSKernelCPUSubtype" = 3
  |   "OSKernelCPUType" = 16777223
  |   "OSPrelinkKextCount" = 185
  |   "IOConsoleLocked" = No
  |   "IORegistryPlanes" = {"IOACPIPlane"="IOACPIPlane","IOPower"="IOPower","IODeviceTree"="IODeviceTree","IOService"="IOService","IOUSB"="IOUSB","IOFireWire"="IOFireWire"}
[...etc...]

[EDITAR]: si solo desea los nombres de los dispositivos, puede filtrar la lista básica para recortar la basura:

$ ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*'
EHCI Root Hub Simulation
HubDevice
Apple Internal Keyboard / Trackpad
BRCM2070 Hub
Bluetooth USB Host Controller
FaceTime HD Camera (Built-in)
EHCI Root Hub Simulation
HubDevice
IR Receiver

todavía muestra más de lo que quería, pero es una conveniente línea de 1 línea por lista de dispositivos
Milliways del

¿Hay alguna manera conveniente de usar esta información para montar un dispositivo? Tengo un rincón que se ioregmuestra como conectado, pero diskutil listno lo muestra. ¿Hay alguna información ioregque pueda usar para montar el rincón?
stiemannkj1

@ stiemannkj1: No estoy familiarizado con los rincones, así que no estoy seguro de cómo se supone que deben aparecer en una Mac. Según tengo entendido, su montaje requerirá una unidad de dispositivo que lo reconozca como algo de línea de disco (¿debería hacer esto el controlador USB estándar?) Y que tenga algo como un sistema de archivos reconocible. No estoy lo suficientemente familiarizado con el sistema de controladores para saber cómo verificar esto, pero no creo que ioregpueda decirte lo que quieres saber.
Gordon Davisson

Siempre se puede canalizar la salida, como en Sublime: ioreg -p IOUSB -w0 -l | subl. Este comando ioreg también muestra los dispositivos que está usando mi caja virtual, lo cual es realmente útil.
rjferguson

72

Ejecute este comando:

system_profiler SPUSBDataType

algunas personas son justas *!
Ruskes

1
Gracias, esto se parece al System Information(que probablemente sea) pero muestra demasiados detalles, pero es útil saberlo
Milliways

1
Esta es una mejor respuesta si necesita acceso a campos como ID de proveedor o ID de producto.
CodeGnome

2
Esto muestra información diferente, como el uso de energía en amperios.
Simon Woodside

55
Una ventaja adicional de este comando es la capacidad de salida en XML, para casos donde se necesita una salida analizable:system_profiler -xml SPUSBDataType
Andre M
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.