Чтобы получить имя устройства в lsusb, вы можете использовать различные методы. Вот несколько примеров на разных языках программирования:
-
Метод с использованием Python:
import subprocess def get_device_name(): output = subprocess.check_output(['lsusb']).decode('utf-8') lines = output.split('\n') device_names = [] for line in lines: parts = line.split() if len(parts) >= 7: device_name = ' '.join(parts[6:]) device_names.append(device_name) return device_names device_names = get_device_name() for name in device_names: print(name) -
Метод с использованием Bash:
lsusb | awk '{print substr($0, index($0,$7))}' -
Метод с использованием C++ и библиотеки libusb:
#include <iostream> #include <libusb-1.0/libusb.h> int main() { libusb_device devices; libusb_context *context = NULL; ssize_t count = 0; libusb_init(&context); count = libusb_get_device_list(context, &devices); for (ssize_t i = 0; i < count; i++) { libusb_device *device = devices[i]; struct libusb_device_descriptor desc; libusb_get_device_descriptor(device, &desc); char device_name[256]; libusb_get_string_descriptor_ascii( libusb_open_device_with_vid_pid(context, desc.idVendor, desc.idProduct), desc.iProduct, reinterpret_cast<unsigned char*>(device_name), sizeof(device_name) ); std::cout << device_name << std::endl; } libusb_free_device_list(devices, 1); libusb_exit(context); return 0; }
Эти методы предоставят вам имена устройств, перечисленные в lsusb. Вы можете выбрать тот, который соответствует вашим предпочтениям в языке программирования или среде.