对于很多linux开发初学者,手里没有开发板,但是又想练练linux驱动(入门级)的同学来说,在虚拟机ubuntu 下搭建一个简单的驱动开发环境不失为一个很好的选择。
linux驱动正常的开发环境搭建有以下几方面;
1、安装好交叉编译工具,比如arm-linux-gcc之类的(不同的开发板厂家时长会提供适合自己板子的交叉编译工具)
2、搭建好nfs(为了后边方便在虚拟机上挂载文件系统,便于板子的驱动调试)
3、安装gdb调试工具
4、创建linux内核设备树(与目标开发板的linux内核版本一致,最好使用厂家提供的linux源码树)
5、连接开发板和PC机(网线,串口....)等等,
6、编写驱动开发环境测试程序,测试编写好的驱动能否在目标开发板上运行。
7、开始自己的驱动开发(移植)之旅。
为了简单的了解驱动开发的原理和步骤,以下我们先在虚拟机ubuntu上搭建简单的驱动开发环境。
1、安装build-essential软件包
Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。幸运的是,为了能够编译Ubuntu的内核,Ubuntu提供了一个build-essential软件包
安装方法如下:
$sudo apt-get install build-essential
2、找到自己所使用ubuntu的软件版本号
uname -r
我自己的是 3.2.0-23-generic-pae
3、下载源码包
$sudo apt-get install linux-source-3.2.0
会默认下载到/usr/src中,cp该文件到自己的工作目录,当然也可以在本地进行解压缩 $sudo tar -jxvf linux-source-3.2.0.tar.bz2