编译华硕Tinkerboard Rk3288 内核

华硕Tinkerboard Rk3288 内核编译

写在前面:

  • 1、如果你有过使用树莓派的经验,请先看我的这篇文章,对你会有很大的帮助。
  • 2、如果你想编译tinkerboard的 u-boot,请看我的这篇文章。
  • 3、本博客的内容:本博客主要介绍了使用官方提供的系统镜像,重新对内核源码进行编译。

一:编译环境搭建:

  • 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-gnueabihfLinaro GCC 7.0编译工具链)


二:相关文件下载:

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

  • 2、下载kernel源代码,在github tinkerboard中,官方提供了很多的源代码,可以自己下载;官方所有源代码地址。如图:
    在这里插入图片描述这里我们目前只需要暂时下载kernel源代码即可,kernel源代码地址

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


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

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


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

cd debian_kernel

make miniarm-rk3288_defconfig ARCH=arm -j16

make zImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

make modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 CFLAGS_MODULE=-Wno-misleading-indentation

make rk3288-miniarm.dtb ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

make dtbs ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

注:编译完成后,在如下路径生成对应的文件产物;
编译华硕Tinkerboard Rk3288 内核_第2张图片


五、更新kernel:

  • 1、将烧写好的SD卡系统镜像插入到读卡器,并接入到虚拟机中;
  • 2、将U盘自动挂载系统中,如图
    编译华硕Tinkerboard Rk3288 内核_第3张图片
    备注:这里只需要打开最下面的那个 67Mboot 分区即可。
    打开这个分区后,内容如下:
    编译华硕Tinkerboard Rk3288 内核_第4张图片
    红色箭头所指的文件就是我们需要替换的文件。
  • 3、替换kernel: 在 /home/zhangh/tinkerboard/debian_kernel-develop/arch/arm/boot 目录内,找到zImage,替换掉上图中的zImage 即可。
  • 4、替换dtb文件: 在 /home/zhangh/tinkerboard/debian_kernel-develop/arch/arm/boot/dts 目录中找到 rk3288-miniarm.dtb 替换掉上图中的 rk3288-miniarm.dtb 即可。

写在最后

  • 1、到这里,内核更新完毕;
  • 2、后续再更新编译Qt到tinkerboard上;
  • 3、如有不对的地方请指正,联系方式:[email protected]

你可能感兴趣的:(tinkerboard)