нужен совет libudev - PullRequest
       19

нужен совет libudev

3 голосов
/ 15 сентября 2011

Я приступаю к программному проекту, который должен будет подтвердить идентичность устройства съемного носителя (например, флэш-накопителей USB), прежде чем он продолжит делать кучу других интересных вещей.

Некоторые мои друзья указали мне на использование серийного номера, и предварительное тестирование с помощью команды udevadm показывает, что это должно работать. Я сделал некоторые дополнительные проверки, и оказалось, что если я смогу заставить программное обеспечение работать с libudev, то оно должно (минимально) скомпилироваться на Ubuntu, Slackware и Gentoo, что было бы действительно хорошим преимуществом.

Поэтому я использовал bing, чтобы найти учебник и получил сайт Signal 11 (http://www.signal11.us/oss/udev/) Это очень хорошо написанное учебное пособие. На самом деле, кажется, там есть все, что мне нужно. Я загружаю код. Исправьте пару платформо-зависимых ошибки, а затем скомпилировать. BOOM! Gcc компилируется без ошибок. Пока все хорошо.

Но когда я пытаюсь запустить его, он обнаруживает пару ошибок, и я понимаю, что мне нужно прочитать еще несколько руководств, чтобы я мог достаточно хорошо понять libudev, чтобы исправить ошибки и найти работающее программное обеспечение. Проблема заключается в том, что на самом деле нет других учебных пособий (которые я могу найти), а сайт kernel.org, который является (единственным известным?) Сайтом документации библиотеки, недоступен после недавнего взлома сервера.

Я подумал о том, чтобы просто выпустить директивы udevadm для system () и затем проанализировать результаты, но это действительно хакерский способ собрать программное обеспечение вместе, и я планирую выпустить его для сообщества, когда закончу писать.

Так как же мне лучше узнать libudev ??

1 Ответ

1 голос
/ 15 сентября 2011

libudev - довольно простая библиотека. После прочтения библиотеки, которую вы упомянули, и использования документации по API (сайт должен скоро появиться), я смог получить то, что хотел. udevadm очень полезен, после выдачи # udevadm info --query=all --name=/path/to/dev вы получите всю информацию, которую udev имеет об этом устройстве, и, что более важно, эти параметры используются в функциях свойств (например, udev_device_get_property_value(device, "ID_VENDOR")). Так что лучший способ изучить libudev - начать использовать его с помощью учебного пособия signal11, документации API и информации udevadm.

РЕДАКТИРОВАТЬ: libudev в настоящее время является частью systemd - документация доступна в виде справочных страниц - https://www.freedesktop.org/software/systemd/man/libudev.html#

...