1.Linux内核
事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi nano进行支持。所以我们完全可以通过licheepi nano的配置文件进行移植。
1.1. 下载内核源码
进入Linux系统官网:
这里面列出的都是一些主要版本,如主线版本,上时间支持版本,个人推荐使用最新的长时间支持版本(5.10.69)。但是因为我这个项目是在参考一位大神的文档的基础上构建的,所以使用的是5.7.1版本,接下来就给一个选择其他版本的方式。
选择任意一项点击 [browse]
在新打开页面选择 【summary】点击【tag】中的【…】切换下载
如果想要直接下载5.7.1版本,请直接使用下面的连接
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.7.1.tar.gz
下载后完成后,将代码复制到Ubuntu虚拟机并解压源码。
【文章福利】小编推荐自己的Linux内核技术交流群: 【977878001】整理一些个人觉得比较好得学习书籍、视频资料!进群私聊管理领取 内核资料包(含视频教程、电子书、实战项目及代码)
内核资料直通车:Linux内核源码技术学习路线+视频教程代码资料
免费加入学习:Linux/c/c++/内核源码/音视频/DPDK/Golang云原生/QT
1.2.配置编译
与上一篇中编译u-boot一样,我们也需要配置对Linux编译进行配置:
- 指定架构类型
- 指定交叉编译工具
- 项目配置
指定架构,就这个很好理解,就是指定CPU类型,就是配置为Arm就行,交叉编译工具即为上一篇已经安装好的编译工具。
用VS打开Linux内核代码,找到Makefile文件:
修改如下配置:
ARCH ?= arm CROSS_COMPILE ?=arm-linux-gnueabi-
如果没找到ARCH 或 CROSS_COMPILE字段,自己手动添加也行,如下图所示:
事实上这两个字段可以不用指定,在进行make的时候加上对应的参数就行,这里为了避免麻烦,所以直接放到了makefile文件中
接下来就是指定项目配置了,这个操作就是让Linux内核认F1C100S/F1C200S这颗soc。
进入内核源码中的arch/arm/configs目录中,可以看到有很多开发板的配置文件,其中sunxi_defconfig是全志的配置文件,但是该配置文件非常不全,需要额外配置大量的选项,一般选项多大上千个,这里先使用licheepi_nano的配置文件。
https://files.cnblogs.com/files/twzy/linux-licheepi_nano_defconfig.zip
下载该文件,解压出linux-licheepi_nano_defconfig,然后将其放到arch/arm/configs/目录下
然后通过终端进入Linux-5.7.1根目录,输入命令:
make menuconfig
进入图形配置界面,如图所示: