Diretório de construção vazio no kernel compilado personalizado

1

Eu tenho um script ( encontrado aqui no github ) que o personalizado compila o 3.8 kernel linux (com Xenomai para tempo real). O kernel compila / instala / executa, no entanto, quando tento instalar meu driver de vídeo (fglrx para ATI RADEON 8490), recebo o seguinte erro:

/lib/modules/3.8.13.20-xenomai-2.6.3/build/include/generated/uapi/linux/version.h cannot be found on this system.

Quando eu olho para este diretório (/lib/modules/3.8.13.20-xenomai-2.6.3/build/) não há nada lá. Em seguida, executei um ls -l em /lib/modules/3.8.13.20-xenomai-2.6.3 e obtive a seguinte saída para o diretório de compilação:

build -> /home/yapatel/Dev/rtxi/scripts/linux-3.8.13

O diretório para o qual o diretório de compilação está apontando foi excluído como parte do script de compilação / instalação do kernel personalizado, portanto, esse link simbólico está inativo, o que faz sentido para o fato de eu estar recebendo o erro.

Eu estou compilando o kernel personalizado usando o seguinte comando:

fakeroot make-kpkg --initrd --append-to-version=-xenomai-$xenomai_version kernel-image kernel-headers modules

e depois instalar o kernel compilado usando os seguintes comandos:

sudo dpkg -i linux-image-*.deb
sudo dpkg -i linux-headers*.deb
sudo update-initramfs -c -k $linux_version-xenomai-$xenomai_version
sudo update-grub

Agora aqui está a minha pergunta - eu entendi como os comandos de instalação acima para cuidar de todas as peças necessárias para instalar um kernel compilado personalizado, mas o deadlink para o meu diretório de compilação parece sugerir que eu preciso copiar manualmente arquivos de:

/home/yapatel/Dev/rtxi/scripts/linux-3.8.13

para

/lib/modules/3.8.13.20-xenomai-2.6.3/build/

Isso parece ser uma correção manual, e não a correção adequada. Existe um comando que estou faltando no processo de compilação / instalação do meu kernel personalizado? Estou assumindo que isso significa que meus módulos do kernel não estão sendo instalados?

Todo o conselho / ajuda é apreciado!

    
por yapatel 21.03.2014 / 19:19

2 respostas

0

Você precisa editar o script para que ele não exclua o diretório de compilação (correção adequada) como você está chamando ou copie os arquivos para o sistema (correção manual).

Nenhuma dessas "correções" tem nada a ver com os comandos usados para compilar um kernel (make).

Você pode escolher onde e como compilar um kernel, geralmente use um diretório de compilação no seu diretório home e construa como um usuário, mas não há uma boa razão para que você não possa usar um diretório do sistema e construir como root. Você pode usar qualquer local que deseje construir.

    
por Panther 21.03.2014 / 19:28
0

Tente executar make modules -j $number_of_cpus e, em seguida, make modules_install -j $number_of_cpus para reconstruir e instalar todos os módulos. Verifique se isso ainda gera erros.

    
por peperunas 21.03.2014 / 19:25