参考官方资料:主线Linux编译 - Sipeed Wiki
首先
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [scripts/Makefile.host:99:scripts/dtc/dtc] 错误 1
make[1]: *** [scripts/Makefile.build:575:scripts/dtc] 错误 2
修改源码 dtc-lexer两个文件中的YYLTYPE 都加上extern
第一个编译完成
然后
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 INSTALL_MOD_PATH=out modules
然后运行
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 INSTALL_MOD_PATH=out modules_install
全部编译完成
编译成功后,生成文件所在位置:
- 内核img文件:./arch/arm/boot/zImage
- 设备树dtb文件:./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
- modules文件夹:./out/lib/modules
zImage和dtb需要拷贝到SD卡的第一个分区(参考全志F1C100s使用记录:u-boot & linux & rootfs 编译与烧录测试(基于SD卡)_全志linux系统烧录_Naisu Xu的博客-CSDN博客)