--> uname -r
我的版本是 Linux-2.6.18
2. 下載Linux Kernel Source Code (壓縮檔放在/root底下)
選擇 linux-2.6.18.tar.bz2
3. 把 source code放在 /usr/src/kernels/ 目錄下
--> tar -jxvf linux-2.6.18.tar.bz2 -C /usr/src/kernels/
此時kernels下會有一個linex-2.6.18資料夾
4.進入kernel 目錄
--> cd /usr/src/kernels/linux-2.6.18
5. 建立存放module的資料夾
--> mkdir hello
6.開始寫內部程式
(1) hello-1.c
--> vim hello-1.c
--> i (編輯模式)
-->按 Esc 回一般模式
--> :wq (儲存並離開)
(2) Makefile
--> vim Makefile
7 --> make
make 之後會產生 hello-1.ko
8 --> insmod ./hello-1.ko
將hello-1.ko 加入至kernel module中
可以到 /proc/modules/中看到hello-1 module正在kernel中
此時利用 cat /var/log/messages 到messages中會看到 Hello Irene
9. --> rmmod ./hello-1.ko
將hello-1 module移除
此時 /proc/modules/中就看不見 hello-1 module了
而到 /var/log/messages/ 會看到 Goodbye Irene
P.S 想要搜尋Hello與 Goodbye,可使用grep 指令
--> cat /var/log/messages | grep Hello
--> cat /var/log/messages | grep Goodbye
第一次寫kernel的東西~我連linux指令都還不太熟悉@@
希望繼續加油囉!
-------------------------------------------------------------------
參考 : 鳥哥的 Linux私房菜 第三版 ch22,ch26
The Linux Module Programming Guide
沒有留言:
張貼留言