Closed daifiyum closed 1 year ago
我发现编译时,把~/amlogic-s9xxx-armbian/compile-kernel/tools/config/config-6.1配置文件复制到内核源码目录下并重命名为.config,但他似乎不仅仅是复制,还对.config里面的配置做了还原,比如把我修改的部分配置全给还原了...,这也就说明了为什么我自定义配置编译后不生效的原因,但这是怎么回事?
config文件的正确配置方法:
在你的~/amlogic-s9xxx-armbian/compile-kernel/kernel/linux-6.1.y
里面(复制config-6.1进来,重命名为.config)运行make menuconfig
,找到要配置的项目,勾选或取消,保存退出。
把得到的.config 复制到 ~/amlogic-s9xxx-armbian/compile-kernel/tools/config/config-6.1
然后再编译,这样就使用配置好的文件了。
你直接手工修改,有些选项有前置配置项,所以直接修改不能被接受。
有点莽了,9千多行的配置我直接徒手改...,去试试make menuconfig
编辑recompile文件,把make ${MAKE_SET_STRING} menuconfig
取消注释,即可在编译时打开menuconfig配置界面,修改需自定义配置保存退出即可继续编译
这个修改适合本地编译,在actions里编译没法配置,需要手动上传本地配置好的config
cd ~/amlogic-s9xxx-armbian/compile-kernel/kernel/linux-6.1.y
目录下,执行make menuconfig
,可以自定义配置,但保存后,发现.config
文件里面多了很多和我自定义无关的配置项,而不是和我自定义相关的必要配置项,此时这个.config
配置文件编译后,也无法成功安装内核???,但在recompile里面开启menuconfig进行配置,只会生成必要的配置项,并且内核可以正常安装
在目录下要先cp原来的config-6.1进来,命名为.config,再执行make menuconfig,这样使用已有的配置再修改添加自己的选项即可。如果你不复制,直接make menuconfig就没使用之前的选项,你要全部配置一遍。
我复制了原config-6.1配置文件到.../linux-6.1.y下,并重命名为.config
,然后执行make menuconfig
,保存生成的配置文件确实继承了原配置,但里面也多了很多不必要的配置,最后编译的内核也无法安装
看recompile脚本,我发现需要在make menuconfig命令里面加上如下参数:
MAKE_SET_STRING = "ARCH=arm64 CROSS_COMPILE=/usr/local/toolchain/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- CC=/usr/local/toolchain/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc LD=/usr/local/toolchain/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-ld.bfd LOCALVERSION=-ophub"
make ${MAKE_SET_STRING} menuconfig
这样保存后的配置就没什么问题了
是的,在x86里交叉编译时需要指定编译参数
Device Information | 设备信息
Armbian Version | 系统版本
Describe the bug | 问题描述 个人需求,需要自定义几个内核配置,通过Action和Ubuntu22.04进行编译,都出现自定义配置不生效的问题,详细描述见下方
Please provide a detailed description of the issue and, if necessary, attach a screenshot. 详细描述问题,并在必要时附上屏幕截图。
克隆仓库到本地 git clone --depth 1 https://github.com/ophub/amlogic-s9xxx-armbian.git
安装必要的软件包:
sudo apt-get update -y sudo apt-get full-upgrade -y sudo apt-get install -y $(cat compile-kernel/tools/script/ubuntu2204-build-armbian-depends)
编辑~/amlogic-s9xxx-armbian/compile-kernel/tools/config/config-6.1 自定义内核配置(由y改成m):
进入 ~/amlogic-s9xxx-armbian 根目录,然后运行 sudo ./recompile -k 6.1.61 编译内核
编译完后将内核上传到N1的家目录并解压,进入解压后的内核目录下,运行armbian-update命令从6.1.60内核更新到当前目录内的6.1.61内核
完成更新后,再次ssh登入系统,执行zcat /proc/config.gz | grep “IPV6”命令查看内核配置文件,发现自定义的那几个配置项(除了CONFIG_IPV6_SIT)并没有改成m还是y,即没有生效
如图所示: