Change / append USB device name for UNIX
Задача простая, может кто поможет реализовать любыми доступными способами.
нужен любой (ЛЮБОЙ) usb девайс: флешка, плеер, ардуина, STM32F103C8T6 - что угодно, где можно переназначить имя, которое обозначается в USB devices в линуксе.
Можно оставить название производителя устройства, если есть возможность добавить свою строку (text_text_000000) - до 20 символов всего в строчке / слове.
Много дней много чего перепробовал, все впустую. Рад услышать хоть что-нибудь полезное.
Ответы (1 шт):
Для STM32F103C8T6 - единственное что можно запрограммировать из списка выше.
Открой любой проект hello world с USB для blue pill/black pill. Там можешь прописать имя вендора, имя девайса и серийник устройства.
Имя и производитель будут видны в udev, можно вычитывать в /sys/class/hidraw/hidraw*/device/uevent
Например на фреймворке opencm3 из примера кода
....
static const char * USER_HID_usb_strings[] = {
"TeenyUSB",
"TeenyUSB User HID DEMO",
"TUSB123456"
};
....
usbd_device * USER_HID_usb_init(const usbd_driver *driver,
ep_cb_t ep_in_cb,
ep_cb_t ep_out_cb)
{
usbd_device *dev = usbd_init(driver, &USER_HID_dev_desc, USER_HID_config,
USER_HID_usb_strings, ARR_SIZE(USER_HID_usb_strings),
USER_HID_control_buffer, sizeof(USER_HID_control_buffer));
....
HID - это тип устройства которое работает без особых драйверов. Тут пока даже кодить не нужно, просто скопировать пример инициализации усб
Эту штуку можно подделать. Чтоб устроить надежную аппаратную защиту уровня hasp нужно описать функцию чтения-записи hidraw. например посылаешь в hidraw какую-то соль и хешированый пароль, в ответ устройство отдает солёный серийник.
Вот файл полностью (осторожно - он шевелит мышкой)
uevent
DRIVER=hid-generic
HID_ID=0003:00000483:00005710
HID_NAME=Black Sphere Technologies HID Demo
HID_PHYS=usb-0000:07:00.3-1.3/input0
HID_UNIQ=DEMO
MODALIAS=hid:b0003g0001v00000483p00005710
dmesg
[852875.369677] usb 3-1.3: New USB device found, idVendor=0483, idProduct=5710, bcdDevice= 2.00
[852875.369683] usb 3-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[852875.369686] usb 3-1.3: Product: HID Demo
[852875.369687] usb 3-1.3: Manufacturer: Black Sphere Technologies
[852875.369689] usb 3-1.3: SerialNumber: DEMO
[852875.426872] input: Black Sphere Technologies HID Demo as /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb3/3-1/3-1.3/3-1.3:1.0/0003:0483:5710.000A/input/input24
[852875.427029] hid-generic 0003:0483:5710.000A: input,hidraw4: USB HID v1.00 Mouse [Black Sphere Technologies HID Demo] on usb-0000:07:00.3-1.3/input0