Linux设备驱动开发环境搭建

本文介绍了在Ubuntu 12.04 LTS系统上搭建Linux 3.11.0内核驱动开发环境的步骤,包括确保内核版本匹配、安装必要的开发工具、下载并配置内核源码,以及解决可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、linux源码的版本号与运行中的linux内核版本要一致(这里用的是Ubuntu 12.04 LTS; Kernel 为3.11.0)
2、安装开发工具(都安装了方便后面使用,有些没必要安装)

->sudo apt-get install build-essential autoconf automake1.9 cvs subversion kernel-package libncurses5-dev
->sudo apt-get install bison flex
重点安装的是build-essential和libncurses5-dev

3、查看内核版本并下载相应的版本源码:

切换到root:su
查看内核版本:uname -r
显示:3.11.0-15-generic
去下载对应版本的源码到/usr/src目录下,这里下载到的是linux-3.11.tar.xz

4、解压并且配置原码

xz -d linux-3.11.tar.xz
得到 linux-3.11.tar
tar xf linux-3.11.tar
得到 linux-3.11
改名: mv linux-3.11 linux-source-3.11.0
进入:cd linux-source-3.11.0
相关配置:

make oldconfig
make prepare
make scripts

至此,已完成。
接下来可以编写hello.c以及Makefile来做测试了。

加载模块:insmod hello.ko 或 modprobe hello
卸载模块:rmmod hello

查看打印信息:

cat /proc/kmsg 会一直打印,需要Ctrl-C手动终止
dmesg 或 dmesg | tail -N ,N为一数字,表示显示最后N行

若在make时出现

WARNING: Symbol version dump /usr/src/linux-source-3.11.0/Module.symvers is missing; modules will have no dependencies and modversions.

且insmod时出现

insmod: error inserting ‘./hello.ko’: -1 Invalid module format

同时,在 dmesg 中出现

hello: no symbol version for module_layout

请参考:

no symbol version for module_layout 解决办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值