Почему делает “кошку ttyUSB0” не, производят вывод?

Да, если Вы генерируете их на Linux для собственного использования. Вы видите это через file:

> file mylib.so
mylib.so: ELF 64-bit LSB shared object [...]
13
23.03.2014, 15:39
5 ответов
[1178366] Я думаю, что для последовательных устройств нужно установить скорость передачи данных, прежде чем они что-то сделают. Не знаю, как это сделать из командной строки, чтобы [1178772]cat[1178773] заработал, но можно воспользоваться терминальным эмулятором, который об этом позаботится.

Попробуйте [1178774]minicom[1178775] или [1178776]screen[1178777] (т.е. [1178778]screen /dev/ttyUSB0 115200[1178779] - замените 115200 на скорость передачи данных вашего ИК-приемника.)[1178369].

3
27.01.2020, 19:53
[112334] Я, кажется, помню, что USB - это протокол, который требует от компьютера инициировать связь. Он не может говорить сам по себе. Таким образом, драйвер фактически говорит в сыром устройстве, а затем захватывает выход. Однако, это только догадка, я также буду ждать другого ответа, чтобы подтвердить мои суспии. [112335]
-1
27.01.2020, 19:53

Не обращайте внимания на ответ о необходимости инициировать USB-соединение - оно уже было инициировано при подключении устройства.

Если вы просто хотите проверить, работает ли оно, используйте dd if=/dev/ttyUSB0. Если вы хотите действительно прочитать эти символы, вам нужен последовательный терминал. Используйте minicom (CLI, нужна инструкция), picocom (можете разобраться сами), cutecom (хороший графический интерфейс, легко) или screen (CLI, но очень легко). Вам нужно знать скорость передачи данных... 90% это либо 115200, либо 9600, с таким же успехом может быть 57600, 38400 или 19200.

Кстати, какой ресивер вы используете? Не могли бы вы дать нам ссылку на страницу товара или описание?

1
27.01.2020, 19:53

Это может не помочь, но у меня была аналогичная проблема в прошлом. Когда я использую файл устройства для своей мыши напрямую (т. Е. Используя cat / dev / input / by-id / usb- ), я получаю результат, аналогичный тому, который вы получаете с помощью клавиатуры (т. бред). Однако некоторые движения мыши, такие как щелчок левой кнопкой мыши, не генерируют никаких печатных символов, поэтому терминал ничего не показывает.

Конечно, мышь все еще что-то делает, мы просто не можем увидеть это по cat в файле устройства. К счастью, в ядре есть изящная функция под названием usbmon, которая полезна для прослушивания необработанного двоичного вывода USB-устройств. Используя это, мы можем точно увидеть, что происходит, когда мы выполняем (скажем) щелчок левой кнопкой мыши, тогда как выполнение того же самого через / dev часто ничего не показывает.

Опять же, это может не помочь, но вот как использовать usbmon:

  1. Убедитесь, что в вашем ядре включен usbmon. Вывод:
    zcat /proc/config.gz | grep USB_MON
    должен содержать либо = m , либо = y .

  2. Если это было = m , то загрузите модуль с помощью sudo modprobe usbmon

  3. Чтобы убедиться, что все USB-разъемы отображаются в нужном месте, запустите:
    ls / sys / kernel / debug / usb / usbmon
    Вы должны увидеть что-то вроде:
    0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u

Различные номера относятся к разным портам USB, а те, у которых есть 0 впереди, дают совокупный вывод всех USB-портов. Так, например, запуск cat / sys / kernel / debug / usb / usbmon / 0u показывает, что именно делает устройство, даже в тех случаях, когда cat загружает файл в ] / dev ничего не показал.

Независимо от того, решит ли это вашу проблему или нет, это может быть полезно в будущем, поскольку зачастую это более полезный способ прослушивания USB-устройств, чем / dev .

Удачи :)

1
27.01.2020, 19:53

Для меня это было слишком низким бодром. Вывод показал, когда я перенастроил систему (устройство и порт), чтобы использовать 300 вместо 150.

1
27.01.2020, 19:53

Теги

Похожие вопросы