2011-09-05 7 views
10

¿Es posible aplicar el parche rt para el kernel de Linux al kernel de Android?Linux rt- parche para android anyone?

¿POR QUÉ? Esto es puramente un proyecto de investigación. ¿Puedo tener un tablero en mi automóvil que ejecute Android pero que también esté controlando las tareas críticas de seguridad en el automóvil? El propio Android es uselss para tareas de SC, pero si lo he puesto sobre un hipervisor, estoy seguro de que se puede hacer.

+0

¿Funcionó? – student1

Respuesta

0

Finalmente he tomado el manto yo mismo y he venido con un enfoque basado en hipervisores para que Android pueda soportar el procesamiento en tiempo real.

+0

¿Has tenido éxito en reparar el Kernel de Android? Me gustaría tener el mismo comportamiento (en tiempo real) durante la recepción de datos desde USB. Apreciaré su ayuda. – syntagma

4

eslabón muy importante

La investigación en curso en android en tiempo real.

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


a continuación el blog discusión vale la pena leer,

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

No es diferente de soporte en tiempo real en cualquier sistema Linux, tienen usted miraba en la verdadera tiempo parche para el kernel de Linux? Es debe aplicarse a los núcleos de Android sin problemas.

dice, puede con éxito rt-patch de linux a android.

Por cierto, Definición de la arquitectura en tiempo real es,

Un sistema de tiempo real es una en la que la exactitud de los cálculos no sólo depende de la corrección lógica de la computación, pero también sobre el tiempo en el que se produce el resultado. Si no se cumplen las restricciones de tiempo del sistema, se dice que la falla del sistema ha ocurrido .

Por encima de ref: http: //www.ibm.com/developerworks/linux/library/l-real-time-linux/

Así que, básicamente por eso que en este universo que desea aplicar rt -patchear a Android Kernel?


** * acaba de encontrar *

Este artículo es digno de explorar, es posible encontrar un enlace a seguir para su proyecto de investigación.

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

+0

He leído ese hilo cientos de veces hasta ahora. –

+0

Ese es el proyecto de mi amo. Estoy tratando de descubrir cómo podemos construir un dispositivo que ejecute Android para fines de interfaz de usuario y que, sin embargo, pueda ejecutar tareas duras en tiempo real en la parte inferior. –

+1

Revise mi enlace recién agregado – doNotCheckMyBlog

3

I no sabe acerca de los detalles hasta el nivel de kernel pero supongo que desea crear una versión RT Android.

Con respecto a ese deseo, creo que con solo aplicar el parche RT no será suficiente acceder a una versión de Android en tiempo real.

Especialmente con una máquina virtual existe una gran complejidad involucrada en las pausas de recolección de basura y de tal manera que se evita el verdadero comportamiento en tiempo real.

E.g. mira la especificación de tiempo real para la JVM. Pasaron 8 años desde el envío inicial hasta la implementación real de trabajo.

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

.. Así que en general se podría y probablemente es posible aplicar el parche RT, pero el resultado no hará lo que usted está probablemente después.

+0

Realmente no espero un rendimiento RT de la máquina virtual. Solo quiero compartir mi hardare entre sexy android y un tiempo real difícil. –

+0

No estoy seguro de seguir. Desea tener una pila de Android que no sea en tiempo real, así como también un kernel de RT Linux con código c de bajo nivel en RT. Si ese es el caso, esto podría ser posible si los parches del kernel de Android y los parches rt pueden fusionarse sin compromiso. Eso podría ser difícil sin embargo .. –

+0

sí me tienes en lo cierto. Las aplicaciones de Android no manejarán el trabajo en tiempo real, los módulos del kernel sí lo harán. –

2

Como han dicho otros, no existe un motivo real por el que no pueda aplicar los parches RT y Android a un kernel de Linux. Pero si eso es útil para ti depende de lo que estás tratando de hacer.

