Existe um equivalente de lsusb para OS X

95

Esta pergunta parece estar em todo o Google, mas todas as respostas apontam para o uso do System Profiler. Isso é bom, mas com o System Profiler tudo que você tem é algo parecido com isto:

            DasKeyboard:

              Product ID: 0x1919
              Vendor ID: 0x04d9  (Holtek Semiconductor, Inc.)
              Version: 1.06
              Speed: Up to 1.5 Mb/sec
              Location ID: 0x1d114000 / 11
              Current Available (mA): 500
              Current Required (mA): 100

            USB2.0 Hub:

              Product ID: 0x0608
              Vendor ID: 0x05e3  (Genesys Logic, Inc.)
              Version: 32.98
              Speed: Up to 480 Mb/sec
              Location ID: 0x1d113000 / 10
              Current Available (mA): 500
              Current Required (mA): 100

                Microsoft Basic Optical Mouse v2.0 :

                  Product ID: 0x00cb
                  Vendor ID: 0x045e  (Microsoft Corporation)
                  Version: 1.99
                  Speed: Up to 1.5 Mb/sec
                  Manufacturer: Microsoft 
                  Location ID: 0x1d113200 / 12
                  Current Available (mA): 500
                  Current Required (mA): 100

Isso é ótimo se tudo que você quer é o conteúdo de um grupo de descritores de dispositivos, mas lsusbdá-lhe de modo muito mais - informações sobre interfaces e endpoints, associações de interface, dispositivos compostos ... onde você pode encontrar essas informações no OS X? Não deve ser uma ferramenta que faz isso?

Ted Middleton
fonte
Se você não se importa, como está usando informações como "interfaces e terminais, associações de interface, dispositivos compostos"?
Ben Creasy,

Respostas:

135

Cansei de esquecer a system_profiler SPUSBDataTypesintaxe, então fiz uma lsusbalternativa. Você pode encontrá-lo aqui ou instalá-lo com o homebrew:

brew install lsusb
Jlhonora
fonte
2
Bom roteiro! Você gostaria de adicioná-lo como fórmula homebrew? Isso seria conveniente.
moritz
1
É um bom utilitário, mas ainda é apenas uma fração do que o lsusb no Linux pode oferecer. lsusb no linux pode fornecer o conteúdo completo dos descritores de configuração do dispositivo. Sem isso, temo que esta ferramenta seja apenas uma impressora bonita.
Ted Middleton
3
Pode ser limitado, mas faz exatamente o que eu precisava. Torna meu ambiente de desenvolvimento consistente com apenas um brew installObrigado !!
snakeoil
2
Esse é um bom script, mas realmente não deveria ser chamado de "lsusb" considerando o que lsusbrealmente pode fazer: askubuntu.com/a/604169/598643
Sr. Kennedy
1
Um bom seria alias lsusb='system_profiler SPUSBDataType'se você não se importasse muito em obter o mesmo resultado exato para lsusb
yerlilbilgin
72

Normalmente executo este comando para listar dispositivos USB no Mac OS X, junto com detalhes sobre eles:

ioreg -p IOUSB -l -w 0
David Grayson
fonte
Veja minha resposta a @blekenbleu sobre ioreg
Ted Middleton
3
Cópia do comentário de Ted Middleton : O problema é que o ioreg e o IORegistryExplorer mostram os objetos do kernel que foram correspondidos aos dispositivos, não detalhes dos próprios dispositivos. Isso significa que você não verá interfaces em configurações diferentes da atualmente ativa e não verá nenhuma informação de endpoint (que é a saída mais útil do lsusb).
Maarten Bodewes
1
As páginas de manual parecem ter sido removidas. Os suplentes (em maio de 2019) são: unix.com/man-page/mojave/8/ioreg e manpagez.com/man/8/ioreg
rdadolf
26

Usuários homebrew: você pode obter lsusbatravés da instalação de usbutilsfórmula de minha torneira:

brew install mikhailai/misc/usbutils

