2011-09-05 13 views
10

Czy jest możliwe zastosowanie łaty rt dla jądra Linuxa do jądra systemu Android?Linux rt-patch dla Androida ktokolwiek?

DLACZEGO? To jest wyłącznie projekt badawczy. Czy mogę mieć deskę rozdzielczą w moim samochodzie z systemem Android, a także kontrolować krytyczne zadania w samochodzie? Sam Android to uselss dla zadań SC, ale jeśli umieściłem go nad hiperwizorem, jestem pewien, że można to zrobić.

+0

Czy to działa? – student1

Odpowiedz

0

W końcu sam wziąłem płaszcz i wymyśliłem podejście oparte na hiperbloku, aby system Android mógł obsługiwać przetwarzanie w czasie rzeczywistym.

+0

Czy udało ci się przetestować jądro systemu Android rt? Chciałbym mieć to samo zachowanie (w czasie rzeczywistym) podczas odbierania danych z USB. Będę wdzięczny za twoją pomoc. – syntagma

4

Bardzo ważnym ogniwem

toku badania w czasie rzeczywistym android.

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


poniżej blog dyskusja jest warta przeczytania,

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

To nie różni się od rzeczywistego wsparcia czasu w każdym systemie Linux, posiada spojrzał na prawdziwy zestaw poprawek czasowych dla jądra systemu Linux? To powinno mieć zastosowanie do jądra systemu Android bez żadnych problemów.

mówi, że możesz z powodzeniem pobrać łatkę Linuksa do Androida.

BTW Definicja czasu rzeczywistego architektury jest

System czasu rzeczywistego jest taka, w której poprawność obliczeń zależy nie tylko na logicznej poprawności obliczeń, ale również od czasu w którym powstaje wynik. Jeśli ograniczenia czasowe systemu nie są spełnione, to wystąpiła awaria systemu .

Przede ref z: http: //www.ibm.com/developerworks/linux/library/l-real-time-linux/

Tak w zasadzie, dlaczego w tym wszechświecie chcesz zastosować rt -patch do jądra Androida?


** właśnie znalazłeś * *

Ten artykuł jest warte zwiedzania, można znaleźć link do naśladowania dla swojego projektu badawczego.

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

+0

Przeczytałem ten wątek sto razy do tej pory. –

+0

To jest projekt mojego mistrza. Próbuję dowiedzieć się, jak możemy zbudować urządzenie, które uruchamia Android dla celów interfejsu użytkownika, a jednocześnie może uruchomić trudne zadanie w czasie rzeczywistym na dole. –

+1

Sprawdź mój nowo dodany link – doNotCheckMyBlog

3

nie wiem o szczegółach aż do poziomu jądra, ale zakładam, że chcesz stworzyć wersję RT Android.

Jeśli chodzi o to pragnienie, sądzę, że samo zastosowanie poprawki RT nie oznacza przeniesienia do wersji Androida w czasie rzeczywistym.

Szczególnie w przypadku maszyn wirtualnych występuje wiele komplikacji związanych z przerwami w zbieraniu śmieci i uniemożliwiają prawdziwe zachowanie w czasie rzeczywistym.

E.g. spójrz na specyfikację czasu rzeczywistego maszyny JVM. Uzyskanie początkowego wniosku do faktycznej realizacji prac zajęło 8 lat.

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

Więc ogólnie .. to może i prawdopodobnie można zastosować poprawkę RT, ale wynik nie będzie robić to, co prawdopodobnie jesteś po.

+0

Nie oczekuję naprawdę wydajności RT z maszyny wirtualnej. Chcę tylko podzielić się swoim hardarem pomiędzy seksownym androidem i ciężkim realem. –

+0

Nie jestem pewien, czy podążam. Chcesz mieć pakiet Androida w czasie rzeczywistym, a także jądro linux RT potencjalnie z niskopoziomowym kodem w RT. Jeśli tak, to może być możliwe, jeśli łatki jądra systemu Android i łatki rt mogą zostać scalone bez żadnych kompromisów. To może być trudne, ale .. –

+0

Tak, masz prawo. Aplikacje na Androida nie będą obsługiwać pracy w czasie rzeczywistym, będą to moduły jądra. –

2

Jak powiedzieli inni, nie ma prawdziwego powodu, dla którego nie można zastosować poprawek RT i Androida do jądra systemu Linux. Ale to, czy ci się przyda, zależy od tego, co próbujesz zrobić.

