Rss & SiteMap

曙海教育集團(tuán)論壇 http://www.bjzhda.cn

曙海教育集團(tuán)論壇
共2 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標(biāo)題:Linux驅(qū)動開發(fā)學(xué)習(xí)筆記(1):LINUX驅(qū)動版本的hello world

1樓
wangxinxin 發(fā)表于:2010-11-24 11:15:17
 終于下決心好好學(xué)習(xí)LINUX內(nèi)核和驅(qū)動開發(fā)了,不怕千萬人恥笑,勇敢將自己的學(xué)習(xí)過程寫出來:

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

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

3、網(wǎng)上抄錄的Linux驅(qū)動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、寫個(gè)makefile來編譯這個(gè)驅(qū)動:(版本一,最簡單的)
#下面這行是文件Makefile的內(nèi)容,注意M是大寫的
obj-m := hello.o

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

5、再寫另一種Makefile:(版本二:最省事的)
#以下是Makefile文件的內(nèi)容
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

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

6、加載驅(qū)動:
執(zhí)行
insmod ./hello.ko
屏幕上沒反應(yīng)。(因?yàn)槲沂窃赪INDOWS上用遠(yuǎn)程終端連上去的嘛)
OK,先讓時(shí)光倒流,回到加載驅(qū)動以前,先另開一個(gè)窗口,執(zhí)行:
tail -f /var/log/message
然后在原來的窗口里執(zhí)行:
insmod ./hello.ko
哈哈,/var/log/message文件里面看見了盼望已久的hello world!

7、查看驅(qū)動:
lsmod   看見 hello這個(gè)驅(qū)動在其中

8、卸載驅(qū)動:
rmmod hello
看見/var/log/message里顯示了goodbye
共2 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團(tuán)
Powered By 曙海教育集團(tuán) Version 2.2
Processed in .01563 s, 2 queries.
主站蜘蛛池模板: 伊人色综合久久| 大又大粗又爽又黄少妇毛片| 国产剧情一区二区| 久久精品男人影院| 成年美女黄网站色大片图片| 欧美videos欧美同志| 国产精品免费播放| 亚洲人成在线观看| 日本高清视频色wwwwww色| 最近中文字幕高清免费大全8| 国产精品亚洲成在人线| 亚洲免费闲人蜜桃| 日本免费一区二区在线观看| 有夫之妇bd中文字幕| 国产尤物在线视精品在亚洲| 久久精品福利视频| 色聚网久久综合| 成人免费看黄20分钟| 农村老熟妇乱子伦视频| j8又粗又大又长又爽又硬男男| 男人日女人动态视频| 在线免费观看你懂的| 亚洲国产精品线在线观看| 天天综合色天天桴色| 日韩毛片高清在线看| 国产不卡一卡2卡三卡4卡5卡在线| 丰满人妻被黑人中出849| 精品无码国产AV一区二区三区| 好日子在线观看视频大全免费| 免费a级毛片在线播放| 78成人精品电影在线播放 | 亚洲国产欧美另类| 人人澡人人澡人人看| 日本尹人综合香蕉在线观看| 四虎影永久在线高清免费| t66y最新地址| 欧美成人免费午夜全| 国产女人aaa级久久久级| 中文字幕一区二区三区精彩视频| 精品一区二区三区在线观看| 国产黄色片在线播放|