Como portar um novo kernel num dispositivo Android com kernel existente
Há várias questões a serem respondidas antes de iniciar esta actividade. Por exemplo,
- Se as alterações do Android estão ou não presentes na versão mais recente do kernel, ou seja, se é ou não o kernel vanilla kernel?
>p>>br><
ul>Alt>Alt>Alt> no KConfig ou entradas defconfig da placa de referência>>p>p>Por vezes com uma versão mais recente do kernel, certas entradas Config adicionariam ou removeriam dependências que podem muito bem quebrar alguma funcionalidade. Portanto, a revisão do mesmo valeria a pena.>br>
ul>É baseado em uma definição antiga de plataforma baseada em arquivos de placa ou em uma árvore de dispositivos - há uma migração necessária?Na maioria dos casos, um fornecedor de chips colaria os arquivos de placa para definição do hardware. Nesse caso, a vida útil seria fácil - apenas puxar os arquivos seria suficiente. Mas a tendência recente tem sido de migrar para árvores de dispositivos. na revisão mais recente do kernel você está migrando, se o fornecedor de chipset migrou a definição da placa de referência para árvores de dispositivos. você pode ter que acabar fazendo o mesmo. Note que, migrar para uma árvore de dispositivos baseada no kernel também requereria uma alteração associada no gestor de arranque - uma vez que é tarefa do gestor de arranque's escolher/popular o dispositivo apropriado - árvore de dispositivos a partir do binário/partição inicializável.
>>br>>
ul>Mudanças nos dados da plataforma do driver's?Pode haver alguma modificação no periférico dos drivers dos componentes SoC, ou seja, adição ou remoção de algumas entradas na estrutura de dados da plataforma que é utilizada pelo driver durante a sonda e inicialização. Na definição anterior da plataforma baseada em arquivos de placa, os respectivos arquivos mach-xxx usados para ter esses dados da estrutura preenchidos. Assim, se houver de facto a adição de novos campos ou alterações de funcionalidade de algum tipo no driver, pode muito bem resultar em quebra de tempo de execução ou ainda pior pânico do kernel. Isto precisa ser avaliado - pode não ser para todos os drivers, pelo menos para os críticos que é apenas o suficiente para trazer a plataforma base e o espaço do usuário associado (Android neste caso) para funcionar.
>br>>
ul>>li>Rebuild and migration of modules for plugin functionality like Modem(WiFi, GSM etc.), p>Para uma mudança na versão do kernel, os drivers que são construídos como módulos precisam ser reconstruídos contra o mais novo kernel(headers). Caso contrário, o modprobe falharia>br> Estas são algumas das questões que devem ser analisadas no que diz respeito ao kernel. Uma vez que elas são respondidas, podemos imediatamente puxar para dentro da nossa placa alterações específicas para a versão mais recente do kernel, ou seja, o kernelbr>
ul>li>li>device tree / board filesli>board specific fixes/workaroundsli>li>perform additional modification as per changes in new kernel specific to subsystem>li>Migrate, review & make necessary changes for board's def config.Para fazer isso, é sempre desejável fazer uso do GIT ou qualquer sistema de gerenciamento de versão, pois a integração do patch será fácil de rastrear e completa.
Artigos semelhantes
- O que acontece a um plano de dados existente se eu recarregar para um novo plano na Airtel?
- Como traduzir meu aplicativo Android existente para o idioma hindi
- Devo considerar portar o meu aplicativo iOS para o Android? Qual é o bom e o ruim de fazer isso?
- Os desenvolvedores irão portar aplicativos sobre o Android para o HarmonyOS?