itop4412 Linux最小系统环境搭建

一、前言

首先按照官方给的流程,采用比较新的4.14.2内核来学习Linux驱动和arm编程。在学习前必须先搭建好学习的开发环境,迅为官方的itop-4412开发板默认烧写的是安卓系统,需要重新烧写自己编译的uboot和内核文件。内核文件使用官方提供的system.img即可,如果想要自己编译,可以选择busybox,笔者使用官方提供的\ iTOP-4412开发板系统源码及镜像(其他)\高版本busybox1.26.2移植资料\编译好的镜像\system.img文件即可。

二、编译uboot

2.1 编译uboot时出错

在编译uboot时有下列错误提示:

dtc: invalid option -- 'i'

通过查询互联网上的资料,发现是device tree compiler的版本过低,通过apt安装的为1.3的版本。需要先卸载掉,然后手动通过deb离线包安装1.4的版本即可。下面给出官方离线包路径,点击后面安装包名下载。跳转链接 --> device-tree-compiler_1.4.0+dfsg-2_i386.deb

三、编译Linux内核

3.1 结果

以下结果说明编译内核成功。

...
OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-4.14.2
Created:      Wed Feb 27 08:28:44 2019
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    5599808 Bytes = 5468.56 kB = 5.34 MB
Load Address: 40007000
Entry Point:  40007000
...
DTC     arch/arm/boot/dts/exynos4412-itop-elite.dtb
...

四、烧写到tf卡

1、官方推荐方式

采用官方的mmc中的出厂uboot,提供的fastboot方式来对tf卡进行分区,然后写入最小文件系统system.img。

2、网络方式

也可以采用uboot提供的网络功能,用tftp下载内核和设备数文件,再通过nfs挂载根文件系统。此方法比较方便快捷,适合内核文件经常变更的场景,也可以适合根文件系统经常有变动的场景。

五、整理好的源码

1、说明

参考官方的uboot和Linux源码,为了学习和调试的方便,参考官方的手册,将内核配置成了nfs启动。需要根据手册,配置好NFS服务器和配置参数,根据自己的环境修改对应文件,然后编译好uboot和内核文件。最后通过uboot将内核烧写进去即可。

2、链接

下面放出依据itop官方源代码,稍加修改的uboot和Linux源码。

  • Uboot: https://github.com/jason416/itop4412_uboot_official
  • Linux: https://github.com/jason416/itop4412_linux_official

具体最小文件系统请查阅本专题其他文章,有详细教程说明,本文只是一个概览。

3、搭建好的环境汇总

参见我的另一篇文章搭建好的itop4412驱动学习环境汇总 - 可直接下载使用。有学习驱动的环境归总,可直接下载使用。

你可能感兴趣的:(itop4412 Linux最小系统环境搭建)