RuralHunter / CoreELEC

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

求助n1-19的编译问题 #59

Closed fooy closed 2 years ago

fooy commented 2 years ago

尝试编译n1-19分支,试了好多次, img文件最终能编译成功,编译过程中尝试修复了两个简单的错误:https://github.com/RuralHunter/CoreELEC/compare/n1-19...fooy:compile

但是生成的img文件总是无法启动 把RuralHunter大神提供的release下载版本的kernel.img文件替换到自己编译的u盘目录下是可以启动成功的

看来是编译生成的内核有问题,但没有串口也不知道发生了什么。。

求RuralHunter 大神指导下如何成功编译, 我还是希望能够编译以便自己加入一些需要的内核特性。

% ls /Volumes/COREELEC SYSTEM boot.ini device_trees kernel.img s905_autoscript SYSTEM.md5 config.ini dtb.img kernel.img.md5 uInitrd

RuralHunter commented 2 years ago

不应该啊,如果build没错而且你没改过什么的话。

ihipop commented 2 years ago

因为他代码里面编译出来的kernel是是android的boot img 您可以看下我关于此事的反馈,https://github.com/RuralHunter/CoreELEC/pull/56#issuecomment-969902710

ihipop commented 2 years ago

另外pcre的问题是因为那个ftp站点关掉了,pcre的官方说ftp站点关闭让使用他们自己维护的source sourceforge,我也改了这个代码但是我想还是直接合并到CORELEC上游比较好 https://github.com/ihipop/CoreELEC/commit/deef7b5ed0924f6e663c67b93ebf3ef118d9ef6f

https://github.com/CoreELEC/CoreELEC/pull/303

ihipop commented 2 years ago

我尝试撤销提交 https://github.com/RuralHunter/CoreELEC/commit/16db786d 但是生成镜像的时候,这个脚本 会报错找不到initramfs.cpio https://github.com/RuralHunter/CoreELEC/blob/22f42fc0c9fb2a3ffb09ff40e7dfed73ab2cb09b/projects/Amlogic-ce/devices/Amlogic-ng/bootloader/release#L6

RuralHunter commented 2 years ago

try the latest commit.

ihipop commented 2 years ago

try the latest commit.

file kernel.img
kernel.img: Linux kernel ARM64 boot executable Image, little-endian, 4K pages

我测试了一下貌似可以了,具体晚上回家上机实测一下,

但是:前提是和楼主一样我必须撤销这里提到的这个提交 https://github.com/RuralHunter/CoreELEC/commit/a54525bf 请问当时做出这个修改的原因是什么么?

RuralHunter commented 2 years ago

u-boot-tools:host我这里加了编译通不过,原因还不清楚。可能跟我编译的机器上本身有u-boot-tools有关。 你那里加了能通过就行。

ihipop commented 2 years ago

u-boot-tools:host我这里加了编译通不过,原因还不清楚。你那里加了能通过就行。

我不加,最后生成镜像的时候,这个脚本没法在toolchain里面调用mkimage https://github.com/RuralHunter/CoreELEC/blob/22f42fc0c9fb2a3ffb09ff40e7dfed73ab2cb09b/projects/Amlogic-ce/devices/Amlogic-ng/bootloader/release#L6 ,不加这个toolchain里面没mkimage

楼主的问题应该是和我一样的,我为了验证这个问题还专门到github的actions弄干净的环境来测试

RuralHunter commented 2 years ago

我这里toolchain下面是有mkimage的。

ihipop commented 2 years ago

我这里toolchain下面是有mkimage的。

我看楼主也有这个问题他自己打了和我一样的补丁。

你是 parallel build么, 非parallel build,的情况下如果正好前序有个程序依赖了u-boot-tools:host就会自动生成的,这样吧,我把你现在最新的分支提交拉github的actions的干净环境从0再来编译一次,3小时后看下结果

ihipop commented 2 years ago

我这里toolchain下面是有mkimage的。

我看楼主也有这个问题他自己打了和我一样的补丁。

你是 parallel build么, 非parallel build,的情况下如果正好前序有个程序依赖了u-boot-tools:host就会自动生成的,这样吧,我把你现在最新的分支提交拉github的actions的干净环境从0再来编译一次,3小时后看下结果

日志来了 ,github的actions的干净环境从0开始编译 从你的最新分提交拉的代码 https://github.com/ihipop/CoreELEC/commits/build/n1-19-RuralHunter 只添加了actions的builder和pcre的url修改补丁 完整日志如下,和我之前反复尝试的修改一样 就是会找不到mkimage logs_19.zip

