Linux驱动学习之驱动开发准备工作

Posted 涛少&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux驱动学习之驱动开发准备工作相关的知识,希望对你有一定的参考价值。

一、开启驱动开发之路

1、驱动开发的准备工作

(1)正常运行linux系统的开发板。要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。原因在于在安装模块的时候会进行安全性校验

(2)内核源码树,其实就是一个经过了配置编译之后的内核源码。我们需要内核源码编译自己的模块

(3)nfs挂载的rootfs,主机ubuntu中必须搭建一个nfs服务器。这对于驱动开发前期是不可或缺的,能够提高我们的开发效率。

2、驱动开发的步骤

(1)驱动源码编写、Makefile编写、编译

(2)insmod装载模块、测试、rmmod卸载模块

3、实践

(1)copy原来提供的x210kernel.tar.bz2,找一个干净的目录(/root/driver),解压之,并且配置编译。编译完成后得到了:1、内核源码树。2、编译ok的zImage

(2)fastboot将第1步中得到的zImage烧录到开发板中去启动(或者将zImage丢到tftp的共享目录,uboot启动时tftp下载启动),将来驱动编译好后,就可以在这个内核中去测

试。因为这个zImage和内核源码树是一伙的,所以驱动安装时版本校验不会出错。

 

我一般都会选择通过uboot启动之后使用tftp去下载主机服务器端共享目录中的zImage镜像文件,而不直接将zImage镜像文件烧入到Flash中,因为可能我们在开发驱动的过程

中会重新对内核进行配置编译,然后让开发板去启动这个新编译好的内核镜像文件,如果这样重复烧flash就比较麻烦了,效率也不高。

 

参考: 《朱友鹏嵌入式Linux开发\5.Linux驱动开发\5.2.字符设备驱动基础》

 

以上是关于Linux驱动学习之驱动开发准备工作的主要内容,如果未能解决你的问题,请参考以下文章

驱动学习之驱动体验

驱动学学之驱动学习的准备工作

linux内核学习之总线驱动设备ksetkobject

驱动学习之驱动的设备文件

Linux音频驱动学习之:ASOC分析

Linux驱动学习之常用的模块操作命令