命中注定11 发表于 2016-7-3 05:53 PM

AM335 Linux kernel编译

<div align="center"><font size="5">AM335 Linux kernel编译</font></div><div align="center"><font size="5">-----东方青</font></div><div align="center"><img src="static/image/smiley/default/smile.gif"smilie_id="1" border="0" alt="" /></div><font size="5">一、&nbsp; &nbsp; &nbsp; &nbsp; 安装编译工具链</font><br />
<font size="5">1.&nbsp; &nbsp; &nbsp; &nbsp; 获取资料</font><br />
<font size="5">从提供的资料的目录linux_evb-t335/toolchains/中,可以看到存在两个交叉编译工具链。</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 编译Linux kernel所需要的交叉编译工具链为:gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2</font><br />
<font size="5">2.&nbsp; &nbsp; &nbsp; &nbsp; 安装交叉编译工具链</font><br />
<font size="5">将gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2压缩文件解压到/opt目录下。</font><br />
<font size="5">命令:sudo tar xvf gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2 -C /opt</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 进入到/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin目录,查看交叉编译工具链的可执行文件。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:cd /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 如上图,交叉编译工具链的名称为:arm-linux-gnueabihf-</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 而编译uboot的交叉编译工具链的名称为:arm-none-linux-gnueabi-。两者的名称不同,所以可以同时安装。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 获取交叉编译工具链的绝对路径为:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 将其添加到/etc/environment文件中。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:sudo vim /etc/environment</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 在末尾添加“:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin”。最后保存退出即可。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 修改~/.bashrc文件,添加环境变量,以便能够随时使用交叉编译工具链。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:vim ~/.bashrc</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 在最后添加:export PATH=$PATH:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 最后保存退出。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 最后更新~/.bashrc</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:source ~/.bashrc</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 此后就可以直接使用arm-linux-gnueabihf-交叉编译工具链了。查看一下版本。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:arm-linux-gnueabihf-gcc –v</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 如上图可知,其为4.7.3版本。</font><br />
<font size="5">二、&nbsp; &nbsp; &nbsp; &nbsp; 资源选择</font><br />
<font size="5">在资料的目录linux_evb-t335/src下可以看到官方提供的源码。如下图:</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 将linux-3.14.43-evbt335.tar.bz2文件拷贝出来。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:cp linux-3.14.43-evbt335.tar.bz2 ../../</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 切换目录之后,解压linux-3.14.43-evbt335.tar.bz2文件。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:tar xvf linux-3.14.43-evbt335.tar.bz2</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 解压得到的目录名称有些过长,将其修改为linux-3.14.43。</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 命令:mv linux-3.14.43-evbt335 linux-3.14.43</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">三、&nbsp; &nbsp; &nbsp; &nbsp; 编译</font><br />
<font size="5">1.&nbsp; &nbsp; &nbsp; &nbsp; 清理源码</font><br />
<font size="5">命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mrproper</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">2.&nbsp; &nbsp; &nbsp; &nbsp; 系统配置</font><br />
<font size="5">第一次编译,直接使用默认配置。</font><br />
<font size="5">命令:make ARCH=arm evbt335_defconfig</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">3.&nbsp; &nbsp; &nbsp; &nbsp; 编译</font><br />
<font size="5">(1)&nbsp; &nbsp; &nbsp; &nbsp; 编译内核</font><br />
<font size="5">命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">等待编译完成。</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">(2)&nbsp; &nbsp; &nbsp; &nbsp; 编译内核模块</font><br />
<font size="5">命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 等待编译完成。</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">(3)&nbsp; &nbsp; &nbsp; &nbsp; 编译dts文件</font><br />
<font size="5">命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- evbt335-nand.dtb</font><br />
<font size="5">&nbsp; &nbsp; &nbsp; &nbsp; 编译完成后,在arch/arm/boot/dts/目录下生成evbt335-nand.dtb文件。</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5">
<ignore_js_op>



</ignore_js_op>
</font><br />
<font size="5"><br />
</font><br />
<font size="5"><br />
</font><br />
<br />
<br />
页: [1]
查看完整版本: AM335 Linux kernel编译