2011-09-05 5 views
10

리눅스 커널 용 rt- 패치를 안드로이드 커널에 적용 할 수 있습니까?안드로이드 용 Linux rt- 패치?

왜? 이것은 순수한 연구 프로젝트입니다. Android를 실행하는 차에 대시 보드를 설치할 수 있습니까? 그렇지만 자동차의 안전에 중요한 작업을 제어하고 있습니까? 안드로이드 자체는 SC 작업을위한 uselss이지만 하이퍼 바이저 위에 놓았다면 할 수 있다고 확신합니다. 실시간 안드로이드에

+0

작동 시키셨습니까? – student1

답변

0

필자는 마침내 맨틀을 직접 가져 와서 하이퍼 바이저 기반 접근 방식을 사용하여 Android가 하드 실시간 처리를 지원할 수 있도록했습니다.

+0

안드로이드 커널을 패치하는 데 성공 했습니까? USB에서 데이터를 수신하는 동안 동일한 동작 (실시간)을 원합니다. 나는 너의 도움에 감사 할 것이다. – syntagma

4

매우 중요 링크

지속적인 연구. 그것은 어떤 리눅스 시스템에서 실시간으로 지원 다르지 않습니다

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


블로그 토론을 읽고 가치가 아래

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

는 당신이 실제 들여다 이 리눅스 커널을위한 실시간 패치 세트? 그것은 가 문제없이 안드로이드 커널에 적용해야합니다.

그것은 당신이 성공적으로 안드로이드에 리눅스의 rt - 패치 수 있습니다.

은 BTW 실시간 구조의 정의는,

실시간 시스템이 계산의 정확성은 뿐만 아니라 시간에 따라 논리적 계산의 정확성은 물론 에 의존하는 하나 결과가 생성됩니다. 시스템의 제한 조건 인 이 충족되지 않으면 시스템 실패로 인해 이 발생했다고합니다. HTTP :에서 심판 위

//www.ibm.com/developerworks/linux/library/l-real-time-linux/

그래서, 기본적으로 왜이 우주에 당신은 RT를 적용 할 - 안드로이드 커널 패치?


** * *

이 문서는 탐구 가치가있다, 당신은 당신의 연구 프로젝트에 따라 링크를 찾을 수 있습니다 FOUND 그냥.

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

+0

나는이 스레드를 지금까지 백 번 읽었다. –

+0

그건 내 주인공의 프로젝트입니다. 나는 우리가 UI 목적을 위해 안드로이드를 실행하는 장치를 어떻게 구축 할 수 있는지 알아 내려고 노력하고 있지만 바닥에서 어려운 실시간 작업을 실행할 수 있습니다. –

+1

새로 추가 된 링크 확인 – doNotCheckMyBlog

3

나는 커널 수준까지 세부 사항에 대해 잘 모릅니다하지만 난 당신이 RT 안드로이드 버전을 만들려는 가정합니다.

그 희망에 관해서는 RT 패치를 적용하는 것만으로는 안드로이드의 실시간 버전을 얻을 수 없다고 생각합니다.

특히 가상 머신에서는 가비지 콜렉션 일시 정지와 관련하여 많은 시간이 소요되며 진정한 실시간 동작을 방해합니다.

예. JVM의 실시간 사양을 살펴보십시오. 실제 작업 수행에 처음 제출할 때까지는 8 년이 걸렸습니다.

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

그래서 전체 ..이 수도 아마도 RT 패치를 적용 할 수 있지만 결과가 당신이 아마 후 무엇을하지 않습니다.

+0

가상 머신에서 RT 성능을 기대하지 않습니다. 나는 섹시한 안드로이드와 힘든 실시간 사이에서 나의 hardare를 공유하고 싶다. –

+0

잘 모르겠습니다. 당신은 실시간으로 안드로이드 스택뿐만 아니라 잠재적으로 저수준 c 코드를 가진 RT 리눅스 커널을 원합니다. 안드로이드 커널 패치와 rt 패치가 훼손되지 않고 병합 될 수 있다면 가능할 수도 있습니다. 그것은 어려울지도 모르지만 .. –

+0

예, 당신이 나에게 맞습니다. 안드로이드 애플 리케이션은 실시간 작업을 처리하지 못합니다. 커널 모듈이됩니다. –

2

다른 사람들처럼 RT 및 Android 패치를 Linux 커널에 적용 할 수없는 진짜 이유는 없습니다. 그러나 그것이 당신에게 도움이되는지 여부는 당신이하려는 일에 달려 있습니다.

