3

私は初めての Android イメージをビルドしています。新しいカーネルのコンパイルは、バニラの Linux カーネルでできることとかなり似ていることに気付きました。問題ありません。

完全な Android ソリューションは、カーネル + いわゆる「プラットフォーム」の 2 つの部分で構成されているため、プラットフォームを構築してコードをコンパイルしようとしています。問題は、いくつかの属性にいくつかの値を設定する必要があることに気付いたことです。ブルートゥースの場合と同様に、この値はブルートゥースが認識されて簡単に機能するために必要です。私の質問は次のとおりです。私は何を設定していますか? Android でのドライバー関連のアーキテクチャとは何ですか?

ほとんどの市販の電話にはモジュールをサポートしないカーネルがあるため、これも理解できませんでした。カーネルの外の場所から動的にドライバーをロードできない場合、これはどのように機能しますか?

4

2 に答える 2

2

完全な Android OS は 3 つの部分で構成されています。1) 公式 AOSP ソース コード。2) デバイス固有のカーネル。3) 特定のデバイス用の専用バイナリ (カメラ、センサーなどのハードウェア用ドライバー)。

1) レポ同期を使用してダウンロードできる公式の AoSP ソース コードは、ここから開始するリンクにアクセスしてください

2) デバイス固有のカーネル デバイスのメーカーから入手します。カーネルのバイナリ イメージが提供されます。

3) デバイス固有のバイナリ PC に接続して、デバイスから抽出する必要があります。デバイス構成については、Google で検索できます。たとえば、github.com でさまざまなデバイス構成を見つけること できます。 -files.sh ファイル。このファイルを実行してドライバを取得します。これは、デバイスから独自のバイナリを抽出する Linux シェル スクリプトです。

これが役立つことを願っています。ありがとうございました。

于 2012-07-06T15:05:09.280 に答える
1

この投稿には、Android に関する有益な情報がたくさんあります。Android の Linux カーネルは、カーネルによってロードおよび維持されるドライバーを使用します。カーネル モジュールを使用することもできます: Android 用カーネル モジュールのビルド

Android でドライバーをロードするには:

Android デバイス用にクロスコンパイルし、ソースをモジュールとしてコンパイルして、コマンド ラインからカーネルにロードするには、開発環境のセットアップが必要です。

insmod <module>

エラーが発生しない場合は、ロードされています。

于 2012-07-06T14:59:27.480 に答える