找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 9774|回复: 48

[N1盒子] N1启动原版EmuELEC的方法

  [复制链接]
发表于 2021-11-5 15:40 | 显示全部楼层 |阅读模式
本帖最后由 ekenchan 于 2022-5-15 21:05 编辑

目前N1跑Emuelec的办法都是替换补丁,补丁里的内核是从CoreELEC编译来的,所以启动时会显示CoreELEC的logo,对于洁癖党来说不能忍受,而且一直用这个补丁内核的话,就不能随EmuELEC的更新而更新。哪有没有办法直接启动原版呢?答案是肯定的。

首先得搞清楚为什么N1不能启动原版的原因。那是因为EmuELEC的内核打包成Android boot image格式,而N1的uboot却只支持未经压缩的内核,那我们只要想办法从EmuELEC的中解包出来未经压缩的内核和initramfs就可以了。

下面是步骤:
1、从新版的EmuELEC镜像中获取kernel.img,然后下载解包工具http://whiteboard.ping.se/uploads/Android/unmkbootimg.gz,解压,在linux环境运行
  1. ./unmkbootimg kernel.img
复制代码
会得到类似以下的文件
  1. initramfs.cpio.gz
  2. zImage
复制代码


2、把initramfs.cpio.gz打包成uInitrd
  1. mkimage -A arm64  -T ramdisk -C none -d initramfs.cpio.gz uInitrd
复制代码


3、解压zImage,获得未压缩的内核
  1. mv zImage image.lzo
  2. lzop -d image.lzo -o kernel
复制代码


4、这里得到的kernel就是未压缩的内核,把他改名成kernel.img
  1. mv kernel kernel.img
复制代码


大功告成,把kernel.img和uInitrd替换补丁里的同名文件,启动时就是用原版内核了


评分

参与人数 2恩山币 +2 收起 理由
5asd*** + 1 今天天气不错,适合泡妞。
jdp*** + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2021-11-5 16:41 | 显示全部楼层
谢谢分享!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-5 19:20 | 显示全部楼层
谢谢分享!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-5 20:19 | 显示全部楼层
手持N1来顶
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-6 06:55 来自手机 | 显示全部楼层
求分享文件
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-7 08:23 | 显示全部楼层
马克一下,有空试试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-7 16:17 | 显示全部楼层
等我的砖头变回来了就试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-7 22:34 | 显示全部楼层
还是不懂,好处是......???

点评

实测无效  发表于 2021-11-8 20:52
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-13 15:22 | 显示全部楼层
root@OpenWrt:~# ./unmkbootimg kernel.img
./unmkbootimg: line 1: syntax error: unexpected word (expecting ")")

运行出错,可能是Linux版本问题?Openwrt不支持?

点评

这是x86_64版本的程序,先确定你的OpenWrt是不是x86_64架构  详情 回复 发表于 2021-11-17 09:26
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-11-17 09:26 | 显示全部楼层
kingwood 发表于 2021-11-13 15:22
root@OpenWrt:~# ./unmkbootimg kernel.img
./unmkbootimg: line 1: syntax error: unexpected word (expe ...

这是x86_64版本的程序,先确定你的OpenWrt是不是x86_64架构
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-19 16:23 | 显示全部楼层
好了,换了Windows 的WSL下可以按照楼主的方法进行操作了,我操作的是原版4.3的emuelec,确认打补丁是可以U盘启动,然后把kernel.img和uInitrd替换补丁里的同名文件,结果是无法U盘启动。楼主替换的是哪个版本,可以提供你转换的两个文件吗?

点评

我也实测失败  发表于 2021-11-19 16:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-19 16:35 | 显示全部楼层
  1. mv zImage image.lzo
  2. lzop -d image.lzo -o kernel
  3. mv kernel kernel.img
复制代码
这三行代码换成一行代码不行吗?
  1. lzop -d zImage -o kernel.img
复制代码

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-19 21:56 | 显示全部楼层
本帖最后由 kingwood 于 2021-11-19 21:58 编辑

经过今天的最新测试,是部分可行的。处理得出的kernel.img可以用,但是不要用uInitrd。说说我的具体情况,我原来是用人家的启动文件,但是不知道是什么版本,反正不是CoreELEC的logo,可能是4.1的,但是不支持中文名字的游戏rom,然后按楼主的办法,得到原版4.3的未经压缩的内核kernel.img,直接替换掉4.1的,不替换uInitrd,这样可以启动了,然后系统可以支持中文名字的游戏rom,而且这样比旧版CoreELEC的logo的启动要快得多。另外想问问uInitrd是起什么作用?

点评

如果不提取ramdisk应该也是可行的,但是要修改s905_autoscript。Lakka的内核就不带ramdisk,可以通过修改s905_autoscript在N1上启动  详情 回复 发表于 2021-11-22 09:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-20 11:30 | 显示全部楼层
感谢楼主分享!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-20 12:02 | 显示全部楼层
另外,今天搞定了uInitrd的问题,我是用以下参数的,实测N1可以启动,感谢楼主,通过这种方法N1可以用上最新的游戏镜像了

  1. mkimage -A arm64 -T ramdisk -C none -n uInitrd -d initramfs.cpio.gz uInitrd
复制代码

点评

这个确实可以  发表于 2021-11-21 12:23
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 16:09

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表