전체 API를 지원하는 실시간 Android 애플리케이션을 사용할 수 없습니다. 그러나 C로 실시간 네이티브 응용 프로그램을 작성할 수 있어야합니다. 네이티브 활동 작성에 대해서는 documentation을 참조하십시오. 가비지 콜렉션에 대한 잠재적 인 가능성으로 인해 Java로 API 호출을하지 않도록주의해야합니다. (심지어 많은 Linux 시스템 호출조차도) 당신이 의도하는 쓰레드로부터 실시간 방식. 진정한 실시간 시스템과 마찬가지로, 대부분의 작업은 사용자에게 달려 있습니다.

kernel.org에 다시 접속할 때마다 RT wiki을보십시오.

3

나는이 질문을 이해합니다. 당신은 매우 중요한 시스템 (자동차의 제동 장치 시스템 등 ..)을 가지고 있고, 당신은 안드로이드 (대시 보드)에서 만들어진 훌륭한 GUI를 통해 제어/추적하고 싶습니까?

당신은 항상 중요한 시스템을 GUI에서 분리해야한다고 생각합니다. 그것도 하드웨어 수준입니다. 그래서 GUI에서는 무엇이든 할 수 있지만 중요한 시스템은 영향을받지 않습니다 (멋진 그래프 등의 CPU 부하로 인해). 자체 하드웨어에서 실행되기 때문에 영향을받지 않습니다.

그래서 자동차 내부 컴퓨터 (현재 존재하는)와 완전히 다른 시스템 : Android 기반 멋진 GUI.

두 가지 사이의 통신은 가능한 한 간단해야하며 이미 내부 컴퓨터와 통신하기위한 많은 표준이 있으며 대부분 브랜드에 종속적입니다 (예 : VAG com).

1

두 개의 패치 (RT 커널 및 Android 커널 수정)를 적용 할 수 있지만 두 가지를 통합하는 분명한 노력은 별개입니다. 적어도 하나의 개념적 문제가있을 것입니다. Android는 "wake 잠금 "을 사용하여 실행중인 시스템이 언제 그리고 어떤 수준으로 절전 모드로 전환 될 수 있는지 제어합니다.

문제는 딥 절전 모드가 예측 가능성이 필요한 하드 실시간과 호환되지 않는다는 것입니다.

물론 안드로이드 패치를 수정할 수 있고 자동차의 평균 태블릿이나 스마트 폰보다 큰 배터리를 가지고 있기 때문에 웨이크 록 메커니즘의 "더미"구현을 제공 할 수 있습니다. 해결할 필요가있다.

그 외 다른 모든 코드 통합 및 테스트 작업입니다.

행운

2

당신의 목표는 진정으로 RT 패치 안드로이드 커널을 부팅 만 있으면 커널을 실행하는 장치의 구조는 RT 패치를 지원하는 경우, 그것은 가능성이 간단하다. 예를 들어, x86은 잘 지원되며, ARM도 그렇다고 생각합니다.

나는 "사소한"것을 느슨한 의미로 사용합니다. RT 패치는 안드로이드 커널과 같은 커스텀 (즉, 메인 라인이 아닌) 변경이있는 임의의 커널에 완전히 적용되지 않을 수 있지만 동시성 제어와 같은 아키텍처 및 저급 통합은 가장 큰 도전 일 수 있습니다. RT 패치는 일반적으로 임의의 드라이버와 함께 작동하도록 설계되었지만 다른 문제가있을 수 있습니다. RT 패치가 여러 서브 시스템에 닿습니다. 더하기 측면에서 상당한 양의 RT 패치가 실제로 업스트림 커널에 포함되었으며, 이는 안드로이드 커널이 기반으로하는 포크 ​​된 버전에 따라 작업을 단순화합니다.

아키텍처가 RT 패치에서 지원된다고 가정하면 충돌이 해결 된 Android 커널에 성공적으로 적용되고 부팅됩니다. 그래도 작업은 아직 완료되지 않았습니다. JVM 상단에서 실행되는 UI와 같은 모든 사용자 공간 응용 프로그램은 타이밍 제약 등을 인식해야합니다.

RT 패치로 응용 프로그램을 작성하는 방법에 대한 자세한 내용은이 wiki에서 RT 패치 : http://rt.wiki.kernel.org/ (작성 당시이 kernel.org는 최근의 보안 위반으로 인해 다운되었음을 참고하십시오).