2011-09-05 12 views
10

Linuxカーネルのrt-patchをアンドロイドカーネルに適用することは可能ですか?アンドロイド用のLinux用rt-パッチ?

なぜですか? これは純粋に研究プロジェクトです。 Androidを実行している車にダッシュボードを設置しても、車内の安全上重要なタスクを制御できますか? Android自体はSCタスクのためのuselssですが、もし私がハイパーバイザー上に置いたら、それはできると確信しています。リアルタイムAndroid上

+0

それを稼働させましたか? – student1

答えて

0

私はついにマントルを取って、ハイパーバイザーベースのアプローチを思いつき、Androidがハードリアルタイム処理をサポートできるようにしました。

+0

あなたはAndroidカーネルにパッチを当てることに成功しましたか?私はUSBからのデータを受信中に同じ動作(リアルタイム)をしたいと思います。私はあなたの助けに感謝します。 – syntagma

4

非常に重要なリンク

進行中の研究。

ブログの議論以下

http://code.google.com/edu/submissions/ncsu-rts/


は読む価値がある、

http://groups.google.com/group/android-kernel/browse_thread/thread/fbf7f94d80f5eb2c/4e9f6f4d22a40b36?pli=1

それは、任意のLinuxシステムにおけるリアルタイムのサポートと違いはありません、あなたは本当のに見えた 持っていますLinuxカーネル用のリアルタイムパッチセット? は問題なくAndroidカーネルに適用する必要があります。

あなたは、Linuxのアンドロイドへのrt-patchを正常に実行できます。

BTW、リアルタイムアーキテクチャの定義は、

リアルタイムシステムは、計算の正確さが 演算の論理的正確さに依存するだけでなく、 時間に限らずものですその結果が生成される。システムの制約 が満たされない場合、システム障害は が発生したと言われます。 REF以上

からします。http://www.ibm.com/developerworks/linux/library/l-real-time-linux/

ので、基本的には、なぜこの宇宙では、あなたは、室温を適用したいですアンドロイドカーネルにパッチ?


** JUST FOUND * *

この記事は、探検する価値がある、あなたはあなたの研究プロジェクトについては、以下のリンクを見つけるかもしれません。

http://users.ece.gatech.edu/~vkm/Android_Real_Time.pdf

+0

私は今までにそのスレッドを100回読んだ。 –

+0

それは私のマスターのプロジェクトに起こります。私は、UIの目的でアンドロイドを実行するデバイスを構築する方法を理解しようとしていますが、ハードリアルタイムタスクを最下部で実行することができます。 –

+1

新しく追加されたリンクを確認してください – doNotCheckMyBlog

3

私は、カーネルレベルまで詳細を知らないが、私はあなたがRT Androidのバージョンを作成するとします。

私はこのRTパッチを適用するだけで、Androidのリアルタイムバージョンを手に入れることはできません。

特に仮想マシンでは、ガベージコレクションの一時停止などの複雑さが多く、真のリアルタイム動作を妨げます。

など。 JVMのリアルタイム仕様を見てください。最初の提出から実際の作業実施までには8年かかりました。

http://www.jcp.org/en/jsr/detail?id=1

だから、全体的な...それは可能性があり、おそらくRTパッチを適用することが可能ですが、結果はおそらく後には何かしないでしょう。

+0

私は実際に仮想マシンからRTパフォーマンスを期待していません。私はセクシーなアンドロイドとハードリアルタイムの間で私のハードアを共有したいです。 –

+0

わかりません。非リアルタイムのAndroidスタックとRTの低レベルのcコードを持つRT Linuxカーネルが必要です。アンドロイドカーネルパッチとrtパッチを妥協することなくマージすることが可能な場合はそうかもしれません。しかし、それは難しいかもしれません。 –

+0

はい、あなたは私の権利を持っています。 Androidアプリはリアルタイム作業を処理しません。カーネルモジュールはこれを行います。 –

2

他の人は言ったように、あなたはRTとAndroidの両方のパッチをLinuxカーネルに適用することはできませんでした。しかし、それがあなたに役立つかどうかは、あなたがしようとしていることによって異なります。

完全なAPIをサポートしたリアルタイムのAndroidアプリケーションを手に入れることはできません。ただし、Cでリアルタイムネイティブアプリケーションを記述することは可能です。ネイティブアクティビティを記述するには、documentationを参照してください。ガベージコレクションの可能性があるため、Javaの中にAPI呼び出しをしないでください(おそらく多くのLinuxシステムコールも) - あなたが振る舞いたいスレッドからリアルタイムの方法。真のリアルタイムシステムと同様に、ほとんどの作業はあなた次第です。

kernel.orgがオンラインになるたびに、RT wikiをご覧ください。

3

私はこの質問を理解しています。あなたは非常に重要なシステムを持っています(車の制動援助システムなど..)、そしてあなたはアンドロイド(ダッシュボード)で作成された素敵なGUIを介してそれを制御/追跡したいですか?

私はあなたがguiから常に重要なシステムを分割すべきだと思います。ハードウェアレベルでも。だから、あなたはGUIの中で何もしなくてもかまいませんが、クリティカルなシステムには決して影響はありません。

車の内部コンピュータ(現在のもの)と、まったく別のシステム:Androidベースの洗練されたGUI。

これらの2つの間のコミュニケーションはできるだけシンプルでなければなりません。内部コンピュータと通信するための標準はすでにたくさんありますが、ほとんどがブランド依存です(例:VAG com)。

1

2つのパッチ(RTカーネルとAndroidカーネルの変更)を適用することはできますが、2つを統合する明白な作業とは別に、少なくとも1つの概念上の問題があると思われます。Androidはロックシステムを使用します実行中のシステムがいつどのレベルまで省電力モードに移行するかを制御するために「ロック」されています。

ディープパワーセービングモードは、予測可能性が必要なハードリアルタイムにはまったく互換性がないという問題があります。

もちろん、Androidのパッチを修正し、ウェイクロック機構の「ダミー」実装を提供することができます。特に自動車では、平均タブレットやスマートフォンよりもバッテリーが大きいためです。対処する必要があります。

それ以外は、私が信じるすべてのコード統合とテスト作業です。

幸運

2

あなたの目標は、真にRTパッチとAndroidのカーネルをブートするだけであればカーネルを実行しているデバイスのアーキテクチャは、RTパッチでサポートされている場合、それはおそらく簡単です。たとえば、x86はよくサポートされています。私はARMもそうだと考えています。

私はゆるやかな意味で「軽い」を使用します。 RTパッチは、Androidカーネルなどのカスタム(つまり非メインライン)変更を伴う任意のカーネルにはきれいに適用されないかもしれませんが、並行性制御などのアーキテクチャーと低レベルの統合は大きな課題の1つになります。 RTパッチは、一般に、任意のドライバで動作するように設計されていますが、他の問題が存在する可能性があります。RTパッチはMANYサブシステムに接触します。プラスの面では、かなりの量のRTパッチがアップストリームカーネルに実際に入っています。これは、Androidカーネルが基づいているフォークされたバージョンに応じてタスクを単純化します。

アーキテクチャがRTパッチでサポートされていると仮定すると、それは競合が解決されたAndroidカーネルにうまく適用され、起動します。 JVM上で実行されるUIなどのユーザー空間アプリケーションは、タイミング制約などを認識する必要があります。

RTパッチでアプリケーションを構築する方法の詳細については、このwikiのRTパッチ:http://rt.wiki.kernel.org/(このkernel.orgの作成時点では、最近のセキュリティ侵害によりダウンしています)。

関連する問題