基于NanoPi3(三星S5P6818)的kernel移植(二)
说明1:在编译过程中,有可能遇到一些报错,大概率是缺少了一些链接库,需要根据对应的错误进行安装。
说明2:当前内核(kernel)移植相对简单,由于使用了配置好的.config文件,以及设备树(dtb),同时还有分区挂载之类的内容都是省略掉了,如需要深入学习,可自行专研,此文章不再过多分析。
1.安装交叉编译器
1)新建文件夹, 并进入nanopi3目录。
mkdir nanopi3
cd nanopi3
2)安装aarch64-linux-gcc 6.4 ,使用命令下载。
git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
3)然后cd prebuilts/gcc-x64 ,最后使用命令解压并放到/opt/目录下。
cat toolchain-6.4-aarch64.tar.gz* | sudo tar xz -C /
4)打开.bashrc:vim .bashrc 添加编译链的bin文件路径 ( 类似windows下的添加环境变量 ),在文件末尾 添加以下内容。
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin:$PATH
export GCC_COLORS=auto
5)然后保存退出,最后更新环境变量。
source .bashrc
2.获取源代码
1)拉取代码,从github上拉取对 NanoPi3 进行了适配的 kenrel(如果没有git请先安装)。
2)进入nanopi3 目录,
cd nanopi3
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1
3.编译kernel
1)建议使用如下命令编译。 进入下载的kernel文件中。
cd linux
2)S5P6818内核所属的分支是nanopi2-v4.4.y,与S5P4418相同,在开始编译前先切换分支。
touch .scmversion
3)编译生成Image、dtb。
make ARCH=arm64 nanopi3_linux_defconfig
make ARCH=arm64
4)编译成功结束后,新生成的内核是 arch/arm64/boot/Image, 目录arch/arm64/boot/dts/nexell/下还包括新的DTB文件(s5p6818-nanopi3-rev*.dtb)。
后续上传:
基于NanoPi3(三星S5P6818)的rootfs移植(二)