モバイル デバイスで Linux カーネルを変更して起動する

モバイル デバイスで Linux カーネルを変更して起動する

学生時代、私は Android iOS アプリと Web サイトを 18 か月近く開発してきました。現在は最終学年のプロジェクトとして、Android などのモバイル デバイスで起動することを目標に Linux ソース コードに取り組んでいます。インターネットのチュートリアルに従って、Debian パッケージとして正常に実行できました。現在は Ubuntu を使用しています。

戦略はあるのですが、正しい方向に進んでいるかどうかわかりません。次のようになります。

答え:

  1. Linux ソース コードをダウンロードします。余分なドライバーを削除し、コンパイルして、現在実行中の Ubuntu にインストールして使用します。

  2. コードをさらにカスタマイズして、独自のディストリビューションとして起動します。そのためには、LFS

  3. 特定のターゲット モバイルを指定し、それに合わせてコードを変更し、必要な場合はドライバーを書き込み (どれが必要かはわかりません (それが私がここにいる理由です :) )、その上でカーネルを起動します。

私の戦略が正しいかどうかわかりません。誰か教えていただけると嬉しいです。

バ:

  1. 私は正しい方向に進んでいるでしょうか? そうでない場合、正しい方向とはなんでしょうか?
  2. モバイルを指定して、そのモバイルのカーネル コードをカスタマイズする必要がありますか?
  3. ドライバー以外にカーネルで変更する必要があるものは何ですか?
  4. 最後になりましたが、モバイル デバイスでカーネルを起動すると、そこにインターフェイスや端末が表示されますか?

質問が意味をなさなかったら申し訳ありません。私は学生で、まだ物事を理解しようとしているところです。インターネットでどのようなテーマを検索すればよいかヒントをいただけると大変ありがたいです。

更新: 私が望んでいるのは、私の戦略が正しいかどうか確認することです。正しくない場合は、従うべき手順を教えてください。

答え1

kernel.org の標準カーネルではなく、Android Linux カーネルを最初にコンパイルしてみるほうがはるかに簡単ではないでしょうか。カーネルは GPL なので、原理的には、これはすべての Android デバイスで利用できるはずです。製造元が無知であるか、GPL 違反者として知られているために、ターゲット デバイスのカーネル ソースを入手できない場合は、次に、同様の SoC (Tegra 3、RK3188 など) を搭載したデバイスのソース コードをダウンロードしてコンパイルします。

多数の SoC 設計を実行するモバイル デバイスで起動することは、おなじみの AMD または Intel CPU を搭載したデスクトップまたはラップトップから起動するよりもはるかに不確実な提案であることに注意してください。実際には、カーネルをモバイル デバイスにコピーまたはフラッシュできるかどうかさえわかりません (もちろん、モバイル デバイスがラップトップの場合は除きます)。したがって、その点についても調査する必要があります。

そこで、まず最初に調べるのは、対象デバイスです。外付け SD カードから起動できるデバイスを選択することをお勧めします。理論的には、カーネルとその他の OS を SD カードにコピーするだけで Linux を実行できるからです。それ以外では、カーネルを適切なブート パーティションにフラッシュできる、機能するリカバリ パーティションを備えたデバイスを選択します。このようなデバイスには、実質的に Android ブート パーティションとリカバリ パーティションの 2 つのブート パーティションがあります。そのため、デバイスが起動できなくなるような問題が発生した場合は、デバイス上の特別なハードウェア ボタンの組み合わせを押してリカバリ パーティションを起動し、デバイスを使用可能な状態に戻すことができます。

関連情報