Open ChaoliesTinnu opened 1 week ago
我刚才更新了一下内核编译的脚本,支持选择gcc的版本,你可以for后添加其他版本,地址改到你的下载仓库,我没使用过gcc9,我刚接触的时候他已经gcc-11.3了,未经测试没有添加更多版本,我使用过的历史版本都在仓库备份了编译工具链,可以持续下载使用。
修改这个地址,改为低版本的下载地址。
我上我的nanopc-t4(好像是从armbian官网下的镜像),是可以编译通过(只有部分转换错误,稍微修改即可)
tinnu@nanopct4:~/project/yuga$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/12/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 12.2.0-14ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Ubuntu 12.2.0-14ubuntu1)
tinnu@nanopct4:~/project/yuga$ uname -a
Linux nanopct4 6.2.0-rc6-media #23.02.1 SMP PREEMPT_DYNAMIC Mon Feb 13 07:49:02 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
目前进度,终于用其他编译链把内核编译出来的了,编译链指定:arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz 编译的log:
[ STEPS ] Welcome to compile kernel!
[ INFO ] Server running on Ubuntu: [ Release: jammy / Host: x86_64 ]
[ STEPS ] Start Initializing Variables...
[ STEPS ] Start checking the toolchain for compiling the kernel...
[ INFO ] Start downloading Armbian rootfs file [ https://github.com/ophub/kernel/releases/download/dev/armbian.tar.xz ]...
[ INFO ] Start downloading the ARM GNU toolchain [ https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/11.3.rel1/binrel/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz ]...
[ STEPS ] Start querying the latest kernel version...
[ INFO ] (1) Auto query the latest kernel version of the same series for [ 6.1.y ]
[ INFO ] (1) [ 6.1.96 ] is github.com/unifreq/linux-6.1.y/main latest kernel.
[ INFO ] Kernel compilation toolchain: [ gcc ]
[ INFO ] Kernel from: [ unifreq ]
[ INFO ] Kernel patch: [ false ]
[ INFO ] Kernel arch: [ arm64 ]
[ INFO ] Kernel Package: [ all ]
[ INFO ] kernel signature: [ -yourname ]
[ INFO ] Latest kernel version: [ true ]
[ INFO ] kernel initrd compress: [ xz ]
[ INFO ] Kernel List: [ 6.1.96 ]
查看 vmilinz 版本:
Linux version 6.1.96-yourname (root@fv-az881-6) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712, GNU ld (Arm GNU Toolchain 11.3.Rel1) 2.38.20220708) # SMP
%s version %s (root@fv-az881-6) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712, GNU ld (Arm GNU Toolchain 11.3.Rel1) 2.38.20220708) %s
Linux version 6.1.96-yourname (root@fv-az881-6) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712, GNU ld (Arm GNU Toolchain 11.3.Rel1) 2.38.20220708) #1 SMP Tue Jul 2 03:10:37 EDT 2024
pcgcctl
pcgcctl1
但是编译驱动(可以编译出armbian镜像,或者不build armbian,直接把kernel拉下来在pc端用交叉编译链,效果时一样的)依然是:
make ARCH=arm64 CROSS_COMPILE=/media/tinnu/D_pan/DaydayTech/EmbLinux/rockchip/RK3399/toolchain/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- -C /media/tinnu/D_pan/DaydayTech/EmbLinux/rockchip/RK3399/img/sw799/myself/6.1.96/head-6.1.96-yourname M=/home/tinnu/software/linux_driver/yuge_4G/yuga_driver/yuga_driver modules
make[1]: 进入目录“/media/tinnu/D_pan/DaydayTech/EmbLinux/rockchip/RK3399/img/sw799/myself/6.1.96/head-6.1.96-yourname”
awk: 致命错误: 无法以读模式打开文件“include/generated/asm-offsets.h”(没有那个文件或目录)
warning: the compiler differs from the one used to build the kernel
The kernel was built by: aarch64-none-elf-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009
You are using: aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712
CC [M] /home/tinnu/software/linux_driver/yuge_4G/yuga_driver/yuga_driver/GobiUSBNet.o
aarch64-none-linux-gnu-gcc: 错误: ‘-mstack-protector-guard-offset=’缺少参数
make[2]: *** [scripts/Makefile.build:250:/home/tinnu/software/linux_driver/yuge_4G/yuga_driver/yuga_driver/GobiUSBNet.o] 错误 1
make[1]: *** [Makefile:2009:/home/tinnu/software/linux_driver/yuge_4G/yuga_driver/yuga_driver] 错误 2
make[1]: 离开目录“/media/tinnu/D_pan/DaydayTech/EmbLinux/rockchip/RK3399/img/sw799/myself/6.1.96/head-6.1.96-yourname”
make: *** [Makefile:23:rk2] 错误 2
还是识别成 aarch64-none-elf-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) ,搞不清楚问题在哪。 准备看看用官方的换个dtb看看能不能启动。
Device Information | 设备信息
Armbian Version | 系统版本
Describe the bug | 问题描述
** 参考以前的issue尝试
** 探索
我感觉应该是编译链相关的问题,内核目前用的是:arm-gnu-toolchain-13.2.Rel1-aarch64-aarch64-none-elf;我也试过 gcc-arm-11.2-2022.02-aarch64-aarch64-none-elf.tar.xz ;都是一样的问题。
尝试在编译命令上加堆栈保护相关设置,都没有效果:
在PC上直接编译,用的GCC 9.4.0 是可以编译通过的
后来试过拉寒芒那个镜像, 23.1 的,不过他的镜像下面没有 /lib/modules/$(shell uname -r)/build ,apt随便拉了个 linux-header 可以编译通过,GCC 版本好像也是 8 9 这样子。
** 猜测
E: 无法定位软件包 libncurses5 E: 软件包 python3-distutils 没有可安装候选