曙海教育集團論壇Linux專區Linux驅動開發 → Linux驅動開發學習筆記(1):LINUX驅動版本的hello world


  共有9541人關注過本帖樹形打印

主題:Linux驅動開發學習筆記(1):LINUX驅動版本的hello world

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


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
Linux驅動開發學習筆記(1):LINUX驅動版本的hello world  發帖心情 Post By:2010-11-24 11:15:17

 終于下決心好好學習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

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

返回版面帖子列表

Linux驅動開發學習筆記(1):LINUX驅動版本的hello world








簽名
主站蜘蛛池模板: 国产aa免费视频| 日本一卡精品视频免费| 国产精品视频久久| 亚洲第一永久在线观看| 一级特黄录像在线观看| 美女bbbb精品视频| 无码超乳爆乳中文字幕久久| 国产亚洲精久久久久久无码| 国产成人精品999在线观看| 亚洲人成在线播放网站| 一级特黄aaa大片免费看| 红楼遗梦成人h文完整版| 成年女人免费v片| 周妍希美乳三点尽露四季图片| 中文字幕一区二区三区久久网站 | 免费黄色网址在线播放| 一级毛片恃级毛片直播| 秋霞理论最新三级理论最| 好妈妈5高清中字在线观看| 国产大片中文字幕在线观看| 久久精品人人做人人爽电影蜜月| 高清中文字幕视频在线播| 日本护士XXXXHD少妇| 国产一卡2卡3卡4卡无卡免费视频 国产一卡2卡3卡4卡网站免费 | 国产交换配乱吟播放免费| 久久久久99人妻一区二区三区| 色综合久久久无码中文字幕| 成人au免费视频影院| 伊人狼人综合网| 67194熟妇在线观看线路1| 男生和女生一起差差的视频30分| 天堂а√8在线最新版在线| 国产99久久久久久免费看| 丁香婷婷在线观看| 边吃奶边摸下面| 成人免费毛片观看| 人人添人人澡人人澡人人人爽 | 国产国语在线播放视频| 中文字幕永久视频| 男人边吃奶边激烈摸下面的视频| 国产美女一级做a爱视频|