在具体配置前,先简要说明下,能进入到驱动开发学习的朋友们,相必虚拟机跟linux系统的安装已经不是问题了,如果这部分有问题的话,可以参考百度上其他朋友讲解的。
首先我们先阐述下,在IT开发中,
我们一般分为这么几个层次:
①应用层开发:
这部分程序员是非常多的,因为上手容易简单,而且培训机构多,可以说 是成批成批的复制程序员,
当然了,这部分内容是基于我们下面两层的正确运行的基础之上,所以在这个层次的程序员往往不会关心底层到底是怎么控制的,代码是如何执行的,因为在这部分人心中,底层是不关心的,所以在这个层次开发的人往往出了问题都会找不到头绪,网上经常调侃,即使bug消失了也不懂原因。
看不懂错误提示是这部分人的主要特征。
应用层开发也就是我们常说的一些什么app,网页之类的,典型的就是java开发,这个层次的人是不会触及手机的硬件操作,更不知道驱动的运行过程。甚至不会知道安卓的源代码驱动。因为他们根本不关心也不需要关心,这个层次的程序员目前已经普及了,高工资跟这个层次的已经不相关了。这个层次的程序员属于基层员工。市场饱和,人太多了。只因为他们是应用层次的开发,不涉一点底层,所有东西都是底层开发者提供好的,这点java是做的非常好,所以冒昧的说java开发是白痴化的一种,全部由底层开发者封装好的函数,直接调用。
②linux内核开发
内核开发是需要懂一点linux源码的,比如几个函数,分页,bios启动等等,应该大家都听说过,这个不是很难,但是比较复杂,自学吧。
③驱动开发
大部分程序员都是基于应用层开发,从不会涉及到底层,也就是目前所谓的大部分程序员
驱动比较难,希望大家可以跟我一起耐心学习,我们一起入门
ps:在面试时,最好不要说精通驱动之类的,否则会尴尬,毕竟驱动5年都精通不了,水太深了
环境配置开始:
前提:虚拟机安装好,linux红帽5安装好
工具软件:linux-3.6-20150708.tgz,arm-linux-gcc-4.4.3.tar.tgz,busybox-1.20.2-p1-Mini2451.tgz,
mktools-20130822-2451.tar.tgz
依次解压如上工具
①linux内核源码解压放于home下
#tar xvzf linux-3.6-20150708.tgz –C /home
//注意大写C跟C后空格
#make clean
#make distclean
#make mrproper
//通常情况下,解压的新内核源码需要执行以上清除命令
#cp mini2451_linux_config .config //覆盖原.config文件
#make zImage //制作镜像文件,过程较长,耐心等待
编译结束后,会在arch/arm/boot目录下生成linux内核映象文件:zImage。
②tar xvzf arm-linux-gcc-4.4.3.tgz –C /
Step2:把编译器路径加入系统环境变量,运行命令#gedit /root/.bashrc 编辑/root/.bashrc文件,在最后一行添加: export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
重启生效,在命令行输入arm-linux-gcc –v会出现该工具版本信息
③tar xvzf busybox-1.20.2-p1-Mini2451.tgz –C /home
配置busybox
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
Busybox Setting->Build options ->Build busybox as a static binary, 选中, 静态链接
Busybox Setting->Build options ->Cross Compiler prefix 配置编译工具为 arm-linux-
busybox settings--> Installation option->BusyBox installation prefix 配置安装路径,在上面填你的busybox安装的路径,如/home
c、编译
make ARCH=arm CROSS_COMPILE=arm-linux-
d、安装系统命令
make install
④:mktools-20130822-2451.tar.tgz:提供如下功能
mkyaffs2image工具,它是一个命令行的程序,使用它可以把主机上的目标文件系统目录制作成一个映象文件,也就是用于制作文件系统