Posso atualizar meu kernel Linux de 2.6.32 para 3.0.7?

Posso atualizar meu kernel Linux de 2.6.32 para 3.0.7?

Atualmente executo o Angstrom Linux 2.6.32 no BeagleBoard-xM (arquitetura ARM). Posso atualizar meu kernel Linux de 2.6.32 para 3.0.7 e qual é o nível de dificuldade caso a atualização seja possível?

EDITAR#1:

A imagem que o BB-xM executa foi construída a partir deNarcisocom arquivos do bootloader(x-load/u-boot/scripts). Recentemente baixei as fontes do kernel 2.6.32.61 do kernel.org e as copiei para /usr/srco BB-xM. Depois de fazer a configuração ( make menuconfig), eu construo ( make) e instalei ( make install) o kernel diretamente no BB-xM(conjunto de ferramentas nativo).

EDITAR#2:

Eu sei que atenção também deve ser dada ao bootloader, caso ele precise ser configurado manualmente, para inicializar o novo kernel. Na imagem inicial do Angstrom, booto diretório continha:

  • u-boot-scripts
  • MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
  • u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75
  • uImage-2.6.32

Após configurar e instalar o kernel 2.6.32.61, booto diretório contém:

root@beagleboard:/boot# ls
MLO
MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
Module.symvers-2.6.32
System.map-2.6.32
System.map-2.6.32.61
System.map-2.6.32.61.old
config-2.6.32
u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin
u-boot-scripts
u-boot.bin
uImage
uImage-2.6.32
vmlinux-2.6.32.61
vmlinux-2.6.32.61.old

Não configurei o bootloader e o BB-xM inicializa o kernel recém-configurado.

Responder1

Não sou usuário do Beagle Board, então a primeira coisa que você deseja fazer é ter certeza de ter uma fonte de kernel apropriada. A fonte vanilla suporta vários chips Cortex-A8 (ARMv7), incluindo "OMAP3 BeagleBoard", mas não posso dizer com certeza se isso é bom o suficiente sem mais patches.

O kernel 3.x deve ser compatível com versões anteriores de uma área de usuário orientada para 2.6, portanto não deve haver problemas, a menos que o Angstrom dependa de alguma forma significativa de recursos implementados por seus próprios patches (nesse caso, você precisará aplicá-los). Isso não é um problema com as distros convencionais - embora elas façam patches personalizados em seus kernels e recomendem que você use suas fontes corrigidas, nunca tive problemas ao usar a árvore vanilla - mas Angstrom é um tanto especializado, eu acho. Se o Angstrom já tiver uma fonte 3.0.7, está tudo pronto. Caso contrário, provavelmente não fará mal tentar com a fonte vanilla kernel.org (se inicializar bem, provavelmente tudo ficará bem a partir daí).

Presumo que você já tenha um conjunto de ferramentas de compilador cruzado funcional que funcione para o BeagleBoard. Caso contrário, você precisará de um (posso fornecer algumas dicas sobre isso também), pois levará várias horas diretamente no BeagleBoard (aparentemente leva 5+ no Raspberry Pi) e provavelmente haverá algumas tentativas e erros. No entanto, em uma máquina contemporânea multi-core e multi-Ghz, não deve demorar muito mais do que 10 minutos, então você não terá que se preocupar com a configuração todas as vezes. A compilação cruzada do kernel é relativamente simples, pois ele não possui nenhuma dependência de construção que ainda não faça parte do conjunto de ferramentas.

Para alguns detalhes sobre configuração e compilação do kernel,Veja aqui. Siga a dica sobre não usar make installna etapa 5 (ou seja, instale o kernel no BeagleBoard apropriadamente; não sei se ele usa um bootloader normal, etc.) e defina INSTALL_MOD_PATHcomo sysroot do seu conjunto de ferramentas cruzado antes de executar make modules_install, por exemplo

export INSTALL_MOD_PATH=/x-tool/sysroot
make modules_install

Isso deixará um diretório de módulo apropriado no qual você pode copiar diretamente para o diretório /x-tool/sysroot/lib/modulesdo BeagleBoard ./lib/modules

informação relacionada