Доброго времени суток. Начну пожалуй с того что у меня система Slackware 9.1
на ядре 2.4.22 Собственно чего надобно. При перекомпиляции ядра я поставил
поддержку devfs. Проблема вся в том что при использовании функции devfs_register
она у меня нормально не отрабатывает. По русски данная функция должна в
файловой системе /dev/ создать нужный файл. Я данную функцию вызываю при
загрузке модуля. Кто работал с этой функцией подскажите пожайлуйсто, т.к.
хочется чтоб ядро само создавало нужный файл и при выгрузке модуля его(файл) уничтожала
и не сильно хочется к этому вопросу прикручивать скрипты для создания того-же файла устройств. Зарание благодарен.
Да еще одно, просто забыл уточнить такая тема как CONFIG_DEVFS_FS в ядре включена,
во всяком случае в конфиге проставлено так: CONFIG_DEVFS_FS=y и ядро скомпилировано
с этими опциями. А что самое интересное так это то что ядро на код
#ifdef CONFIG_DEVFS_FS
printk(KERN_ALERT"CONFIG_DEVFS_FS\n");
#else
printk(KERN_ALERT"No CONFIG_DEVFS_FS");
Ядро почему-то орет что No CONFIG_DEVFS_FS если кто знает в чем проблема или кто-то
сталкивался с таким маразмом поделитесь знаниями.
Зарание благодарен
>Ядро почему-то орет что No CONFIG_DEVFS_FS если кто знает в чем проблема
>или кто-тоТы поди в ручную конфиг менял? дело в том что когда меняешь в конфиге долже еще генерироваться инклюд файл с конфигурационными параметрами, дефайнами всякими.
Вот когда ты изменил в конфиге, а файл не перегенерировал. вот у тебя и не работает.
А как перегенерировать в ручную я не знаю, не смотрел, но думаю в маке файле написано.
autoconf.h в директории linuxвот посмотрел - никак ;-)) там скрипт Configure(ну в зависимости от того что ты выбрал есть еще Menuconfig или tk шный скрипт) он этот файл и создает.
Дык дело все в том что руками ничего не менял и не правил. Пользовался menuconfig
И весь прикол в том что данная переменная должна быть инициализированна в ядре
ну по логике вещей. А ядро другого мнения. Выход-то я нашел. Ну как временный,
просто написал скрипт загрузки модуля. Скрипт смотрит /proc/devices ну и
потом собственно создает филе устройств с нужными major и minor. Но все равно это не дело.
Если ядро может это делать само в коде драйвера. Но все равно спасибо за подсказку. Может
еще какие-то мнения есть. Мож я что-то не доглядел
>Дык дело все в том что руками ничего не менял и не
>правил. Пользовался menuconfig
ну иногда видно не пользуешься ;-)). Извини, я в чудеса не верю ;-))
>И весь прикол в том что данная переменная должна быть инициализированна в
>ядре
Что значит "в ядре"??>ну по логике вещей. А ядро другого мнения. Выход-то я нашел. Ну
>как временный,
>просто написал скрипт загрузки модуля. Скрипт смотрит /proc/devices ну и
ну если у тебя драйвер devfs сделан в виде модуля то его надо сначала
загружать modprobe devfs>потом собственно создает филе устройств с нужными major и minor. Но все
>равно это не дело.
это я вообще не понимаю зачем ты это делаешь?
использовать devfs надо монтируя файловую систему! mount -t devfs none /dev
короче там в доке все есть смотри в своих сырцах ядра.>Если ядро может это делать само в коде драйвера. Но все равно
>спасибо за подсказку. Может
>еще какие-то мнения есть. Мож я что-то не доглядел
>
>>Ядро почему-то орет что No CONFIG_DEVFS_FS если кто знает в чем проблема
>>или кто-то
>
>Ты поди в ручную конфиг менял? дело в том что когда меняешь
>в конфиге долже еще генерироваться инклюд файл с конфигурационными параметрами, дефайнами
>всякими.
>Вот когда ты изменил в конфиге, а файл не перегенерировал. вот у
>тебя и не работает.
>А как перегенерировать в ручную я не знаю, не смотрел, но думаю
>в маке файле написано.
>autoconf.h в директории linux
>
>вот посмотрел - никак ;-)) там скрипт Configure(ну в зависимости от того
>что ты выбрал есть еще Menuconfig или tk шный скрипт) он
>этот файл и создает.как это "никак"? в 2.4 "make oldconfig" точно было еще, в 2.6 уже не знаю. но вопрос-то про 2.4!?!
\^P^/
>как это "никак"? в 2.4 "make oldconfig" точно было еще, в 2.6
>уже не знаю. но вопрос-то про 2.4!?!
>
>\^P^/ааа, буду знать. а то я его не смотрел.