3

教育期間中、私はほぼ 18 か月にわたって Android iOS アプリと Web サイトを開発してきました。現在、最終年度のプロジェクトとして、Android などのモバイル デバイスで起動することを目標に Linux ソース コードに取り組んでいます。インターネット上のチュートリアルに従って、Debian パッケージとして成功しました。現在Ubuntuを使用しています。

戦略はあるが、正しい軌道に乗っているかどうかわからない。それは次のとおりです。

A:

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

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

  3. 特定のターゲット モバイルを指定し、そのコードを変更し、必要に応じてドライバーを作成し、どれがどれかわからない (それが私がここにいる理由です :) )、その上でカーネルを起動します。

自分の戦略が正しいかどうかはわかりません。誰かが私に教えてくれれば本当に感謝します:

B:

  1. 私は正しい軌道に乗っていますか?そうでない場合、何が正しいでしょうか?

  2. モバイルを指定して、そのモバイルのカーネル コードをカスタマイズする必要がありますか?

  3. ドライバー以外に、カーネルで何を変更する必要がありますか?

  4. 最後になりましたが、モバイル デバイスでカーネルを起動するときです。そこにインターフェイスや端末を用意する予定はありますか?

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

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

4

1 に答える 1

2

SoC とその周辺のデバイスのドライバーがクローズド ソースであることは珍しくありません。私の知る限り、Exynos SoC のドライバー (Samsung が多くのデバイスで使用しているもの) は(部分的に) クローズド ソースです。

したがって、一般的に言えば、あらゆる人のためのドライバーを作成する必要があります。特に、独自のファームウェア blob を必要とするデバイスがないため、実際の無線接続は注意が必要です (ただし、残りのドライバーはオープン ソースである可能性があります)。

もう 1 つの問題は、多くのデバイスのブート ローダーです。これにより、カスタム カーネルを簡単にインストールできません (ブート ローダーに格納されたハッシュ サム、カーネル ハッシュが一致しない場合は起動しません)。

したがって、Android で既にサポートされているデバイス向けに開発していると仮定すると、個人的には、デバイスに対応するデバイス ツリーから始めて、それを変更し始めます。CyanogenMod の github ページで多くのデバイス ツリーを作成できます。

利点:

  • 作業状態から始めることができます
  • 何かが壊れたら、それが自分だとわかる

または、 Ubuntu Touchなどの他のプロジェクトをのぞくことができます。Hybrisを使用することで、既存の Android カーネルを利用できます。Debian/Ubuntu ベースのディストリビューションが必要な場合は、Ubuntu Touch を試して変更することをお勧めします。

于 2013-10-19T02:01:49.500 に答える