No obtendrá aplicaciones de Android en tiempo real con soporte API completo. Sin embargo, debe poder escribir aplicaciones nativas en tiempo real en C. Consulte el documentation para escribir actividades nativas. Deberá tener mucho cuidado de no hacer ninguna llamada API a Java (debido a la posibilidad de recolección de basura, para empezar), y probablemente incluso a muchas llamadas al sistema Linux, de los hilos en los que intenta comportarse. una manera en tiempo real. Entonces, como cualquier sistema verdadero en tiempo real, la mayor parte del trabajo dependerá de usted.

Siempre que kernel.org vuelva a estar en línea, échele un vistazo al RT wiki.

3

Si entiendo la pregunta. usted tiene un sistema muy crítico (como el sistema de ayuda al frenado de un automóvil, etc.), y desea controlarlo/seguirlo a través de una gui ingeniosa creada en android (tablero de instrumentos).

Creo que siempre debe dividir el sistema crítico, desde la interfaz gráfica de usuario. Eso también en un nivel de hardware. Así que puedes hacer lo que quieras en tu GUI, pero el sistema crítico nunca será influenciado (por una gran carga de CPU para un gráfico sofisticado, etc.) porque se está ejecutando en su propio hardware.

Así que tendrá un sistema: la computadora interna del automóvil (tal como existe hoy en día) y un sistema completamente distinto: la ingeniosa interfaz gráfica de usuario basada en Android.

La comunicación entre esas 2 cosas debe ser lo más simple posible, ya hay muchos estándares para comunicarse con la computadora interna, en su mayoría son dependientes de la marca (ejemplo: VAG com).

1

Puede aplicar los dos parches (kernel RT y modificaciones al núcleo de Android) pero aparte del obvio esfuerzo de integrar los dos, sospecho que tendrá al menos un problema conceptual: Android usa un sistema de bloqueos llamado "despertar" se bloquea ", para controlar cuándo y en qué nivel el sistema en el que se ejecuta puede ir al modo de ahorro de energía.

El problema es que los modos de ahorro de energía no son en absoluto compatibles con el tiempo real que requiere predictibilidad.

Por supuesto, puede modificar los parches de Android y proporcionar una implementación "ficticia" del mecanismo de bloqueo de activación, especialmente porque en un automóvil tiene una batería mucho más grande que su tableta o teléfono inteligente promedio, pero es algo que necesitará. necesidad de abordar.

Aparte de eso, creo que es todo el trabajo de integración y prueba de código.

Buena suerte

2

Si su objetivo realmente es sólo para arrancar un kernel de Android con el parche RT, entonces es probable trivial si la arquitectura del dispositivo que ejecuta el núcleo está soportado por el parche RT. Por ejemplo, x86 está bien soportado, y creo que ARM también lo es.

Uso "trivial" en un sentido amplio; el parche RT puede no aplicarse limpiamente a un kernel arbitrario con cambios personalizados (es decir, no tradicionales) como el kernel de Android, pero la integración arquitectónica y de bajo nivel en cosas como el control de concurrencia puede ser uno de los mayores desafíos. El parche RT generalmente está diseñado para funcionar con controladores arbitrarios, por ejemplo, pero pueden existir otros problemas: el parche RT toca MUCHOS subsistemas. En el lado positivo, una gran cantidad del parche RT realmente ha llegado al kernel en sentido ascendente, lo que simplifica la tarea en función de la versión bifurcada en la que se basa el kernel de Android.

Suponiendo que la arquitectura es compatible con el parche RT, se aplica con éxito a un núcleo de Android con conflictos resueltos, y se inicia, su trabajo aún está lejos de estar completo. Cualquier aplicación de espacio de usuario, como las IU que se ejecutan en la JVM, debe conocer las restricciones de tiempo, etc.

Para obtener más información sobre la creación de aplicaciones con el parche RT, puede consultar esta wiki para la RT parche: http://rt.wiki.kernel.org/ (tenga en cuenta que en el momento de escribir este kernel.org está inactivo debido a la reciente violación de seguridad).

Cuestiones relacionadas