Nie dostaniesz aplikacji czasu rzeczywistego na Androida z pełną obsługą interfejsu API. Powinieneś jednak móc pisać natywne aplikacje w czasie rzeczywistym w C. Zobacz documentation do pisania natywnych działań. Musisz tylko bardzo uważać, aby nie wywoływać żadnych wywołań API w Javie (ze względu na możliwość wyrzucania śmieci, na początek) - i prawdopodobnie nawet wiele wywołań systemu Linux - z wątków, które zamierzasz zachować w sposób w czasie rzeczywistym. Tak jak każdy prawdziwy system czasu rzeczywistego, większość pracy będzie zależeć od ciebie.

Za każdym razem, gdy kernel.org powraca do trybu online, spójrz na numer RT wiki.

3

Jeśli rozumiem pytanie. masz bardzo krytyczny system (jak system wspomagania hamowania samochodu itp.), i chcesz kontrolować/śledzić go poprzez ładne gui stworzone w systemie Android (pulpit)?

Myślę, że zawsze powinieneś podzielić krytyczny system od gui. To również na poziomie sprzętu. Więc możesz zrobić cokolwiek chcesz w GUI, ale na krytyczny system nigdy nie wpłynie (ciężkie ładowanie cpu dla fantazyjnego wykresu, itp.), Ponieważ działa on na swoim sprzęcie.

Będziesz miał jeden system: wewnętrzny komputer w samochodzie (taki, jaki istnieje do tej pory), oraz zupełnie inny system: sprytny GUI oparty na Androidzie.

Komunikacja pomiędzy tymi dwoma rzeczami powinna być tak prosta, jak to tylko możliwe, istnieje już wiele standardów do komunikacji z wewnętrznym komputerem, są one w większości zależne od marki (przykład: VAG com).

1

Możesz zastosować dwie poprawki (jądro RT i modyfikacje jądra Androida), ale oprócz oczywistej ciężkiej pracy integracji obu podejrzewam, że będziesz mieć co najmniej jeden problem koncepcyjny - Android używa systemu zamków, zwanego "wake" locks ", aby kontrolować, kiedy i na jakim poziomie system, na którym działa, może przejść do trybu oszczędzania energii.

Problem polega na tym, że głębokie tryby oszczędzania energii nie są w pełni kompatybilne z trudnym czasem rzeczywistym, który wymaga przewidywalności.

Oczywiście możesz modyfikować łatki systemu Android i zapewniać "atrapę" mechanizmu blokowania wybudzania, zwłaszcza że w samochodzie masz znacznie większą baterię niż przeciętny tablet lub smartfon, ale jest to coś, trzeba się zająć.

Poza tym, uważam, że wszystko to wymaga integracji i testowania kodu.

Powodzenia

2

Jeśli twoim celem jest naprawdę tylko uruchomić Androida jądro z plastra RT, to jest prawdopodobne, trywialne, jeśli architektura urządzenia z systemem jądro jest obsługiwany przez patch RT. Na przykład x86 jest dobrze obsługiwany i uważam, że również ARM.

Używam "trywialny" w luźnym sensie; łatka RT może nie mieć czystego zastosowania do dowolnego jądra z niestandardowymi zmianami (np. nie na linii głównej), takimi jak jądro systemu Android, ale integracja architektury i niższego poziomu w takie rzeczy, jak kontrola współbieżności, może być jednym z największych wyzwań. Poprawka RT jest ogólnie zaprojektowana do pracy z arbitralnymi sterownikami, ale mogą istnieć inne problemy: łatka RT dotyka WIELU podsystemów. Na plusie, znaczna część łaty RT faktycznie trafiła do jądra upstream, co upraszcza zadanie w zależności od rozwidlonej wersji, na której oparte jest jądro systemu Android.

Zakładając, że architektura jest obsługiwana przez łatę RT, zostanie ona pomyślnie zastosowana do jądra systemu Android z rozwiązanymi konfliktami, a buty - twoja praca wciąż nie jest kompletna. Wszystkie aplikacje w przestrzeni użytkownika, takie jak interfejsy użytkownika, które działają na JVM muszą być świadome ograniczeń czasowych, itp.

Aby uzyskać więcej informacji na temat budowania aplikacji z poprawką RT, możesz zapoznać się z tym wiki dla RT patch: http://rt.wiki.kernel.org/ (zauważ, że w momencie pisania tego kernel.org nie działa z powodu niedawnego naruszenia bezpieczeństwa).