1

多くの Android カーネルには、ロード可能なモジュールのサポートがないことがわかりました。このシナリオでドライバーを作成してロードするにはどうすればよいですか?

たとえば、バニラの Linux カーネルで動作するドライバーのコードベースがあります。これを Android に移植するにはどうすればよいですか?

4

2 に答える 2

2

あなたはできません-それは商用電話のモジュールのサポートがない正確な理由です。OEMがモジュールのサポートを無効にしている場合は、最初にカーネルを交換する以外に選択肢はありません。ドライバーを提供するだけで、電話に自由にアクセスできるようになります。これは、OEMが避けたいことです。

于 2012-07-04T10:50:34.740 に答える
0

市販の電話と既存のハードウェアについて話している場合は、おそらく USB (または Bluetooth や Wi-Fi など) 経由で接続されているものについて話していることになります。これらには、おそらく適切なユーザー空間 API を使用できます。たとえば、usb ホストをサポートする電話/タブレットにはホスト API があり、制限はありますが、libusb の場合と同様にデバイスにアクセスできます。

もちろん、Linux カーネルを実行しているデバイスのソースをカーネルに取得できるはずです。それはカーネルライセンスにあります。残念なことに、多くのベンダーはリリースに時間がかかります。ソース リリースに関する明らかな問題は、チップセットに基づいたラベルのないタブレットが大量にあることです。そのメーカーは明らかにカーネルとツールチェーンのソースをデバイス メーカーに提供しておらず、ハンドミーにつながっています。ダウンライセンス違反。

しかし、一般的に (Tivo の伝統では) カーネル ソースを持っている商用ハードウェアに戻ることは、デバイスがコンパイルされた結果をインストールすることを許可すること、またはフラッシュに成功したとしてもブートローダーが喜んでそれを実行することを意味するわけではありません。それ。幸いなことに、一部の携帯電話メーカーは、開発者やパワー ユーザーに個人用またはテスト用デバイスのブートローダーのロックを解除する方法を提供することについて改善を図っています。Google 自体が販売しているデバイスが代表的な例です。

于 2012-07-04T11:43:45.140 に答える