在 Android 设备上启动原生 Arch Linux

dze*_*vas 27 arch-linux android

我有一个 Galaxy Note 10.1 (n8010),我想让它在本地启动 Arch Linux。我的意思是启动 Arch Linux 而不是 android。我所需要的只是更改 initramfs,我在世界上任何地方都找不到。我的问题:

  • 我是否只需要更改 initramfs,或者我还必须处理其他事情?(比如内核本身)
  • [完成] 我从哪里得到 CyanogenMod 10.1 的官方 initramfs(可能是 github)?或者我必须自编译 CyanogenMod 的内核并从 zImage 中提取它?
  • [可能] 我可以在 android 数据分区内拥有 Arch linux 根目录吗?(例如/data/linux) 或者我必须买一张SD卡?
  • 我还需要知道/做什么?

编辑:我找到了如何更改 initramfs :)

  1. 解压 rom(用于 n8013 的 CM10.1)
  2. wget http://whiteboard.ping.se/uploads/Android/unmkbootimg.gz
  3. gunzip unmkbootimg.gz
  4. ./unmkbootimg boot.img(保存 mkbootimg 给出的命令!)
  5. mkdir initramfs && cd initramfs
  6. gzip -cd initramfs.cpio.gz | cpio -i
  7. 更改 init 脚本 <- 立即测试,完成后我将发布正确的
  8. 找 。| cpio -o -H newc | gzip > ../initramfs.cpio.gz(不确定命令是否正确...)
  9. cd .. && 清理目录,只剩下 initramfs.cpio.gz 和 zImage ......
  10. 执行你之前保存的 mkbootimg 命令...
  11. 刷新新的 boot.img :)

编辑 2:initramfs 相当容易构建您只需要挂载根文件系统(分区或 linux 映像)并通过 initramfs 中的符号链接指向其 init

问题是你需要内核 4.x 来启动 Arch 的新 systemd

为了让内核工作,你需要一个串行控制台来查看错误和内容。当我构建内核时,我会发布所需的配置设置。

对于那些没有 mkbootimg 的人(你可以通过编译内核来获得),我找到了一个预编译的

链接:

use*_*559 4

不确定这是否有帮助,但这是 Arch Linux 的指南http://forum.xda-developers.com/showthread.php?t=2195778

  • 欢迎来到 Unix 和 Linux!一般来说,我们希望网站上的答案能够独立存在 - 链接很棒,但如果该链接断开,答案应该有足够的信息仍然有帮助。请考虑编辑您的答案以包含更多详细信息。有关详细信息,请参阅[常见问题解答](http://unix.stackexchange.com/faq)。 (6认同)