Ele instala o REAL lsusbbaseado em fontes Linux (versão 007).

Mikhail Iakhiaev
fonte
1
Finalmente, o verdadeiro negócio. Posso confirmar que este funciona no OX 10.13.6.
Guido
3
Obrigado, esta é uma solução muito melhor, não disponível no momento em que desenvolvi o lsusbscript.
jlhonora
2
Obrigado, @jlhonora. A ironia é que os caras do Homebrew decidiram adicionar o seu lsusbscript ao homebrew-core, em vez do meu usbutils.
Mikhail Iakhiaev de
1
Você sempre pode enviar um PR.
jlhonora de
9

No mac osx, você pode usar o seguinte comando:

system_profiler SPUSBDataType
QJGui
fonte
system_profiler tem o mesmo problema que ioreg - ele reflete o estado dos objetos do kernel que o kernel combinou com os dispositivos, não os próprios dispositivos. Eu quero algo que basicamente exiba o layout completo do dispositivo, como em todos os descritores de configuração de todas as configurações.
Ted Middleton
6

Se você é um usuário de MacPorts , você pode simplesmente instalar usbutils

sudo port install usbutils

Se não estiver, esta pode ser uma boa oportunidade para instalá-lo, pois ele possui portas para várias outras ferramentas úteis do Linux.

thiago
fonte
Ah - ok, no arquivo de porta eu vejo, "depends_lib port: libusb", e a fonte realmente parece exigir libusb. Isso bastaria, eu acho. Eu realmente não uso macports, embora - estou em fermentação. E eu odiaria ter que instalar macports apenas para isso, especialmente quando lsusb poderia ser reimplementado com iokit de espaço de usuário tão facilmente.
Ted Middleton
Esta deve ser a resposta aceita. Porém, neste momento este pacote está quebrado por causa de sua dependência usbids, rastreie-o em trac.macports.org/ticket/53188
Isso parece já estar consertado.
Maarten Bodewes
4

Que tal ioreg? A saída é muito mais detalhada do que o criador de perfil, mas é um pouco densa.

Fonte: https://lists.macosforge.org/pipermail/macports-users/2008-July/011115.html

lhagan
fonte
Veja minha resposta a @blekenbleu. lsusb tem muito mais informações do que ioreg / IORegistryExplorer ou qualquer outro programa como system_profiler que apenas percorre o registro do iokit.
Ted Middleton
2
system_profiler SPUSBDataType

é seu comando de necessidade em macos

xds2000
fonte
0

Pelo menos no 10.10.5, a system_profiler SPUSBDataTypesaída NÃO é atualizada dinamicamente quando um novo dispositivo USB é conectado, enquanto o ioreg -p IOUSB -l -w 0faz.

blekenbleu
fonte
O problema é que ioreg e IORegistryExplorer mostram os objetos do kernel que foram correspondidos aos dispositivos, não detalhes dos próprios dispositivos. Isso significa que você não verá interfaces em configurações diferentes da atualmente ativa e não verá nenhuma informação de endpoint (que é a saída mais útil do lsusb).
Ted Middleton
O que eu gostaria é uma ferramenta que mostrasse o conteúdo de todos os descritores de configuração de um dispositivo. Ioreg não vai fazer isso, lsusb faz.
Ted Middleton
Eu não vejo como isso é diferente desta resposta ?
Maarten Bodewes
0

No Mac OS X, o pacote de desenvolvedores Xcode inclui o aplicativo USB Proper.app. Isso se encontra em / Desenvolvedor / Aplicativos / Utilitários /. O USB Prober permitirá que você examine os descritores do dispositivo e da interface.

RayM
fonte
Xcode.app/Contents/Applications/Utilities não existe no Xcode 8.3 e não há USB Prober em aplicativos. Eu sei que o USB Prober ainda está disponível, mas ainda não consegui descobrir onde ele está. Está dentro de um pacote com algumas outras ferramentas.
Mike Crawford