久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團(tuán)論壇Linux專區(qū)Linux驅(qū)動(dòng)開發(fā) → Linux驅(qū)動(dòng)開發(fā)學(xué)習(xí)筆記(1):LINUX驅(qū)動(dòng)版本的hello world


  共有8864人關(guān)注過本帖樹形打印

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

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
Linux驅(qū)動(dòng)開發(fā)學(xué)習(xí)筆記(1):LINUX驅(qū)動(dòng)版本的hello world  發(fā)帖心情 Post By:2010-11-24 11:15:17

 終于下決心好好學(xué)習(xí)LINUX內(nèi)核和驅(qū)動(dòng)開發(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ū)動(dòng)所使用的makefile
    實(shí)際上編譯驅(qū)動(dòng)的時(shí)候是使用預(yù)先提供的一個(gè)makefile的,位置在:
/lib/modules/$(uname -r)/build/Makefile
    注意:M是大寫的

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

把hello.c和Makefile保存在同一目錄,然后執(zhí)行:
make -C /lib/modules/`uname -r`/build SUBDIRS=$PWD modules
這樣驅(qū)動(dòng)就編譯好了,成果是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ū)動(dòng):
執(zhí)行
insmod ./hello.ko
屏幕上沒反應(yīng)。(因?yàn)槲沂窃赪INDOWS上用遠(yuǎn)程終端連上去的嘛)
OK,先讓時(shí)光倒流,回到加載驅(qū)動(dòng)以前,先另開一個(gè)窗口,執(zhí)行:
tail -f /var/log/message
然后在原來的窗口里執(zhí)行:
insmod ./hello.ko
哈哈,/var/log/message文件里面看見了盼望已久的hello world!

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

8、卸載驅(qū)動(dòng):
rmmod hello
看見/var/log/message里顯示了goodbye

支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

Linux驅(qū)動(dòng)開發(fā)學(xué)習(xí)筆記(1):LINUX驅(qū)動(dòng)版本的hello world








簽名
主站蜘蛛池模板: 一级一毛片a级毛片欧美 | 成人免费视频日本 | 91伊人影院 | 欧美日韩精品国产一区在线 | 日本韩国三级在线观看 | 亚洲欧美另类视频 | 国产成人18 | 曰本人做爰大片免费观看一 | 国产一区二区三区在线观看视频 | 精品亚洲视频在线观看 | 亚洲国产欧美自拍 | 国产精品女在线观看 | 久久精品国产一区二区三区 | 91精品一区国产高清在线 | ffyybb免费福利视频 | 亚洲综合一区二区精品久久 | 国产成人亚洲合集青青草原精品 | 99亚洲精品视频 | 亚洲综合伊人色一区 | 日韩午夜片 | 欧美日韩精品乱国产538 | 美国免费毛片 | 国产主播福利精品一区二区 | 一区视频在线播放 | 日韩亚洲国产综合久久久 | 国产成人盗拍精品免费视频 | 奶交性视频欧美 | 精品久久久久久久久久香蕉 | 色www永久免费网站国产 | 亚洲综合综合在线 | 泰国情欲片寂寞的寡妇在线观看 | xxxww在线播放 | 久久日本三级韩国三级 | 六月丁香久久丫 | 亚洲国产成人久久精品图片 | 色悠久久久久综合网伊人男男 | 亚洲三级在线视频 | 在线中文字幕亚洲 | 天堂素人搭讪系列嫩模在线观看 | 黄色网点 | 自拍自录videosfree自拍自录 |