linux 内核树生成配置,Linux驱动开发环境配置内核源码树构造.doc

Linux驱动开发环境配置内核源码树构造

Linux驱动开发环境配置(内核源码树构造)

初次接触Linux驱动程序开发,买了一本《Linux设备驱动程序》,第一件事当然就是构建开发环境了!!!它上面有一个Hello World的列子://hello.c#include #include 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, cruel world/n");}module_init(hello_init);module_exit(hello_exit);下面我们来看怎么让它跑起来:驱动程序和用户程序可不一样,它是作为一个模块连接到内核模块来运行的,运行在内核空间里面。所以要运行我们自己构造的模块,需要自己的系统已经配置好内核树,然后把目标模块和内核树连接起来运行!但是我们安装的Linux没有源码(至少我的是这样),更不要说已经编译好的内核树了~(1)下载Linux源码:首先查看可以下载的Linux内核源码包root@jiq-desktop:~#apt-cache search linux-source

然后选定要下载的源码包:root@jiq-desktop:~#apt-get install linux-source-2.6.22

?下载完成后,在/usr/src下,文件名为:linux-source-2.6.32.tar.bz2,是一个压缩包,然后用命令解压即可获得Linux内核的源代码:root@jiq-desktop:/usr/src#tar jxvf linux-source-2.6.32.tar.bz2

?

?

(2)然后在Linux内核源码目录/usr/src/linux-source-2.6.32目录下面用老的方法配置好Linux内核:root@jiq-desktop:/usr/src/linux-source-2.6.32#make oldconfig

(3)然后执行:root@jiq-desktop:/usr/src/linux-source-2.6.32#make bzImage这个过程大概需要一个小时左右。。。执行完成后会在当前目录下面生成一个文件vmlinux.o

(4)然后编译模块:root@jiq-desktop:/usr/src/linux-source-2.6.32#make modules这个过程又是大概一个小时。。。??

?

(5)然后便可以安装模块了:root@jiq-desktop:/usr/src/linux-source-2.6.32#make modules_install这个过程大概两分钟:

?

?

?以上步骤完成以后,会在/lib/modules目录下面生成一个文件夹linux-2.6.32-24-generic,至此你差不多已经成了,因为你已经构造好了内核树!!!

?

下面开始在自己的工程文件夹下面建立两个文件:hello.c(不用说了)Makefile(它需要能够找到内核树,然后将目标模块链接上去):

?

?注意里面各种变量的颜色额~有兴趣的读者可以自己去研究一下这个文件,里面唯一和hello.c相关的部分就是obj-m := hello.o 那一行了!第5行表明了内核树build目录的位置。下面在当前目录下面执行root@jiq-desktop:/usr/jiq/DriverProject#make生成以下文件

?

?

然后利用insmod命令将模块插入到内核树 中:root@jiq-desktop:/usr/jiq/DriverProject#insmod ./hello.ko模块装载触发hello.c的init()方法,输出hello world,如果没有的话,是因为其将输出放到/var/log/syslog中去了。打开便可以看见你的结果!卸载目标模块命令是:root@jiq-desktop:/usr/jiq/DriverProject#rmmod ./hello.ko至此你已经成功迈出了Linux驱动开发的第一步~

?

原文连接:/ypoflyer/article/details/6087668

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值