编译华硕Tinkerboard Rk3288 U-boot

**

华硕Tinkerboard Rk3288 U-boot 编译

**

写在最前面,由于笔者一时兴起,买了一块华硕的Tinkerboard 板子来玩,索性就将就学习一下嵌入式系统的相关知识,如有不对的地方,还请各位大佬指正。


言归正传了。这篇博文的主要内容是:使用官方提供的系统镜像,重新进行U-boot的编译。


一:编译环境配置:
1、编译主机:ubuntu 18.04 64bit

2、编译工具链:Linaro GCC 7.0(这个工具链很重要,后面的一切工作都是由它来进行指挥的)

3、micro SD Card(建议使用32G class10 的,速度贼快)

4、安装编译源代码的相关环境:

sudo apt-get update

sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi device-tree-compiler gcc-aarch64-linux-gnu mtools parted libssl-dev fakeroot

(其中:gcc-arm-linux-gnueabihf 是Linaro GCC 7.0编译工具链)


二:相关文件下载:
1、下载系统镜像,用于模板镜像,以后所有的更新都是在这个系统镜像的基础之上。我使用的是:Debian linaro-stretch-alip-v2.0.8.zip 镜像下载地址

2、下载u-boot源代码,在github tinkerboard中,官方提供了很多的源代码,可以自己下载;官方所有源代码地址。如图:
编译华硕Tinkerboard Rk3288 U-boot_第1张图片

这里我们目前只需要暂时下载uboot源代码即可,uboot源代码地址

3、下载好了后,把这两个文件移动到虚拟机主机中,并解压。建议放在Home目录下,这样会比较好一点,当然你也可以像我这样,创建一个文件夹来存放。注意,路径中不能有中文,否则会出错的。
编译华硕Tinkerboard Rk3288 U-boot_第2张图片


三、烧写系统镜像:
上面的准备工作做好了后,就可以开始烧写系统镜像了。

首先将下载好的系统镜像烧写到sd卡中,烧录工具可以用win32diskwriter(好像是这个名字),也可以用这个软件Etcher(力推,软件下载地址),然后将SD卡插上板子,测试系统是否能正常工作,如果系统成功进入主界面,说明系统和板子均正常工作,否则就需要你自己去排除问题了。


四、编译U-boot:
1、解压U-boot源代码,并进入文件夹,然后执行如下命令:

cd debian_u-boot

make CROSS_COMPILE=arm-linux-gnueabihf- O=miniarm-rk3288 tinker-rk3288_defconfig all -j4 

./miniarm-rk3288/tools/mkimage -n rk3288 -T rksd -d miniarm-rk3288/spl/u-boot-spl-dtb.bin u-boot.img

cat miniarm-rk3288/u-boot.bin >> u-boot.img

注:编译完成后,在主目录下会生成 u-boot.img 的启动镜像文件,如图:
编译华硕Tinkerboard Rk3288 U-boot_第3张图片


五、更新U-boot:
1、将烧写好的SD卡系统镜像插入到读卡器,并接入到虚拟机中;
2、查看当前SD在虚拟机中的设备块符号地址,命令如下:

 lsblk

执行指令后,查找和自己U盘(SD卡)大小一样的设备块,我的是64G的。查看如下,sdb为我的SD卡设备块。
编译华硕Tinkerboard Rk3288 U-boot_第4张图片
3、更新 u-boot:
找到与自己对应的sd卡设备块后,执行如下指令:

sudo dd if=/home/zhangh/tinkerboard/debian_u-boot-develop/u-boot.img of=/dev/sdb seek=64

注意:
/home/zhangh/tinkerboard/debian_u-boot-develop/u-boot.img 需要写你自己的路径,这个是我的路径,你要替换掉。
sdb 是我的设备块,你自己要替换为你电脑中显示的设备块,有可能不一样的。

4、卸载U盘,更新完成。


写在最后
1、到这里,u-boot的更新就已经完成了;
2、如果不出意外的话,你把这个sd卡重新插上你的板子,板子是不会正常工作的;
3、板子不工作的原因很简单,内核和uboot没有对应,请看我的这篇文章,更新内核后,然后系统即可正常启动。

联系方式:[email protected]

你可能感兴趣的:(tinkerboard)