Posso atualizar meu kernel do Linux de 2.6.32 para 3.0.7?

0

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 no caso de uma possível atualização?

EDIT # 1:

A imagem que o BB-xM executa foi criada a partir de Narcissus com arquivos do Bootloader (x-load / u- boot / scripts) . Eu baixei recentemente fontes do kernel 2.6.32.61 do kernel.org e copiei elas para /usr/src no BB-xM. Depois de fazer a configuração ( make menuconfig ), eu construo ( make ) e o kernel instalado ( make install ) diretamente para o BB-xM (toolchain nativo) .

EDIT # 2:

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

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

Depois de configurar e instalar o kernel 2.6.32.61, o diretório boot 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

Eu não configurei o gerenciador de inicialização, e o BB-xM inicializa o kernel recém-configurado.

    
por dempap 27.03.2014 / 17:38

1 resposta

3

Eu não sou um usuário do beagle board, então a primeira coisa que você quer fazer é ter certeza de ter uma fonte de kernel apropriada. A fonte baunilha 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 retrocompatível com um ambiente de usuário 2.6 orientado, portanto, não deve haver nenhum problema, a menos que Angstrom dependa de alguma forma significativa de recursos implementados por seus próprios patches (nesse caso, você precisaria aplicar Essa). Isso não é um problema com as principais distribuições - embora eles personalizem seus kernels e recomendem que você use suas fontes corrigidas, eu nunca encontrei um problema usando a árvore baunilha - mas Angstrom é um pouco especializado, eu acho. Se Angstrom já tiver uma fonte 3.0.7, está tudo pronto. Se não, provavelmente não vai doer tentar com a fonte vanilla kernel.org (se inicializar ok, provavelmente vai ficar bem a partir daí).

Eu estou supondo que você já tenha uma toolchain de cross-compiler funcional que funcione para o BeagleBoard. Se não, você vai precisar de um (eu posso fornecer algumas dicas sobre isso também), uma vez que vai demorar um número de horas diretamente no BeagleBoard (aparentemente leva 5+ no pi framboesa) e provavelmente haverá alguma tentativa e erro. No entanto, em uma máquina multi-GHz moderna com vários núcleos, ela não deve demorar mais de 10 minutos, portanto, você não precisará se preocupar com a configuração de cada vez. A compilação cruzada do kernel é relativamente simples, já que ele não possui nenhuma dependência de compilação que ainda não faça parte do conjunto de ferramentas.

Para alguns detalhes sobre como configurar e compilar o kernel, veja aqui . Siga a dica sobre não usar make install na etapa nº 5 (ou seja, instalar o kernel no BeagleBoard apropriadamente; não sei se ele usa um carregador de inicialização normal etc.) e defina INSTALL_MOD_PATH como o sysroot do seu cross toolchain 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 em /x-tool/sysroot/lib/modules , que você pode copiar diretamente para o diretório /lib/modules do BeagleBoard.

    
por 27.03.2014 / 18:31