2013年8月16日 星期五

Linux Kernel Module 1 - 第一支Hello Irene Module

1. 先查詢自己的Linux version
    --> 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 
            





沒有留言:

張貼留言

全國推廣動物認領養平台串聯貼紙

全國推廣動物認領養平台串聯貼紙