RuralHunter / CoreELEC

This is CoreELEC for Phicomm N1 device only. Run ./mkn1 to build.
https://coreelec.org
597 stars 105 forks source link

CE工程目录如何启动menuconfig #32

Closed matthuo333 closed 3 years ago

matthuo333 commented 3 years ago

需要进行kernel中组件相关配置,需要启动menuconfig,但为啥启动不了呢? 启动后报错:

make: *** No rule to make target 'menuconfig'. Stop.

望大神赐教

RuralHunter commented 3 years ago

在编译生成的build目录下的linux-xxxx目录下执行: make menuconfig ARCH=arm64 HOSTCC=../toolchain/bin/host-gcc HOSTCXX=../toolchain/bin/host-g++

ihipop commented 3 years ago

但是这样不会修改原来的内核conf文件,需手工合并回去,往往还会带来依赖模块合并不全的问题。。

ihipop commented 3 years ago

@RuralHunter 请教一下为什么主目录的mkn1脚本写的是ARCH=arm但是内核这里是ARCH=arm64 我看了一下内核是aarch64的,但是rootfs程序是arm的?

RuralHunter commented 3 years ago

menuconfig这里只是用来生成临时的配置文件,arch无所谓,menuconfig能在你的环境跑起来就行,后面要把配置文件中menuconfig修改过的部分合并到代码库里

ihipop commented 3 years ago

menuconfig这里只是用来生成临时的配置文件,arch无所谓,menuconfig能在你的环境跑起来就行,后面要把配置文件中menuconfig修改过的部分合并到代码库里

我看了仓库里面的配置文件,是ARCH=aarch64的,阁下发布的包,内核也是aarch64,但是rootfs里面的二进制文件都是arm的,我看链接的toolchain也是armv8a-libreelec-linux-gnueabi,是arm的,是有意这么适配的么?我猜是因为libreelec的很多二进制插件是arm的为了兼容?

目前make menuconfig ARCH=arm64出来的配置文件和仓库里面内核conf文件是最接近的,我已经顺利解决了编译问题。

ihipop commented 3 years ago

还有就是OT一个问题,我看阁下的s905_autoscript,会load uEnv.ini到0x10400000 并import, 写在uEnv.ini里面的环境变量启动后并不能被fw_printenv读取这能理解,但是也不会被uEnv.ini里面的其他配置读取

mac=aa:aa:aa:aa:aa:aa
mac_wifi=aa:aa:aa:aa:aa:ab
dtb_name=dtb.img
bootargs=rootfs=ramfs init=/init boot=LABEL=COREELEC disk=LABEL=STORAGE BOOT_IMAGE=kernel.img hdmitx=cecf console=ttyS0,115200n8 console=tty0 no_console_suspend consoleblank=0 systemd.show_status=auto logo=osd1,loaded,0x3d800000,576cvbs maxcpus=4 vout=576cvbs,enable hdmimode=1080p60hz mac=${mac} mac_wifi=${mac_wifi}

实际上最后bootargs并没有读取到${mac_wifi}和${mac},貌似写uEnv里面不和uboot的env一样赋值引用?