Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Korsgaard <peter@korsgaard.com>2023-12-13 16:19:48 +0300
committerPeter Korsgaard <peter@korsgaard.com>2023-12-13 17:59:47 +0300
commit5e0e54827fb0fa80d2c894eb67e8696921095935 (patch)
tree4ea092cda34ffb3300e1b09726479a24815351a1
parent28f41260935852eda6bd8ab1f26347c012ae0a53 (diff)
util-linux/lsusb.c: print manufacturer/product strings if available
Just listing the vendor/product IDs is not always very helpful, so add logic to print the manufacturer and product strings similar to the "big" usbutils versions. Not all devices provide sensible strings though. The usbutils version works around this by falling back to looking up the vendor/product IDs in the hwdb and using those strings instead, which is not an option here - Instead simply trim() the strings for readability. lsusb | sort Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 0bda:5539 Realtek Semiconductor Corp. Integrated_Webcam_HD Bus 001 Device 003: ID 0a5c:5842 Broadcom Corp. 58200 Bus 001 Device 030: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP) Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 002: ID 0bda:5487 Realtek Semiconductor Corp. Dell dock Bus 006 Device 003: ID 0bda:5413 Realtek Semiconductor Corp. Dell dock Bus 006 Device 004: ID 413c:b06e Dell Computer Corp. Dell dock Bus 006 Device 005: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 006 Device 006: ID 0bda:402e Realtek Semiconductor Corp. USB Audio Bus 006 Device 007: ID 413c:1010 Dell Computer Corp. USB 2.0 Hub [MTT] Bus 006 Device 008: ID 413c:b06f Dell Computer Corp. Dell dock Bus 006 Device 009: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse Bus 006 Device 010: ID 413c:2110 Dell Computer Corp. Dell Wired Multimedia Keyboard Bus 006 Device 011: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 006 Device 012: ID 0451:3410 Texas Instruments, Inc. TUSB3410 Microcontroller Bus 007 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 007 Device 002: ID 0bda:0487 Realtek Semiconductor Corp. Dell dock Bus 007 Device 003: ID 0bda:0413 Realtek Semiconductor Corp. Dell dock Bus 007 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter ./busybox lsusb | sort Bus 001 Device 001: ID 1d6b:0002 Linux 6.1.0-13-amd64 xhci-hcd xHCI Host Controller Bus 001 Device 002: ID 0bda:5539 CNFHH53Q0324300ACA10 Integrated_Webcam_HD Bus 001 Device 003: ID 0a5c:5842 Broadcom Corp 58200 Bus 001 Device 030: ID 8087:0aaa Bus 002 Device 001: ID 1d6b:0003 Linux 6.1.0-13-amd64 xhci-hcd xHCI Host Controller Bus 003 Device 001: ID 1d6b:0002 Linux 6.1.0-13-amd64 xhci-hcd xHCI Host Controller Bus 004 Device 001: ID 1d6b:0003 Linux 6.1.0-13-amd64 xhci-hcd xHCI Host Controller Bus 005 Device 001: ID 1d6b:0002 Linux 6.1.0-13-amd64 dummy_hcd Dummy host controller Bus 006 Device 001: ID 1d6b:0002 Linux 6.1.0-13-amd64 xhci-hcd xHCI Host Controller Bus 006 Device 002: ID 0bda:5487 Dell Inc. Dell dock Bus 006 Device 003: ID 0bda:5413 Dell Inc. Dell dock Bus 006 Device 004: ID 413c:b06e Dell dock Bus 006 Device 005: ID 0451:8142 Bus 006 Device 006: ID 0bda:402e Generic USB Audio Bus 006 Device 007: ID 413c:1010 USB 2.0 Hub [MTT] Bus 006 Device 008: ID 413c:b06f Dell dock Bus 006 Device 009: ID 046d:c016 Logitech Optical USB Mouse Bus 006 Device 010: ID 413c:2110 Dell Dell Wired Multimedia Keyboard Bus 006 Device 011: ID 0451:8142 Bus 006 Device 012: ID 0451:3410 Texas Instruments TUSB3410 Boot Device Bus 007 Device 001: ID 1d6b:0003 Linux 6.1.0-13-amd64 xhci-hcd xHCI Host Controller Bus 007 Device 002: ID 0bda:0487 Dell Inc. Dell dock Bus 007 Device 003: ID 0bda:0413 Dell Inc. Dell dock Bus 007 Device 004: ID 0bda:8153 Realtek USB 10/100/1000 LAN ./scripts/bloat-o-meter busybox_unstripped{_orig,} function old new delta trim - 101 +101 fileAction 338 431 +93 add_sysfs_prop - 70 +70 open_read_close - 54 +54 read_close - 35 +35 .rodata 3268 3294 +26 ------------------------------------------------------------------------------ (add/remove: 5/0 grow/shrink: 2/0 up/down: 379/0) Total: 379 bytes Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--util-linux/lsusb.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/util-linux/lsusb.c b/util-linux/lsusb.c
index 262c70a1b..0a9e505f4 100644
--- a/util-linux/lsusb.c
+++ b/util-linux/lsusb.c
@@ -24,6 +24,24 @@
#include "libbb.h"
+static char * FAST_FUNC add_sysfs_prop(const char *dir, const char *suffix,
+ char *buf, size_t size)
+{
+ char *filename;
+ ssize_t len;
+
+ filename = concat_path_file(dir, suffix);
+ len = open_read_close(filename, buf, size - 1);
+ free(filename);
+
+ if (len < 0)
+ len = 0;
+
+ buf[len] = '\0';
+
+ return trim(buf);
+}
+
static int FAST_FUNC fileAction(struct recursive_state *state UNUSED_PARAM,
const char *fileName,
struct stat *statbuf UNUSED_PARAM)
@@ -61,7 +79,15 @@ static int FAST_FUNC fileAction(struct recursive_state *state UNUSED_PARAM,
config_close(parser);
if (busnum) {
- printf("Bus %s Device %s: ID %04x:%04x\n", busnum, devnum, product_vid, product_did);
+ char name[256], *p;
+
+ p = add_sysfs_prop(fileName, "/manufacturer", name, sizeof(name) - 1);
+ if (p != name)
+ p = stpcpy(p, " ");
+ add_sysfs_prop(fileName, "/product", p, name + sizeof(name) - p);
+
+ printf("Bus %s Device %s: ID %04x:%04x %s\n", busnum, devnum,
+ product_vid, product_did, name);
free(busnum);
free(devnum);
}