fooy commented 2 years ago

刚刚拉下了大佬最新的修改编了一下可以启动了, 感谢激动,我是从9.2.1升上来的,终于可以用上新的内核了,也可以摆脱3.14时代的内核高负载了, 十分感谢RuralHunter即时的反馈.

还是建议保留下我的修改 https://github.com/RuralHunter/CoreELEC/compare/n1-19...fooy:compile ,mkimage应该是可以用本机apt install u-boot-tools代替吧不过也要修改脚本中的路径 .

ihipop commented 2 years ago

刚刚拉下了大佬最新的修改编了一下可以启动了, 感谢激动,我是从9.2.1升上来的,终于可以用上新的内核了,也可以摆脱3.14时代的内核高负载了, 十分感谢RuralHunter即时的反馈.

建议保留下我的修改 n1-19...fooy:compile ,mkimage应该是可以用本机apt install u-boot-tools代替吧不过也要修改脚本中的路径 .

本机安装的mkimage不会自动拷贝到toolchain的bin目录的。你要是手动拷贝只要不执行make clean那也可以。不过我反复测试了,干净的环境必须撤销这个https://github.com/RuralHunter/CoreELEC/commit/a54525bf 提交才能编译

fooy commented 2 years ago

刚刚拉下了大佬最新的修改编了一下可以启动了, 感谢激动,我是从9.2.1升上来的,终于可以用上新的内核了,也可以摆脱3.14时代的内核高负载了, 十分感谢RuralHunter即时的反馈. 建议保留下我的修改 n1-19...fooy:compile ,mkimage应该是可以用本机apt install u-boot-tools代替吧不过也要修改脚本中的路径 .

本机安装的mkimage不会自动拷贝到toolchain的bin目录的。你要是手动拷贝只要不执行make clean那也可以。不过我反复测试了,干净的环境必须撤销这个a54525b 提交才能编译

是的, 建议提pr撤销,而且这段依赖本来就属于官方repo的内容吧 还有pcre.org站点页面上提到的ftp.pcre.org 不再可用的问题,估计CE官方代码库很快也会修改地址的,我们可以提前改或者等大佬pull官方代码后自动merge进来吧 : )

ihipop commented 2 years ago

刚刚拉下了大佬最新的修改编了一下可以启动了, 感谢激动,我是从9.2.1升上来的,终于可以用上新的内核了,也可以摆脱3.14时代的内核高负载了, 十分感谢RuralHunter即时的反馈. 建议保留下我的修改 n1-19...fooy:compile ,mkimage应该是可以用本机apt install u-boot-tools代替吧不过也要修改脚本中的路径 .

本机安装的mkimage不会自动拷贝到toolchain的bin目录的。你要是手动拷贝只要不执行make clean那也可以。不过我反复测试了,干净的环境必须撤销这个a54525b 提交才能编译

是的, 建议提pr撤销,而且这段依赖本来就属于官方repo的内容吧 还有pcre.org站点页面上提到的ftp.pcre.org 不再可用的问题,估计CE官方代码库很快也会修改地址的,我们可以提前改或者等大佬pull官方代码后自动merge进来吧 : )

PCRE的问题我已经给CE提PR了,看我4楼回复。 mkimage的问题还是建议 @RuralHunter 能撤销 u-boot-tools:host 那个提交,毕竟我和 @fooy 实际测试下来都是必须要撤销才能正常从0编译

RuralHunter commented 2 years ago

跟我本机安装的libfdt-dev冲突了,我删除掉就可以加回去了。

ihipop commented 2 years ago

跟我本机安装的libfdt-dev冲突了,我删除掉就可以加回去了。

我还有个好奇的地方,@RuralHunter ,你为什么打开BUILD_ANDROID_BOOTIMG没去掉后面那个if判断后也能编译出

Linux kernel ARM64 boot executable Image 的kernel.img,而我之前只能编译出android boot img的kernel.img 。。

RuralHunter commented 2 years ago

我估计应该是跟上一个问题有关,我toolchain里的mkimage用的是本机自带的,不是u-boot-tools里的。

ihipop commented 2 years ago

我估计应该是跟上一个问题有关,我toolchain里的mkimage用的是本机自带的,不是u-boot-tools里的。

应该不是这个问题,当时你没撤销提交之前因为toolchain里面不能生成mkimage,我手动装过一个ubuntu自带的u-boot-tools,然后拷贝mkimage到toolchain里面,出来的镜像还是没法启动的(而且那个release脚本写死了调用路径是toolchain目录)