Linux module 驅動程式模組範例

git 範例程式

Makefile 


hello.c


---
執行 

$ sudo insmod hello.ko 
$ dmesg
   ....
   [    239.411976] Hello, world

$modinfo hello.ko



$sudo rmmod hello
   ....
   [    239.411976] Hello, world
   [   1110.694768] GOOdbye

$objdump -DS hello.ko  產生 assembly 檔案

---
說明 

printk

级别
描述
KERN_EMERG
紧急情况,系统可能会崩溃
KERN_ALERT
必须立即响应
KERN_CRIT
临界情况
KERN_ERR
错误信息
KERN_WARNING
警告信息
KERN_NOTICE
普通的但可能需要注意的信息
KERN_INFO
提示性信息
KERN_DEBUG
调试信息

#define pr_debug(fmt,arg...) /
printk(KERN_DEBUG fmt,##arg)

#define pr_info(fmt,arg...) /
printk(KERN_INFO fmt,##arg)

early_printk : 在 linux 系統還沒起來前, 先設定 uart 串口. 

# echo 8 > /proc/sys/kernel/printk

--


留言

熱門文章