Listar dispositivos USB na linha de comandos do OSX

Respostas:

148

Além de system_profiler SPUSBDataType(sugerido por @kjs), você também pode 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,$

Por padrão, ele corta a largura da janela (80 caracteres no exemplo acima), então você pode adicionar -w0para obter uma exibição em largura total. Além disso, a adição -lmostrará detalhes (provavelmente mais do que você precisa) sobre cada um dos 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...]

[EDIT]: Se você deseja apenas os nomes dos dispositivos, pode filtrar a lista básica para aparar o lixo:

$ 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
Gordon Davisson
fonte
ainda mostra mais do que eu queria, mas é uma conveniente 1 linha por lista de dispositivos
Milliways
Existe uma maneira conveniente de usar essas informações para montar um dispositivo? Eu tenho um recanto que ioregmostra como conectado, mas diskutil listnão mostra. Existe alguma informação ioregque eu possa usar para montar o recanto?
stiemannkj1
@ stiemannkj1: Eu não estou familiarizado com cantos, então não tenho certeza de como eles devem aparecer em um Mac. Pelo que entendi, para montá-lo será necessária uma unidade de dispositivo que o reconheça como algo em linha de disco (o driver USB padrão deve fazer isso?), E que tenha algo como um sistema de arquivos reconhecível. Não estou familiarizado o suficiente com o sistema do driver para saber como verificar isso, mas acho que não ioregposso dizer o que você deseja saber.
Gordon Davisson
Você sempre pode canalizar a saída, como a Sublime: ioreg -p IOUSB -w0 -l | subl. Este comando ioreg também mostra os dispositivos que minha caixa virtual está usando, o que é realmente útil.
rjferguson 27/06
72

Execute este comando:

system_profiler SPUSBDataType
Kevin Stewart
fonte
algumas pessoas são apenas? *!
Ruskes 02/02
1
Graças - este parece ser o System Information(que provavelmente é), mas mostra maneira muito detalhe, mas é útil para saber
Milliways
1
Essa é uma resposta melhor se você precisar acessar campos como ID do fornecedor ou ID do produto.
precisa saber é o seguinte
2
Isso mostra informações diferentes, como uso de energia em amplificadores.
Simon Woodside
5
Uma vantagem adicional desse comando é a capacidade de gerar saída em XML, nos casos em que é necessária uma saída analisável:system_profiler -xml SPUSBDataType
Andre M