web-dev-qa-db-ja.com

AndroidデバイスでのネイティブArch Linuxの起動

Galaxy Note 10.1(n8010)を持っているので、Arch Linuxをネイティブに起動したい。 AndroidではなくArch Linuxを起動することを意味します。私が必要としているのは、世界のどこにもない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をポイントするだけです

問題は、Archの新しいsystemdを起動するためにカーネル4.xが必要なことです。

カーネルを機能させるためには、エラーなどを表示するシリアルコンソールが必要です。カーネルを構築するときに、必要な構成設定をポストします。

Mkbootimgがない(カーネルをコンパイルしてそれを取得する)場合は、プリコンパイル済みのものを見つけました

リンク:

26
dzervas

これが役立つかどうかはわかりませんが、Arch Linuxのハウツーです http://forum.xda-developers.com/showthread.php?t=2195778

4
user961559

一般的なスマートフォンでネイティブArchを使用することはできません。

Archは x86_64のみをサポートします。しかし、非公式があります アーチアーム

0
PHPoenX