Как получить информацию об устройстве USB в программировании ядра?

Я новичок в программировании ядра, и у меня есть значение dev_t для USB-устройства.

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

Я наткнулся на библиотеку libusb, однако, насколько мне известно, она используется в пользовательском пространстве. Можно ли также использовать libusb в пространстве ядра, как мое требование? Если возможно, как импортировать и настроить libusb, чтобы я мог скомпилировать ядро?


person upInCloud    schedule 16.02.2013    source источник
comment
Как вы планируете писать код, работающий в пространстве ядра, если не путем написания модуля ядра?   -  person    schedule 16.02.2013
comment
добавив код в исходный код ядра и скомпилировав его как пользовательское ядро...   -  person upInCloud    schedule 16.02.2013
comment
Заголовок stackoverflow.com/questions/14722392/   -  person Jeyaram    schedule 19.02.2013
comment
Я настоятельно рекомендую использовать загружаемые модули ядра, чтобы вам не пришлось перекомпилировать все ядро ​​каждый раз, когда вы редактируете свой код. Делая это, ваш код попадает прямо в ядро ​​​​Linux, как будто это надстройка.   -  person Varda Elentári    schedule 24.02.2013


Ответы (1)


Для этой задачи лучше написать загружаемый модуль ядра. Каждый раз, когда вы находите ошибку, вам просто нужно скомпилировать модуль для вашего ядра и загрузить его. В ядре есть определенная структура для USB, используйте API, предоставляемые ядром, чтобы делать то, что вы ищете. За исключением того, что libusb является библиотекой пользовательского пространства, и нет смысла использовать ее внутри ядра. В пользовательском пространстве вы также можете получить доступ к информации, связанной с USB, используя procfs/sysfs.

person flying-high    schedule 07.03.2013