Проблемы с ioctl в драйвере, начиная с ядра 3.8
От: HeaveN Россия  
Дата: 08.09.13 21:18
Оценка:
Привет, All!

Есть система с самосборным ядром. В ней запускается свой драйвер (загружается через init_module динамически в процессе запуска собственного приложения).
Ядро собирается минимальное, практически дефолтной конфигурации. С ядром до 3.8 (3.6, 3.7 и ранее) проблем нет. Начиная с ядра 3.8 драйвер загружается (по логу видно, что probe отрабатывает и release потом при выгрузке тоже), однако вызов ioctl для него возвращает ошибку -ENOTTY. Причем, вызов ioctl-процедуры в драйвере не происходит, т.е. вызов до драйвера не доходит.
После ряда экспериментов было взято ванильное ядро 3.10.10 с моим конфигом, в нем ioctl не заработал. Потом был взят конфиг от Fedora 19 (там тоже 3.10.10), скопирован в каталог с исходниками ядра 3.10.10. С этим ядром драйвер заработал.
Напрашивается вывод, что что-то у меня в конфигурации ядра не хватает для нормальной работы драйвера, но вот чего? Никто не сталкивался?
На всякий случай конфиги: мой и от Федоры.

Заранее спасибо.
Нет такого закона, что человеку летать нельзя...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.