在初次编译Uboot系统时,是按照正点原子开发指南操作的,但是开发指南上讲得不是很详细,又看了一遍视频教程才搞清楚完整步骤,为了方便学习,就将详细步骤记录下来,以便以后参考。
Uboot初次编译
1.首先在Ubuntu系统中新建文件夹 alientek_boot
2.将正点原子提供的Uboot源码拷贝到Ubuntu系统中的alientek_uboot文件夹中。
3.在Ubuntu系统alientek_uboot文件夹中解压
4.使用命令编译源码,可以直接新建一个shell脚本mx6ull_alientek_emmc.sh,然后通过shell脚本编译。
给shell脚本设置可执行权限
5.通过shell脚本编译代码
编译成功后如图所示:
6.mfgtool工具配置
编译完成后会生成一个u-boot.bin文件,需要向u-boot.bin文件添加头文件信息,这个信息需要通过mfgtool工具来添加。
需要将编译生成的u-boot.imx文件复制到Windows系统里面,通过FileZilla工具实现。
直接在工具界面中拖动u-boot.imx文件到桌面。
下来复制正点原子的MFG_TOOL工具到桌面
将D:\Desktop\4、正点原子MFG_TOOL出厂固件烧录工具\mfgtool\Profiles\Linux\OS Firmware\firmware文件夹中的 u-boot-imx6ull-14x14-emmc.imx文件删除或者重命名。
然后将桌面上的u-boot.imx文件复制到此文件夹中,并将名字改为u-boot-imx6ull-14x14-emmc.imx。相当于用自己的文件替换原来的文件。
然后继续打开D:\Desktop\4、正点原子MFG_TOOL出厂固件烧录工具\mfgtool\Profiles\Linux\OS Firmware\files\boot文件夹,将文件u-boot-imx6ull-14x14-ddr512-emmc.imx重命名。
再将桌面上的u-boot.imx文件复制到文件夹中,并将名字改为u-boot-imx6ull-14x14-ddr512-emmc.imx,也相当于用自己的文件替换原来的文件,但是这个文件名不能自己随便起,否则烧写软件就会找不到要烧写的文件了。
接下来就可以使用USB的UTG方式烧写系统了。
7.通过OTG烧写系统
首先将拨码开关拨到USB启动,然后使用USB线连接USB_OTG接口和电脑的USB口,由于USB_OTG口不能给开发板供电,所以还需要一根USB线连接到串口,通过电脑给系统供电。通过USB烧写时,一定要拔出SD卡。
下来打开mfgtool文件夹
由于开发板使版本是EMMC 512M,就直接使用Mfgtool2-eMMC-ddr512-eMMC.vbs文件进行系统烧写。
给开发板上电,并双击Mfgtool2-eMMC-ddr512-eMMC.vbs文件
如果USB连接成功,这里就会显示出来,然后单击Start按钮。
在烧写的过程中,会有一两次提示USB断开,这是正常现象,不用管。
烧写完成后,进度条就会变成绿色。
这时候点stop按钮停止烧写,在点Exit按钮退出软件。
这时系统就已经烧写到了EMMC中了。
8.通过EMMC启动系统
下来就可以从EMMC启动系统了,首先将拨码开关拨到EMMC模式,打开串口CRT工具,按下开发板复位按键。
系统重启后,在3s倒计时结束前按下键盘上任意键。
此时就会在串口上看到uboot信息
信息的第一行显示的就是uboot最后一次的编译时间。
可以对比这个编译时间,和桌面上u-boot.imx文件的时候,这两个时间是一致的,说明U-boot的的烧写是成功的。
在Ubuntu系统中uboot是可以修改的,如果配置过uboot之后,用shell脚本编译时,会清除整个工程,配置的文件和配置项就会被删除。因为shell脚本中第一行语句就是清除编译过的文件。
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
那么可以修改shell脚本,不执行第一行清除命令。也可以直接修改Makefile文件,将变量ARCH=arm 和变量 CROSS_COMPILE=arm-linux-gnueabihf- 的值直接在Makefile文件中写死,这样直接就可以使用make命令编译了。
9.修改顶层Makefile文件
打开Makefile文件
在249行添加ARCH 和 CROSS_COMPILE 变量值。
修改完成后保存退出。
这时候就可以通过make 命令进行编译了。
如果Ubuntu系统有多核,也可以使用多核编译命令。比如系统有4核,就可以使用 make -j4 命令进行编译。
如果要显示编译的过程,可以使用make V=1 -j4命令编译
这样在编译的过程中就会显示出编译的信息。
这样以后编译的时候,就可以直接使用make命令来编译,就可以不用使用shell脚本编译了。
想要查看自己的系统是多少核的,可以直接打开系统的任务管理器,切换到性能选项栏。
这时候在CPU使用记录中就可以看到自己的电脑是几个核的,上面有8个框,就代表电脑是8核的。