Então eu queria tentar construir o 2.6.39-4. Eu segui o procedimento na página wiki do ubuntu "GitKernelBuild" .
Em suma, baixe o tar.bz2, extraia, copie minha configuração antiga, faça o oldconfig e, em seguida,
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Tudo correu bem, eu estou usando este kernel agora, exceto uma pequena coisa: Eu não posso construir outros módulos, construir dkms, etc Mais informações segue:
Os arquivos deb produzidos são dois:
linux-image-2.6.39.4-custom_2.6.39.4-custom-10.00.Custom_amd64.deb
linux-headers-2.6.39.4-custom_2.6.39.4-custom-10.00.Custom_amd64.deb
Estou um pouco confuso com isso.
Em kernels normais do Ubuntu, mesmo aqueles no mainline-ppa, existem três arquivos deb que estão instalados. Por exemplo, para o mesmo kernel do mainline ppa existem estes pacotes:
linux-image-2.6.39-02063904-generic_2.6.39-02063904.201108040905_amd64.deb
linux-headers-2.6.39-02063904-generic_2.6.39-02063904.201108040905_amd64.deb
linux-headers-2.6.39-02063904_2.6.39-02063904.201108040905_all.deb
Como você pode ver, existem dois pacotes de cabeçalho diferentes. De fato, depois de instalá-los, os pacotes mainline ppa criam um diretório em / lib / modules:
/lib/modules/2.6.39-02063904-generic
Nesse diretório, existe um link simbólico que aponta para os cabeçalhos -genéricos em / usr / src
/lib/modules/2.6.39-02063904-generic/build -> /usr/src/linux-headers-2.6.39-02063904-generic
Em / usr / src, existem dois diretórios diferentes para este kernel
/usr/src/linux-headers-2.6.39-02063904-generic
/usr/src/linux-headers-2.6.39-02063904
Agora, aqui está o problema com meus dois pacotes:
Em / usr / src há apenas uma pasta,
/usr/src/linux-headers-2.6.39.4-custom
E sob / lib / modules, existe uma pasta
/lib/modules/linux-headers-2.6.39.4-custom
O verdadeiro problema, e a razão pela qual estou escrevendo este post, é esse link simbólico que é criado no diretório acima:
/lib/modules/linux-headers-2.6.39.4-custom/build -> /home/nickped/projects/kernel/linux-2.6.39.4
Como você pode ver, ele se conecta ao diretório onde eu construí o kernel - o que obviamente pode não existir depois. Isso faz com que outros módulos (por exemplo, vmware, virtualbox etc) não sejam compilados, pois não é possível encontrar coisas importantes.
Por que isso acontece? Como isso pode ser consertado? Por que existem dois e não três arquivos deb produzidos? Qual é o propósito desses 3 arquivos deb que os lançamentos oficiais têm, e como eles podem ser criados por outros?