En este documento, se incluyen preguntas frecuentes sobre el kernel de Android, también conocido como el kernel de la imagen genérica del kernel (GKI). Si no estás familiarizado con la terminología de GKI y el kernel de GKI, consulta la Descripción general del kernel.
¿Se pueden cambiar las listas de símbolos de la interfaz del módulo del kernel (KMI) en un kernel estable?
Los cambios que no afectan la KMI existente se pueden agregar a los kernels que están congelados. Estos cambios incluyen funciones exportadas nuevas y entradas de la lista de símbolos. Para obtener más información, consulta Administra listas de símbolos.
¿Puedo cambiar las estructuras que usan los módulos del proveedor en un kernel estable?
Las estructuras que forman parte de una interfaz de KMI no se pueden cambiar en los kernels con una KMI congelada. Antes de que se congele la KMI, se pueden cambiar estas estructuras.
¿Puedo cambiar el kernel siempre y cuando no interrumpa la compatibilidad binaria o de origen?
Los cambios que no afectan la KMI se pueden realizar como se describe en los parches específicos de Android.
¿Cómo controla GKI la configuración del kernel?
Para obtener información sobre la configuración del kernel, consulta Cambios en gki_defconfig.
¿Cómo manejo las correcciones de errores ascendentes para las anulaciones de los módulos de GKI existentes?
Si creas un módulo del proveedor basado en un controlador en el kernel común de Android (ACK), depende de ti asegurarte de que las correcciones de errores de la versión superior y el ACK se propaguen a tu módulo. Por lo general, te conviene usar el kernel de GKI y los módulos de GKI sin modificaciones para que Google proporcione estas actualizaciones de manera coherente.
¿Hay pruebas específicas de GKI?
Existen pruebas del Paquete de pruebas del proveedor (VTS) que verifican que se instale una compilación de GKI certificada y que se apliquen los requisitos de GKI por versión. Por ejemplo, existen pruebas de VTS de Android 12 para el encabezado de arranque v3 y para verificar la existencia de particiones obligatorias en un dispositivo que ejecuta un kernel 5.10.
¿Cómo creo el archivo de fragmento defconfig del proyecto para las compilaciones de dispositivos?
Muchos dispositivos compatibles con GKI usan un fragmento de configuración para describir las opciones de configuración necesarias, además de gki_defconfig, para compilar los módulos del proveedor.
Entre los ejemplos que forman parte de la base de código de ACK, se incluyen Cuttlefish y DB845c.
No hay forma de evitar el examen manual de las opciones de configuración
para optimizar el fragmento, pero scripts/diffconfig de las fuentes del kernel
es útil para comparar los resultados de gki_defconfig y
gki_defconfig+device.fragment.
¿Existe alguna solución para que modprobe trate - y _ como equivalentes?
La
página del manual de modprobe
contiene esta descripción: "modprobe agrega
o quita un módulo del kernel de Linux de forma inteligente: ten en cuenta que, para mayor comodidad, no hay
diferencia entre _ y - en los nombres de los módulos (se realiza la conversión automática de guion bajo
)." El equipo de GKI cumple con la convención estándar de la versión superior, por lo que las herramientas del proveedor o las convenciones de nomenclatura de módulos deben tener en cuenta este cumplimiento.
¿Cómo habilito debugfs para uso interno?
Para obtener detalles sobre cómo habilitar debugfs, consulta Funciones de depuración intrusivas de nivel inferior features.
¿Cómo puedo resolver las ABIs que no coinciden entre el kernel de GKI con una configuración de módulo específica habilitada?
Las ABIs que no coinciden entre el kernel de GKI y la configuración del módulo representan una dependencia implícita de la configuración del módulo, en la que habilitar un módulo hace que se compile una configuración binaria en la imagen del kernel resultante. Comunícate con el equipo del kernel de Android kernel (kernel-team@android.com) para determinar una ruta de avance. Una vez que se determine la lista de símbolos, crea un error en el Issue Tracker y sube un cambio a la lista de símbolos.