Apakah ada yang setara dengan lsusb untuk OS X.

96

Pertanyaan ini sepertinya ada di seluruh google, tetapi jawabannya semua mengarah ke penggunaan System Profiler. Itu bagus, tetapi dengan System Profiler yang Anda dapatkan adalah sesuatu yang terlihat seperti ini:

            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

Itu bagus jika semua yang Anda inginkan adalah isi dari sekelompok deskriptor perangkat, tetapi lsusbmemberi Anda begitu banyak lagi - informasi pada antarmuka dan titik akhir, asosiasi antarmuka, perangkat komposit ... di mana Anda dapat menemukan informasi ini di OS X? Ada harus menjadi alat yang melakukan ini?

Ted Middleton
sumber
Jika Anda tidak keberatan, bagaimana Anda menggunakan informasi seperti "antarmuka dan titik akhir, asosiasi antarmuka, perangkat komposit"?
Ben Creasy

Jawaban:

136

Saya bosan lupa system_profiler SPUSBDataTypesintaks, jadi saya membuat lsusbalternatif. Anda dapat menemukannya di sini , atau menginstalnya dengan homebrew:

brew install lsusb
jlhonora.dll
sumber
2
Naskah yang bagus! Apakah Anda ingin menambahkannya sebagai formula homebrew? Ini akan memudahkan.
moritz
1
Itu utilitas yang bagus, tetapi itu masih sebagian kecil dari apa yang bisa diberikan lsusb di linux untuk Anda. lsusb di linux dapat memberi Anda konten lengkap dari deskriptor konfigurasi perangkat. Tanpa itu, saya khawatir alat ini sebagian besar hanyalah printer cantik.
Ted Middleton
3
Mungkin terbatas, tetapi ia melakukan apa yang saya butuhkan. Membuat lingkungan pengembangan saya konsisten hanya dengan brew installucapan Terima kasih !!
Snakeoil
2
Itu skrip yang bagus, tapi seharusnya tidak disebut "lsusb" mengingat apa yang lsusbsebenarnya bisa dilakukan: askubuntu.com/a/604169/598643
Tuan Kennedy
1
Yang rapi akan menjadi alias lsusb='system_profiler SPUSBDataType'jika Anda tidak terlalu peduli tentang mendapatkan hasil yang sama persis untuk lsusb
yerlilbilgin
73

Saya biasanya menjalankan perintah ini untuk mencantumkan perangkat USB di Mac OS X, bersama dengan detail tentangnya:

ioreg -p IOUSB -l -w 0
David Grayson
sumber
Lihat tanggapan saya ke @blekenbleu tentang ioreg
Ted Middleton
3
Salinan komentar oleh Ted Middleton : Masalahnya adalah bahwa ioreg dan IORegistryExplorer menunjukkan kepada Anda objek kernel yang telah dicocokkan dengan perangkat, bukan detail perangkat itu sendiri. Itu berarti Anda tidak akan melihat antarmuka pada konfigurasi selain yang sedang aktif, dan Anda tidak akan melihat informasi titik akhir sama sekali (yang merupakan keluaran paling berguna dari lsusb).
Maarten Bodewes
1
Halaman manual tampaknya telah dihapus. Alternatif (per Mei 2019) adalah: unix.com/man-page/mojave/8/ioreg dan manpagez.com/man/8/ioreg
rdadolf
26

Pengguna homebrew: Anda bisa mendapatkan lsusbdengan menginstal usbutilsformula dari tap saya:

brew install mikhailai/misc/usbutils

Ini menginstal REAL lsusbberdasarkan sumber Linux (versi 007).

Mikhail Iakhiaev
sumber
1
Akhirnya, real deal. Saya dapat mengonfirmasi bahwa ini berfungsi pada OX 10.13.6.
Guido
3
Terima kasih, ini adalah solusi yang jauh lebih baik, tidak tersedia pada saat saya mengembangkan lsusbskrip.
jlhonora
2
Terima kasih, @jlhonora. Ironisnya, orang-orang Homebrew memutuskan untuk menambahkan lsusbskrip Anda ke homebrew-corefile usbutils.
Mikhail Iakhiaev
1
Anda selalu dapat mengirimi mereka PR.
jlhonora
9

