Cyme
List system USB buses and devices. A modern cross-platform lsusb that attempts to maintain compatibility with, but also add new features. Profiles system USB buses and the devices on those buses, including full device descriptors.
Examples
Tree
# List all USB devices and buses in a tree format with default display blocks
cyme --tree
# As above but with configurations too
cyme --tree --verbose
# And with interfaces and endpoints - each verbose level goes futher down the USB descriptor tree. Using short arg here.
cyme --tree -vvv
# List all USB devices and buses in a tree format with more display blocks, all verbose levels and headings to show what is being displayed
cyme --tree --more --headings
# Export the tree to a JSON file - --json works with all options
cyme --tree --verbose --json > tree.json
# Then import the JSON file to view the system USB tree as it was when exported. All cyme args can be used with this static import as if it was profiled data.
cyme --from-json tree.jsonlsusb
# List all USB devices and buses like 'lsusb'
cyme --lsusb
# lsusb verbose device dump including all descriptor informaion
cyme --lsusb --verbose
# lsusb tree mode (can add verbose levels [-v])
cyme --lsusb --treeBlocks
See cyme --help for blocks available. One can also omit the value to the arg to show options. Specifying multiple blocks requires multiple args or csv. By default the supplied blocks will replace the default blocks. Use --block-operation to change this behaviour.
# List USB devices with more display blocks
cyme --more
# List USB devices with chosen blocks: name, vid, pid, serial, speed (can use short -b)
cyme --blocks name,vendor-id,product-id,serial -b speed
# Customise other blocks - it's probably easier to use Config at this point
cyme --blocks name --bus-blocks name --config-blocks name --interface-blocks class --endpoint-blocks number
# Use block-operation to change the default or config blocks with arg blocks
cyme --block-operation remove --blocks serial
cyme --block-operation add --blocks base-class --blocks last-event --bus-blocks host-controller-vendorFiltering
# Filter for only Apple devices (vid:pid is base16)
cyme -d 0x05ac
# Specifically an Apple Headset, masking the serial number with '*'
cyme -d 05ac:8103 --mask-serials hide
# Filter for only devices with a certain name and class (filters can be combined)
cyme --filter-name "Black Magic" --filter-class cdc-data