Idolonは良い提案です。理論的にはそこに書かれていることは真実です。実際にはもう少し複雑です。私は数か月前からAndroidカーネルを移植してきました。私の目標は、カスタムI/Oをカスタムボード上にカスタムS5PV210プロセッサモジュールを置くことでした。 Samsungの評価版(S5PV210 CPU用のSMDKV210)用のいくつかのバージョン(Froyo、Gingerbread)と同様に、SamsungのGalaxyタブといくつかのSamsungのAndroidスマートフォンのソースコードがあります。 FYI、S5PC110は近い派生物です。ここに私が見つけたものがあります。 すべてのデバイスドライバは非常にモジュラーな方法で、互いに独立して構築されているはずですが、同様のデバイスでそれらを置き換えることができるはずです。 1つの例として、電源管理について説明します。ハードウェアデバイスを扱う多くの低レベルドライバでは、パワーマネージメントチップのような他のハードウェアデバイスのための特定のルーチンを呼び出します。だから、 "make xconfig"や "make menuconfig"でドライバの選択肢を変更すると、あなたが望んでいないもののソースコードが削除され、必要なものが追加されます。削除した低レベル機能。構築時には、ハードウェアにはないが始まったソースで使用されている電源管理チップを取り外したため、未解決の外部がたくさんあります。私はいくつかのサムスンのデバイスのソースコードを見て、彼らは非常に早い段階で分岐している。彼らはさまざまなチームによって適応されており、1つのソースキットから1つのデバイスから別のデバイスに移動することは大量の作業になります。
私が成功した方法は次のとおりです。既に移植されたAndroidカーネル(Gingerbread)を搭載したS5PV210評価ボードを購入しました。すべての電力管理と相互依存の問題は、既にクリーンアップされているところです。次に、作業キットを作って、相互依存性に縛られずに、私が必要としていたデバイス(あなたが100Kユニット/年のコミットメントなしで購入できないデバイス)を変更することができました。それから、LCD解像度(800x480から1024x768まで)、タッチスクリーン、セルモデムなどを変更することさえできました。すべてのものは、1人の男(私)だけで約1ヶ月分の作業が必要です。
Galaxytabまたは他の商業用デバイスから始めて、私は何ヶ月もヘッドカーブを無駄にしましたが、有用な結果は得られませんでしたが、私が学んだことです。
私のアプローチに成功するための要件が1つあります。あなたが作業しているハードウェアを知る必要があります。例として、ハードウェアにどのようなタッチスクリーン(チップセット)がドライバを選択するのかを知る必要があり、正しいデバイス(USB、シリアルなど)に接続するために接続されています。
他のすべてのデバイス(パワーマネージメントチップ、キーパッド、バックライト、LCDなど)で同じことが関係していると思います。
読む
あなたはアンドロイドの移植とAOSPのソースコード、ディレクトリstucture階層の基本的な知識を持っている必要があります:
ここで質問を破棄しないでください。私はこれを元の状態に戻しました。 –