printk в драйвер

Наистина съм нов в програмирането на модули на Linux. Трябва да разбера как мога да направя някои настройки на драйвера ath9k в linux. Най-накрая получих съвместимия безжичен изходен код на ath9k за компилир в ubuntu 11.04 и се опитвах да си играя с кода. Опитах се да използвам printk, за да видя какво се случва. Първо поставих printk във файла init.c, съобщението, което отпечатах, се показва, когато използвам dmesg в терминала. Въпреки това, когато се опитах да използвам същия printk в друг файл като rc.c, той изобщо не се показва. Чудя се защо е така? И има ли някакъв друг начин, по който мога да регистрирам информация от кода, подобен на fprintf. Това, от което се нуждая, е да извлека по някакъв начин заглавката на пакета от драйвера.

Благодаря ви С най-добри пожелания.


person radius0014    schedule 28.09.2011    source източник
comment
Странно. Тази част от rc.c наистина ли беше изпълнена? Друг въпрос е кое ниво на журнал използвате в printk? KERN_INFO, KERN_WARNING или каквото и да е друго?   -  person Eugene    schedule 04.10.2011
comment
Опитах го с KERN_INFO лог ниво. Сложих го в доста функции в rc.c, но не съм 100% сигурен дали те са стартирани. Ще опитам да видя дали ще опитам printk на друг файл. Аз също ще прочета за procfs и ще го изпробвам, както предложи Mellowcandle. Благодаря ти   -  person radius0014    schedule 05.10.2011


Отговори (1)


прочетете за proc fs, това е страхотна рамка за извличане на данни от драйвери на устройства. след като сте регистрирали възел на устройство като proc fs, можете да четете от него. след като функцията за четене бъде извикана, функция за обратно извикване, която сте дефинирали, създава изхода. това е отличен начин за извличане на данни от устройството.

има и два други метода, единият е sysfs, можете да го потърсите в Google. и второ, ако устройството е char устройство, можете да приложите функция ioctrl, която връща информацията, от която се нуждаете.

person stdcall    schedule 29.09.2011
comment
Бих добавил, че човек може също да създаде файл в debugfs и да изхвърли информацията там. - person Eugene; 04.10.2011
comment
Благодаря ви много за отговора. Ще потърся procfs и тогава ще го пробвам. Съжалявам за късния отговор. Също така не съм запознат със създаването на файл в debugfs, но ще прочета и ще го изпробвам. Благодаря ти много. - person radius0014; 05.10.2011