在 Android 设备上启动原生 Arch Linux

在 Android 设备上启动原生 Arch Linux

我有一台 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. 获取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. 更改初始化脚本<-立即测试,完成后我将发布正确的内容
  8. 寻找 。 | cpio -o -H 新c | 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 的人(你可以通过编译内核来获得),我找到了一个预编译的

链接:

答案1

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

答案2

我找到了类似任务的教程,如何在 Google Nexus 7 Android 平板电脑上安装 Ubuntu Linux,也许它可以适应您的项目?它用fastboot解锁引导加载程序并使用不同的引导加载程序重新启动。 HTH,我从来没有玩过 Android。

答案3

普通智能手机上无法使用原生Arch。

足弓支撑仅x86_64。但也有非官方的拱臂

相关内容