1、安装一些依赖:
sudo apt install gcc flex bison libssl-dev bc kmod
2、下载源码:
Linux的kernel官网:Kernel官网,可以直接去荔枝派的Github仓库下载:荔枝派的Github仓库
git clone -b zero-5.2.y --depth 1 https://github.com/Lichee-Pi/linux.git
加上--depth 1
表示拉去的是最近一次更改的版本。
3、修改顶层Makefile文件(方便之后的编译):
ARCH = arm //指定芯片架构
CROSS_COMPILE = arm-linux-gnueabihf- //指定编译器版本
4、编译源码,生成zImage、dtb
cd linux
make licheepi_zero_defconfig //生成config文件
make menuconfig //一般不用修改,需要时单独改
make -j16
make dtbs //编译设备树
编译完成之后,在arch/arm/boot
下,生成zImage文件,在arch/arm/boot/dts
下生成相应的设备树文件。
5、Kernel适配Ethernet
配置menuconfig:
make ARCH=arm menuconfig
设置以太网支持:
Device Drivers —>[ * ] Network device support —>[ * ] Ethernet driver support —>[ * ] STMicroelectronics devices< * > STMicroelectronics Multi-Gigabit Ethernet driver[ ] Support for STMMAC Selftests< * > STMMAC Platform bus support< > Support for snps,dwc-qos-ethernet.txt DT binding.< * > Generic driver for DWMAC< * > Allwinner GMAC support< * > Allwinner sun8i GMAC support
配置NFS文件系统相关网络:
Networking support ->Networking options ->TCP/IP networkingIP: kernel level autoconfiguration[ * ] IP: DHCP support[ * ] IP: BOOTP support
配置NFS文件系统:
File systems —>Network File Systems —>< * > NFS client support< > NFS client support for NFS version 2[ * ] NFS client support for NFS version 3[ * ] NFS client support for the NFSv3 ACL protocol extension[ * ] NFS client support for NFS version 4 (EXPERIMENTAL)[ * ] NFS client support for NFSv4.1 (DEVELOPER ONLY)[ * ] Root file system on NFS
将编译生成的zImage和dtb文件放进boot分区即可启动。