Linux_Ubuntu下驱动开发环境搭建(14.04, 15亲测可行)

Linux_Ubuntu下驱动开发环境搭建

linux下驱动需要编译内核

1.首先是基本的开发工具,如gcc,gdb,make等

apt-get install build-essential

2.其次是找到你所用的ubuntu的版本号:uname -r 

然后查看你要下载的源码包:apt-cache  search  linux-source 这个命令会得到可以下载的源码包

3.下载源:sudo apt-get   install  linux-source-3.2.0

会默认下载到/usr/src中,进入该文件夹并解压缩sudo  tar jxvf  linux-source-3.2.0.tar.bz2

得到源 /usr/src/linux-source-xxx

4.配置内核:有make oldconfig(命令行),make menuconfig(图形界面)

在此选用 :oldconfig来配置,进入/usr/src/linux-source-xxx并输入sudo make oldconfig  在配置的过程中如果需要选y,n,m直接点回车即可

(其中y指的是编译进内核,n是不编译,m指的是编译成模块)

5.然后开始编译内核:在/usr/src/linux-source-xxx下执行sudo make(需要等几个小时),然后sudo bzImage,结束后,可以看到在当前目录
下生成了一个新的文件:vmlinux,其属性为-rwxr-xr-x。

6.编译模块:还在在当前目录,make modules

安装模块:make modules_install

结束后在/lib/modules下生成xxx(版本号)和xxx-generic这两个目录

7.检测是否成功:

编写一个hello.c测试程序:可以放在/home下自己用户的目录下,如/home/danpi/drive

//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");
return0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye,cruel world\n");
 
}
module_init(hello_init);
module_exit(hello_exit);

然后编写Makefile,在当前目录下新建Makefile文件

#Makefile

obj-m:=hello.o
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
modules:
(这里Tab键
) $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

注意Makefile中的Tab键

然后在/home/danpi/drive目录下分别执行:

make

insmod hello.c

rmmod hello

但是终端并没有出现hello world等,因为虚拟机的缘故,

这些信息已经写入了:/var/log/syslog 中

cat /var/log/syslog即可查看

over~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值