稚晖君夸克quark量子计划_u-boot移植

u-boot移植

    • 1.安装交叉编译器
    • 2.下载u-boot源码
    • 3.移植u-boot
    • 4.烧写u-boot
    • 5.参考资料

1.安装交叉编译器

访问此处下载地址的toolchain目录,下载交叉编译器arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz,然后解压编译器:

$ mkdir -p /opt/FriendlyARM/toolchain
$ tar xf arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/

然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:

$ export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
$ export GCC_COLORS=auto

执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:

$ . ~/.bashrc

这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:

$ arm-linux-gcc -v

稚晖君夸克quark量子计划_u-boot移植_第1张图片确认版本为gcc version 4.9.3 (ctng-1.21.0-229g-FA)
安装工具

$ apt-get install swig python-dev python3-dev

2.下载u-boot源码

$ git clone https://github.com/friendlyarm/u-boot.git

有github账号可以先fork到自己的仓库中,再下载。为了便于编辑,使用vscode打开,切换到sunxi-v2017.x分支下,并创建自己的分支。
初步编译u-boot,测试是否可以正常编译。
在u-boot目录下,创建quark.sh脚本如下:

#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux- distclean(注意空格)
make ARCH=arm CROSS_COMPILE=arm-linux- quark_hl_h3_defconfig  (这边先使用nanopi_h3_defconfig)
make ARCH=arm CROSS_COMPILE=arm-linux-

使用脚本编译,

$ ./quark.sh

编译成功后会生成文件u-boot-sunxi-with-spl.bin。

3.移植u-boot

关注以下几个目录文件:
①u-boot/configs/nanopi_h3_defconfig复制一份为quark_hl_h3_defconfig,
修改

CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-quark-hl"

②u-boot/arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts复制为sun8i-h3-quark-hl.dts
修改为

#include "sun8i-h3-nanopi.dtsi"
 
/ {
model = "haohlliang quark-hl";
compatible = "friendlyelec,nanopi-neo-core", "allwinner,sun8i-h3";
};

③u-boot/arch/arm/dts/Makefile,在sun8i-h3-nanopi-m1-plus.dtb后追加一个为sun8i-h3-quark-hl.dtb
④u-boot/common/board_r.c,
找到char nanopi_board[][BOARD_NAME_LENGTH]数组,末尾添加"quark-hl",
找到int nanopi_get_board(void)函数
屏蔽switch表,直接设置环境变量:

env_set("cpu", "h3");
boardtype = BOARD_TYPE_QUARK_HL;

⑤u-boot/include/friendlyelec/boardtype.h,
添加

#define BOARD_TYPE_QUARK_HL               (13)// revised by haohlliang

修改

#define BOARD_TYPE_MAX                    (BOARD_TYPE_QUARK_HL+1)

使用quark.sh脚本编译u-boot,生成u-boot-sunxi-with-spl.bin。

4.烧写u-boot

更新SD上的U-boot,此SD卡先烧写好稚晖君给的镜像quark-n-21-1-11.img
将SD卡插入PC中,然后执行如下命令:

$ cd u-boot
$ dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8(这边的sdb根据你SD卡插入时确定)
$ sync && eject /dev/sdb

插入quark板子,此时启动会提示找不到sun8i-h3-quark-hl.dtb
将SD卡的uboot盘中,sun8i-h3-atom.dtb临时命名为sun8i-h3-quark-hl.dtb测试,重新插卡,应该可以成功进入系统。
稚晖君夸克quark量子计划_u-boot移植_第2张图片

5.参考资料

①http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B/zh
②http://blog.chinaunix.net/uid-30169540-id-4954631.html
③https://github.com/friendlyarm/u-boot
④https://github.com/peng-zhihui/Project-Quantum

你可能感兴趣的:(Linux嵌入式,linux,ubuntu,u-boot)