Программы для Linux, которые общаются с устройствами - PullRequest
3 голосов
/ 03 мая 2011

Я умею программировать, но я не очень разбираюсь в компьютерах. Я использую Ubuntu Linux, и я понимаю (на первый взгляд), какие файлы устройств. То, что я хотел бы сделать, это написать программу, которая принимает необработанный ввод с устройства, например, мышь, клавиатура, веб-камера или микрофон. Я понятия не имею, с чего начать. Есть книга под названием «Драйверы устройств Linux», но я не знаю, актуальна ли вся информация, содержащаяся в этой толстой книге. Я не собираюсь писать драйверы устройств, хотя, если это требуется для того, что я хочу сделать, я сделаю это. Но скорее я просто хочу написать C ++ или (предпочтительно) программу на Python, которая получает необработанный ввод с устройств и выполняет другие действия с необработанным вводом. Может кто-нибудь сказать, пожалуйста, с чего начать? Какие учебники или книги я должен прочитать?

Я просто открываю файлы устройств и читаю с них? Я мог бы попробовать, но тут возникает другая проблема. Я не знаю, какое устройство находится в каталоге / dev /! У меня есть воздушная мышь Logitec, которая подключена через Bluetooth к приемнику, который, в свою очередь, подключен к моему компьютеру через USB. Но какой файл устройства мне открыть, если я хочу получать необработанные данные от моей мыши? Будет ли это файл устройства USB или файл устройства мыши? В моем каталоге / dev / есть много файлов устройств, которые могут соответствовать моей мыши, какой это? У меня есть / dev / input / mouse0, / dev / input / mouse1 и т. Д., И / dev / input / mice, и / dev / input / event0, / dev / input / event1 и т. Д. Их так много? Какой из них правильный? Как я узнаю?

Извините, но я просто очень расстроен и смущен тем, с чего начать. Любая помощь будет высоко ценится.

Ответы [ 3 ]

4 голосов
/ 09 мая 2011

Благодаря Ниндзялю за его / ее ответ, не было ни одного подробного ответа, который действительно решил бы мою проблему.Это понятно, конечно, потому что вопрос был не очень хорошо сформулирован, и в любом случае это необычная вещь для моего впечатления.

Так что после некоторого исследования я собираюсь ответить на мою собственную проблему в надежде, чтоесли кому-то еще будет интересно или возникнут те же проблемы, что и у меня, он может получить ответ здесь.

С чего начать?Я нашел книгу под названием Advanced Linux Programming .На мой взгляд, это удивительная книга, которую можно скачать по лицензии Open Publication License.Глава 6 «Устройства» особенно актуальна для этой проблемы.Тем не менее, все главы рекомендуются, потому что все они очень информативны и отлично читаются, если вы такой же фанат, как я.

Какое устройство и какое?Вы найдете эту информацию в вышеупомянутой книге.Короче говоря, существуют вещи, называемые «старшими номерами» и «младшими номерами», связанными с каждым устройством.Вы можете проверить их, запустив ls -l в файлах устройства.Они там, где должны быть размеры обычных файлов.Эти цифры говорят о том, с каким устройством связан файл устройства и каким драйвером он пользуется.Чтобы проверить, что именно означают эти цифры, вы можете обратиться к Список устройств Linux .На данный момент я еще не знаю, как проверить, что они отключены, на самой машине с Linux, но может быть, есть способ.Помните, что некоторые файлы в / dev / - это не файлы фактических устройств, а символические ссылки, например / dev / dvd.Существуют всевозможные специальные файлы, которые делают особые вещи, просто прочитайте книгу!

1 голос
/ 18 февраля 2014

Возможно, мышь / клавиатура / камера, которую вы используете, уже имеют драйвер для Linux. Поэтому, как только оборудование обнаружено, Linux автоматически загрузит драйверы для этого оборудования. Чтобы посмотреть, какой файл устройства связан с каким устройством. Внимательно изучите каталог / sys и записи команд dmesg, вы быстро узнаете, какой узел устройства был создан недавно после установки оборудования. Наряду с этим вы также можете проверить файл «cat / proc / devices», чтобы узнать, какой Major / Minor no. соответствует файлу вашего устройства, или вы можете искать какие-либо обновления в этом файле, когда вы вставляете оборудование.

1 голос
/ 07 мая 2011

/dev/input/event* говорить по протоколу evdev. /dev/input/mouse* возможно, расскажу о каком-либо варианте протокола PS / 2.

...