Modificar e iniciar el kernel de Linux en un dispositivo móvil

Modificar e iniciar el kernel de Linux en un dispositivo móvil

Durante mi educación, he estado desarrollando aplicaciones y sitios web para Android iOS durante casi 18 meses. Ahora, como proyecto de último año, estoy trabajando en el código fuente de Linux con el objetivo de iniciarlo en un dispositivo móvil, como Android. Lo tengo con éxito como paquete Debian siguiendo tutoriales en Internet. Actualmente estoy usando Ubuntu.

Tengo una estrategia pero no estoy seguro de estar en el camino correcto. Es el siguiente:

A:

  1. Descargue el código fuente de Linux. Elimine los controladores adicionales, compílelos e instálelos en Ubuntu que se está ejecutando actualmente y úselo.

  2. Personalice aún más el código e inícielo como mi propia distribución. Para eso te sigoLFS.

  3. Especifique un dispositivo móvil de destino en particular, modifique el código correspondiente, escriba controladores si necesito alguno, no estoy seguro de cuál (es por eso que estoy aquí :)), e inicie el kernel en él.

No sé si mi estrategia es correcta o no. Realmente agradecería si alguien pudiera decirme:

B:

  1. ¿Estoy en el camino correcto? Si no, ¿cuál podría ser el correcto?
  2. ¿Necesito especificar un móvil y personalizar el código del kernel para ese?
  3. Aparte de los controladores, ¿qué más necesito cambiar en el kernel?
  4. Por último, pero no menos importante: cuando inicio el kernel en un dispositivo móvil; ¿Voy a tener alguna interfaz o terminal ahí?

Lo siento si mi pregunta no tiene sentido. Soy estudiante y todavía estoy tratando de resolver las cosas. Estaría muy agradecido si alguien pudiera darme pistas sobre qué temas buscar en Internet.

Actualización: Lo que quiero es confirmar si mi estrategia es correcta o no. Si no es así, indique los pasos que debo seguir.

Respuesta1

¿No sería mucho más fácil intentar compilar primero el kernel de Android Linux y no solo el kernel básico de kernel.org? En principio, esto debería estar disponible para todos los dispositivos Android, ya que el kernel es GPL. Si no puede obtener el código fuente del kernel para su dispositivo de destino, porque el fabricante no tiene ni idea o es un conocido infractor de la GPL, su siguiente apuesta es descargar y compilar el código fuente para un dispositivo con un SoC similar (Tegra 3, RK3188, etc).

Tenga en cuenta que arrancar en un dispositivo móvil que ejecuta una multitud de diseños de SoC es una propuesta mucho más dudosa que arrancar desde una computadora de escritorio o portátil con las conocidas CPU AMD o Intel. En realidad, ni siquiera está seguro de poder copiar o actualizar el kernel en el dispositivo móvil (a menos, por supuesto, que el dispositivo móvil sea una computadora portátil). Entonces necesitas investigar eso también.

Entonces, lo primero que investigaría es el dispositivo de destino. Es una buena idea elegir un dispositivo que pueda arrancar desde su tarjeta SD externa, ya que en teoría puedes ejecutar Linux simplemente copiando tu kernel y otras cosas del sistema operativo a la tarjeta SD. Aparte de esto, elija un dispositivo con una partición de recuperación que funcione y que le permita actualizar el kernel en la partición de inicio adecuada. Un dispositivo de este tipo tendrá efectivamente dos particiones de arranque, la partición de arranque de Android y la partición de recuperación. Entonces, en caso de que algo salga mal y haga que su dispositivo no pueda arrancar, puede presionar una combinación especial de botones de hardware en su dispositivo para poder iniciar desde la partición de recuperación y devolver el dispositivo a un estado utilizable.

información relacionada