Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
fooy opened this issue Nov 14, 2021 · 19 comments
Closed

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

fooy opened this issue Nov 14, 2021 · 19 comments

Comments

@fooy
Copy link

fooy commented Nov 14, 2021

尝试编译n1-19分支,试了好多次, img文件最终能编译成功,编译过程中尝试修复了两个简单的错误: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
Copy link
Owner

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

@ihipop
Copy link

ihipop commented Nov 16, 2021

因为他代码里面编译出来的kernel是是android的boot img 您可以看下我关于此事的反馈,#56 (comment)

@ihipop
Copy link

ihipop commented Nov 16, 2021

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

CoreELEC#303

@ihipop
Copy link

ihipop commented Nov 16, 2021

我尝试撤销提交 16db786d 但是生成镜像的时候,这个脚本 会报错找不到initramfs.cpio

$TOOLCHAIN/bin/mkimage -C none -T ramdisk -A arm64 -d $INSTALL/../initramfs.cpio $INSTALL/usr/share/bootloader/uInitrd

@RuralHunter
Copy link
Owner

try the latest commit.

@ihipop
Copy link

ihipop commented Nov 16, 2021

try the latest commit.

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

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

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

@RuralHunter
Copy link
Owner

RuralHunter commented Nov 16, 2021

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

@ihipop
Copy link

ihipop commented Nov 16, 2021

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

我不加,最后生成镜像的时候,这个脚本没法在toolchain里面调用mkimage

$TOOLCHAIN/bin/mkimage -C none -T ramdisk -A arm64 -d $INSTALL/../initramfs.cpio $INSTALL/usr/share/bootloader/uInitrd

,不加这个toolchain里面没mkimage

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

@RuralHunter
Copy link
Owner

我这里toolchain下面是有mkimage的。

@ihipop
Copy link

ihipop commented Nov 16, 2021

我这里toolchain下面是有mkimage的。

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

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

@ihipop
Copy link

ihipop commented Nov 16, 2021

我这里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
Copy link
Author

fooy commented Nov 16, 2021

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

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

@ihipop
Copy link

ihipop commented Nov 16, 2021

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

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

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

@fooy
Copy link
Author

fooy commented Nov 16, 2021

刚刚拉下了大佬最新的修改编了一下可以启动了, 感谢激动,我是从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
Copy link

ihipop commented Nov 16, 2021

刚刚拉下了大佬最新的修改编了一下可以启动了, 感谢激动,我是从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
Copy link
Owner

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

@ihipop
Copy link

ihipop commented Nov 17, 2021

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

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

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

@RuralHunter
Copy link
Owner

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

@ihipop
Copy link

ihipop commented Nov 17, 2021

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants