LINUX.ORG.RU

[kernel dev] Major / minor numbers


0

0

Как правильно в драйвере всё сделать, чтобы создать файл устройства с правильным major и minor. alloc_chrdev лишь выделяет номер для устройства и его можно прочитать в /proc/devices . В настоящее время rc-скрипт использует sed для получения номера из proc. Но хочется чего-то лучшего... Это вроде как-то через sysfs делается... где можно пример этого дела глянуть?

anonymous

в документации к ядру был файлик про эту нумерацию. точно не помню как называется, но там были расписаны все мажорные номера для типов устройств. не знаю как сейчас, ведь уже везде udev используется и наверняка такой подход в нумерации изменился. а что в самом udev написано? лет так 8 назад, когда я писал под ядро, у меня не возникло вопроса как это сделать :)

Deleted
()
Ответ на: комментарий от Deleted

Если я всё правильно понимаю, то udev-демон берёт информацию о номерах из sysfs. В самом же драйвере нужно сообщить sysfs об этом устройстве, как-то там тип выбрать и т.д. Так вот мне примерчик бы - как это на стороне драйвера делается - чтобы ясно и без излишеств..

anonymous
()
Ответ на: комментарий от anonymous

> Так вот мне примерчик бы - как это на стороне драйвера делается - чтобы ясно и без излишеств..

Глянь в исходниках ядра драйвер для какого-нибудь serial converter'а

mv ★★★★★
()
Ответ на: комментарий от mv

> Глянь в исходниках ядра драйвер для какого-нибудь serial converter'а

Ткните пожалуйста носом, а то там много чего есть...

anonymous
()
Ответ на: комментарий от anonymous

drivers/serial/21285.c

Сам драйвер устройства в /dev не создаёт, btw

mv ★★★★★
()
Ответ на: комментарий от mv

Спасибо, попробую найти. В LDD насколько я помню, описывается работа с kobject и иже с ним, но как-то не очень понятно.. Про то что не драйвера это дело - файлы создавать, я знаю, но вот как работать с sysfs - пока не разобрался... А исходник посмотрю :)

anonymous
()

отнаследуй драйвер от misc_device, он сам создаст /dev/ ноду. Если не нравится misc, посмотри в исходник (drivers/char/misc.c) - там есть вызов MKDEV, используй его напрямую.

jr_A
()
Ответ на: комментарий от jr_A

Спасибо большое, вроде то, что нужно :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.