ubuntu下编译驱动程序的准备

ubuntu下编译驱动程序的准备

ID:36996998

大小:31.00 KB

页数:7页

时间:2019-05-12

ubuntu下编译驱动程序的准备_第1页
ubuntu下编译驱动程序的准备_第2页
ubuntu下编译驱动程序的准备_第3页
ubuntu下编译驱动程序的准备_第4页
ubuntu下编译驱动程序的准备_第5页
资源描述:

《ubuntu下编译驱动程序的准备》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ubuntu下编译驱动程序的准备ubuntu不带linux内核源码,需要自己下载安装。1,查看自己的内核版本uname-r2,查看源内的内核源码类表apt-cachesearchlinux-source3,下载安装内核源代码sudoapt-getinstalllinux-source-2.6.27    //我选的是这一个,自己看着办吧4,等待........下载完成后,在/usr/src下会有一个文件名为linux-source-2.6.xx.tar.bz2的压缩包5,解压缩包tarjxvflinux-source-2.6.27.tar.bz2         

2、 //看清自己的版本解压后会生成一个源代码目录/usr/src/linux-source-2.6.276,进入源码目录后,配置文件makeoldconfig7,生成内核make8,疯狂等待,大约1个多小时9,编译模块makemodules10,安装模块makemodules_install大功告成!^_^下面说一下Makefile文件$(MAKE)-C$(KERNELDIR)M=$(PWD)modules_install  #PWD当前工作目录的变量obj-m:=hello.o#hello.o是你要生成的驱动,以后可以自己改      KERNELDIR:=/li

3、b/modules/2.6.27-7-generic/build                  #这里别抄,写成你自己的版本,这个目录执行了内核源码目录      PWD:=$(shellpwd)  #将当前工作目录赋值该PWDmodules:      $(MAKE)-C$(KERNELDIR)M=$(PWD)modulesmodules_install:下面是一个经典的Hello,world!例子自己make一下就行了。#include#includeMODULE_LICENSE("DualBSD

4、/GPL");staticinthello_init(void){printk(KERN_ALERT"Hello,world!");return0;}staticvoidhello_exit(void){printk(KERN_ALERT"Goodbye,cruelworld!");}module_init(hello_init);module_exit(hello_exit);本文是参考了网上多篇帖子而写的算不上什么原创。唯一值得欣慰的只不过在本机上实现罢了。因为毕竟失败了几次。也因为本人是初学驱动编程很多简单的问题在我来说是相当的困难的。望有识之士不要

5、笑话。最后,希望本文能给刚学驱动而还没开头的人提供一些帮助。刚看O'REILLY写的《LINUX设备驱动程序》时。作者一再强调在编写驱动程序时必须建立内核树。所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形式。那怎么建立呢?为此上网“翻云覆雨”起来而结果却是“惨败而归“。为此托了一天又4个小时(当然包括吃饭睡觉的时间),连个简单的hellowrold都没实现。(书中p22页最简单也最没用的驱动事列)不过功夫不负有心人。在今天终于弄明白了怎么回事。下面就请让我慢慢道来吧。先查看自己OS使用的内核版本shana@shana:~$uname-r2.6.22

6、-14-generic/*这是我显示的结果*/如果安装系统时,自动安装了源码。在/usr/src目录下有对应的使用的版本目录。例如下(我是自己下的)shana@shana:/usr/src$lslinux-headers-2.6.22-14linux-headers-2.6.22-14-genericlinux-source-2.6.22/*这个就是解压后的源码目录*/linux-source-2.6.22.tar.bz2/*这是我下的源码包*/shana@shana:/usr/src$如果没有源码。(一般ubuntu都没有吧)查看一下可一下载的源码包(切记不要使

7、用超级用户使用此命令否则……会提示没有此命令)shana@shana:/usr/src$apt-cachesearchlinux-sourcelinux-source-LinuxkernelsourcewithUbuntupatchesxen-source-2.6.16-Linuxkernelsourceforversion2.6.17withUbuntupatcheslinux-source-2.6.22-Linuxkernelsourceforversion2.6.22withUbuntupatchesshana@shana:/usr/src$我选择了linu

8、x-sou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。