Создание группы атрибутов sysfs и соответствующего устройства в dev /

Я создаю драйвер устройства Linux для карты PCIe. У меня возникла проблема при создании соответствующей записи в sysfs. Сначала я создал группу атрибутов с необходимыми

DEVICE_ATTR(...)
struct attribute *...
struct attribute_group ...

и так далее, а затем я добавил функции store () и show (). Все работало блестяще, и запрошенный класс был создан в

/sys/bus/pci/drivers//module/drivers/pci:/0000:01:00.0

/ Проблема заключалась в том, что в / dev / автоматически не создавалась никакая запись !!

Я потратил несколько часов на поиски в сети, и единственное решение, которое я нашел, - это использовать:

class_create() and then
device_create()

но это создает еще одну запись в / sysfs / devices / virtual / ..., что ИМХО некрасиво и совершенно ненужно.

Я бы хотел иметь свой набор атрибутов И соответствующую запись в / dev /

Как я могу этого добиться? Даже указатель на пример, который делает это, был бы чрезвычайно полезен (я искал его часами, но безуспешно :()

Заранее большое спасибо!!!

Роб

Ответ: Я сделал глупую ошибку, выбрав класс драйвера. Эту проблему решила правильная установка драйвера pci.


person RH6    schedule 19.02.2015    source источник
comment
Вы зарегистрировали свое устройство pci?   -  person RDX    schedule 23.02.2015
comment
Вы имеете в виду с pci_register_driver ()? Да в init ()   -  person RH6    schedule 23.02.2015
comment
Тогда в функции зонда также может быть включено устройство. Если возможно, то можете ли вы поместить журнал или простой код драйвера, которому вы следовали?   -  person RDX    schedule 24.02.2015
comment
@ RH6..Убедитесь, что у вас есть зарегистрированное устройство. Пример .. если тип вашего устройства - символьное устройство, вы должны использовать функцию типа register_chrdev () для регистрации вашего устройства.   -  person RDX    schedule 24.02.2015
comment
Самое первое, что я делаю в init, - это alloc_chrdev_region (). В тесте у меня есть pci_enable_device () на pci_dev, который передается в качестве параметра probe (). (P.S .: Спасибо за ответы!)   -  person RH6    schedule 24.02.2015


Ответы (1)


Вы должны взглянуть на это:

http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/

В вашем случае следуйте примеру водителя автобуса.

person Raulp    schedule 24.08.2016
comment
Я решил проблему - моя кратковременная память не позволяет мне вспомнить, как: S, но я решил это! В любом случае спасибо за ответ! - person RH6; 24.08.2016