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?


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

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

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


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

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.


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


2
system_profiler SPUSBDataType

é seu comando de necessidade em macos


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.