以文本方式查看主題

-  曙海教育集團論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  Linux驅動開發  (http://www.scb-ycwb.com/bbs/list.asp?boardid=33)
----  Linux驅動開發學習筆記(1):LINUX驅動版本的hello world  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=33&id=1728)

--  作者:wangxinxin
--  發布時間:2010-11-24 11:15:17
--  Linux驅動開發學習筆記(1):LINUX驅動版本的hello world
 終于下決心好好學習LINUX內核和驅動開發了,不怕千萬人恥笑,勇敢將自己的學習過程寫出來:

1、關于目錄
    /lib/modules/2.6.9-42.ELsmp/build/   這個是內核源碼所在的目錄
    一般使用這樣的命令進入這個目錄:cd /lib/modules/$(uname -r)/build/
   這個目錄實際上指向了:/usr/src/kernels/2.6.9-42.EL-smp-i686

2、編譯驅動所使用的makefile
    實際上編譯驅動的時候是使用預先提供的一個makefile的,位置在:
/lib/modules/$(uname -r)/build/Makefile
    注意:M是大寫的

3、網上抄錄的Linux驅動Hello world的源碼:
// hello.c
#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "hello world!\\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "goodbye!\\n");
}

module_init(hello_init);
module_exit(hello_exit);

4、寫個makefile來編譯這個驅動:(版本一,最簡單的)
#下面這行是文件Makefile的內容,注意M是大寫的
obj-m := hello.o

把hello.c和Makefile保存在同一目錄,然后執行:
make -C /lib/modules/`uname -r`/build SUBDIRS=$PWD modules
這樣驅動就編譯好了,成果是hello.ko文件。
注意:makefile一定要寫成Makefile,如果寫成makefile就編譯不過。(折騰啊,就這一步耗了N多時間)

5、再寫另一種Makefile:(版本二:最省事的)
#以下是Makefile文件的內容
obj-m := hello.o
KERNEL_DIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
    make -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
clean:
    rm *.o *.ko

然后執行:make就編譯成功了,命令行不再加參數,很省事。
注意:all: 和clean:下面的行,前面是一個TAB鍵

6、加載驅動:
執行
insmod ./hello.ko
屏幕上沒反應。(因為我是在WINDOWS上用遠程終端連上去的嘛)
OK,先讓時光倒流,回到加載驅動以前,先另開一個窗口,執行:
tail -f /var/log/message
然后在原來的窗口里執行:
insmod ./hello.ko
哈哈,/var/log/message文件里面看見了盼望已久的hello world!

7、查看驅動:
lsmod   看見 hello這個驅動在其中

8、卸載驅動:
rmmod hello
看見/var/log/message里顯示了goodbye

主站蜘蛛池模板: 中文字幕精品一区二区2021年| 大伊香蕉在线精品不卡视频 | 国产三级在线观看视频| 五月亭亭免费高清在线| 四虎永久在线观看视频精品 | 国产成人精品亚洲2020| 最近日本免费观看直播| 国产精品亚洲欧美日韩久久| 亚洲国产成人久久一区久久| 三上悠亚在线网站| 杨晨晨脱得一二净无内裤全身| 国产的一级毛片完整| 亚洲AV无码一区二区三区网站 | 今天免费中文字幕视频| h无遮挡男女激烈动态图| 狠狠色成人综合首页| 在线观看91精品国产入口| 亚洲日韩小电影在线观看| 手机看片一区二区| 最新中文字幕在线观看| 国产在线高清一级毛片| 久久一区二区明星换脸| 美女下面直流白浆视频| 女人的精水喷出来视频| 亚洲热线99精品视频| xxxx性bbbb欧美野外| 日韩AV无码久久精品免费| 国产91精品一区二区视色| 一个人看的www免费在线视频| 激情啪啪精品一区二区| 国产精品嫩草影院在线看| 久久精品韩国三级| 色yeye香蕉凹凸视频在线观看 | 国产精品真实对白精彩久久| 亚洲va无码va在线va天堂| 隔壁女邻居在线观看| 成人免费的性色视频| 交换韩国伦理片| 亚洲人成网男女大片在线播放| 日本动漫黑暗圣经| 免费大片黄国产在线观看|