1、uboot配置编译
(1)X210移植过的uboot在开发板光盘B/linux/QT4.8的BSP中,里面的内容就是这个开发板的所有相关的源代码、文档、教程等。
(2)将B/linux/QT4.8的BSP中tar -jxvf qt_x210v3_160807.tar.bz2放在共享文件里面新建一个空文件(因为里面有离散的很多文件),在linux下复制到root下,如下所示:
[email protected]:~# cp /mnt/hgfs/linux/qt_x210v3s_160307.tar.bz2 ./x210_bsp(新建的文件夹)
不要在windows中的共享文件夹中解压开。(除非你的代码只在windows下去分析而不去编译)
(3)在下x210_bsp下tar -jxvf qt_x210v3_160807.tar.bz2(名字改了)得到下图
里面就有我们linux内核kernel,我们要对它进行编译(make)但是先要配置(与我们编译uboot一样,kernel也有类似下x210_sd_config.h的配置文件)所有我们要先makex210ii_qt_defconfig,再在kernel下make这个时候里面就有了vmlinux和zImage等如下
我们接着make uImage后,最后生成了uImage,如下图
注意:如果直接在kernel底下去make uImage会提供mkimage command not found。解决方案是去uboot/tools下cp mkimage /usr/local/bin/,复制mkimage工具到系统目录下。再去make uImage即可。
配置过程:
(1)首先cd进入uboot源码的根目录,然后在根目录下执行:make x210_sd_config。执行配置命令后,如果出现:Configuring for x210_sd board...
说明配置好了,如果不是这个是别的说明配置出错了。
(2)编译之前一定要注意检查arm-linux-gcc对不对,检查份2步:
第一步:检查当前编译环境中有没有安装合适的arm-linux-gcc。我们装的是arm-2009q3,因为这个是三星官方、九鼎官方开发uboot时使用的。
第二步:检查当前目录下(uboot根目录)的Makefile中编译器的设置是否正确。在工程的总Makefile中会设置交叉编译工具链的路径和名字,必须确保这个路径和名字和我们自己装的一致,否则编译会出错。
(3)确保了以上2点,即可进行编译。编译很简单,直接make即可。
所有我们开始安装的时候要将编译工具链安装在这个目录下
2、sd卡烧录uboot的过程
(1)对uboot源代码进行完修改(修改内容根据自己的理解和分析来修改,参考我之前的博客)
(2)make distclean把上一次编译生成的文件删除,然后make x210_sd_config然后make
(3)编译完成得到u-boot.bin,然后去烧录。烧录方法按照裸机第三部分讲的linux下使用dd命令来烧写的方法来烧写。
(4)烧写过程:
第一步:进入sd_fusing目录下
打开vi sd_fusing.sh 红线地方是需要改正的,因为我们自己写的makefile指定生成的镜像为u-boot.bin。而我们刚开始得来的sd_fusing,sh是被三星公司编译过的,他们之前用的uboot_inand.bin,sd_fusing2.sh,bl2_position不是49,而我们要烧录到49扇区
第二步:make clean
第三步:make
第四步:插入sd卡,ls /dev/sd*得到SD卡在ubuntu中的设备号(一般是/dev/sdb,注意SD卡要连接到虚拟机ubuntu中,不要接到windows中)
第五步:./sd_fusing.sh /dev/sdb完成烧录(注意不是sd_fusing2.sh)