Di mac osx, Anda dapat menggunakan perintah berikut:

system_profiler SPUSBDataType
QJGui
sumber
system_profiler memiliki masalah yang sama dengan ioreg - ini mencerminkan keadaan objek kernel yang telah dicocokkan oleh kernel dengan perangkat, bukan perangkat itu sendiri. Saya menginginkan sesuatu yang pada dasarnya akan menampilkan tata letak lengkap perangkat, seperti yang ada di semua deskriptor konfigurasi dari semua konfigurasi.
Ted Middleton
6

Jika Anda adalah pengguna MacPorts , Anda dapat menginstal usbutils

sudo port install usbutils

Jika tidak, ini mungkin kesempatan bagus untuk menginstalnya, ini memiliki port untuk beberapa alat linux berguna lainnya.

thiago
sumber
Ah - ok, di file port saya melihat, "depend_lib port: libusb", dan sumbernya memang membutuhkan libusb. Itu akan berhasil, kurasa. Saya tidak benar-benar menggunakan macports, meskipun - saya sedang membuat bir. Dan saya benci harus menginstal macports hanya untuk ini, terutama ketika lsusb dapat diimplementasikan kembali dengan iokit ruang pengguna dengan mudah.
Ted Middleton
Ini harus menjadi jawaban yang diterima. Howerver, sekarang paket ini rusak karena ketergantungannya usbids, lacak melalui trac.macports.org/ticket/53188
Itu sepertinya sudah diperbaiki sekarang.
Maarten Bodewes
4

Bagaimana dengan ioreg? Outputnya jauh lebih mendetail daripada profiler, tapi agak padat.

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

lhagan
sumber
Lihat tanggapan saya untuk @blekenbleu. lsusb memiliki lebih banyak informasi daripada ioreg / IORegistryExplorer, atau program lain seperti system_profiler yang hanya berjalan di registri iokit.
Ted Middleton
2
system_profiler SPUSBDataType

itu perintah kebutuhan Anda di macos

xds2000
sumber
0

Setidaknya pada 10.10.5, system_profiler SPUSBDataTypeoutput TIDAK diperbarui secara dinamis ketika perangkat USB baru dicolokkan, sementara itu ioreg -p IOUSB -l -w 0tidak.

blekenbleu
sumber
Masalahnya adalah ioreg dan IORegistryExplorer menunjukkan kepada Anda objek kernel yang telah dicocokkan dengan perangkat, bukan detail perangkat itu sendiri. Itu berarti Anda tidak akan melihat antarmuka pada konfigurasi selain yang sedang aktif, dan Anda tidak akan melihat informasi titik akhir sama sekali (yang merupakan keluaran paling berguna dari lsusb).
Ted Middleton
Yang saya inginkan adalah alat yang akan menampilkan konten dari semua deskriptor konfigurasi perangkat. ioreg tidak akan melakukan ini, lsusb melakukannya.
Ted Middleton
Saya tidak melihat bagaimana ini berbeda dari jawaban ini ?
Maarten Bodewes
0

Di Mac OS X, suite pengembang Xcode menyertakan aplikasi USB Proper.app. Ini ditemukan di / Pengembang / Aplikasi / Utilitas /. USB Prober akan memungkinkan Anda untuk memeriksa perangkat dan deskriptor antarmuka.

RayM
sumber
Xcode.app/Contents/Applications/Utilities tidak ada di Xcode 8.3, dan tidak ada USB Prober di Aplikasi. Saya tahu bahwa USB Prober masih tersedia tetapi saya belum bisa menemukan di mana itu. Ini ada di dalam paket dengan beberapa alat lain.
Mike Crawford