Uboot过程
(1)对uboot源代码进行完修改(修改内容根据自己的理解和分析来修改)
(2)make distclean然后make x210_sd_config(配置文件)然后make
(3)编译完成得到u-boot.bin,然后去烧录。
烧录过程:
第一步:进入sd_fusing目录下
第二步:make clean
第三步:make
第四步:插入sd卡,ls /dev/sd*得到SD卡在ubuntu中的设备号(一般是/dev/sdb,注意SD卡要连接到虚拟机ubuntu中,不要接到windows中)
第五步:./sd_fusing.sh /dev/sdb完成烧录(注意不是sd_fusing2.sh)
细节1:sd_fusing目录下生成的sd_fusing.sh里面需要改动,扇区为49(uboot在烧录到SD卡的时候,先截取uboot.bin的前16KB(实际脚本截取的是8KB)烧录到SD卡的block1~bolck32;然后将整个uboot烧录到SD卡的某个扇区中(譬如49扇区))和改动路径为../u-boot.bin因为我们makefile指定生成的是u-boot.bin。之前是uboot-iNand.bin,这是三星之前编译过的。
细节2:移植好的uboot烧录到SD卡中,我们要先破坏iNand(sd0在uboot底下如何擦除uboot:movi write u-boot 0x30000000)中的uboot,才会从sd2启动。
Uboot一般大小180kb到400kb
Kernel过程
用上面编译好的uboot去启动kernel,kernel来自其他qt_x210v3_160807.tar.bz2(kernel,uboot等)里面有所有的代码,是九鼎做好的,解压出来,得到kernel,编译过程:
1、先确认Makefile
(1)主要是检查交叉编译工具链有没有设置对。CROSS_COMPILE ?= /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
(2)确认ARCH = arm。主要目的是为了编译时能找到arch/arm目录。
2、两步配置
第一步配置:make x210ii_qt_defconfig最后只要出现:configuration written to .config这句话,就证明我们的操作是正确的。
第二步配置:make menuconfig,具体的用法和配置意义在后面课程讲。我们这里因为是九鼎已经移植过的,所以第二步配置是可以不做的,直接退出即可。make编译完成后得到的内核镜像不在源码树的根目录下,在arch/arm/boot这个目录下。得到的镜像名是zImage,最后将zImage复制到tftfpboot去下载启动,tftp方式避免反复烧录镜像到inand中,对磁盘有损害,所有tftp去加载启动。
补充:内