Como compilar e instalar o kernel da linha principal personalizada

6

Estou executando o Ubuntu 15.10 em um novo laptop, mas para obter suporte completo adequado para este hardware, eu aparentemente preciso do kernel 4.4 + de um patch personalizado. Consulte aqui se estiver interessado nos detalhes.

Eu sei sobre os PPAs de kernel da linha principal, mas meu entendimento é que eles não vêm com a fonte. Se este for o caso, isso parece eliminar a possibilidade de usar um PPA do kernel da linha principal porque não posso corrigi-lo. Então, eu tenho tentado verificar a fonte do git e construí-la, mas não consigo encontrar instruções relevantes e atualizadas.

Alguém pode ajudar com instruções para criar um kernel 4.4 em 15.10?

    
por Marplesoft 08.01.2016 / 03:09

2 respostas

8

Obtenha e compile o kernel da linha principal, git method:

veja também: link Eu faço as coisas um pouco diferentes (o que mais é novo?).

Pré-requisitos (Must):

A etapa 1 é apt-get update e apt-get dist-upgrade (ou seja, verifique se tudo está atualizado)
Etapa 2

sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge

Etapa 3

sudo apt-get build-dep linux

Etapa 4

sudo apt-get install git-core libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev

Pré-requisitos do kernel 4.3:

sudo apt-get install libssl-dev

Pré-requisitos (Opcional):

sudo apt-get install git-email git-doc

A parte do git:

mkdir temp-k-git
cd temp-k-git
git clone   git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux

Nunca faça coisas no ramo principal padrão. Sempre faça alguma área de trabalho.

git checkout -b k44rc8_stock v4.4-rc8

Roube o arquivo de configuração do kernel do Ubuntu (já instalado):

ls -l /boot
cp /boot/config-4.4.0-040400rc8-generic .config

O arquivo de configuração do Ubuntu tem depuração completa. Faz um kernel enorme e leva o dobro do tempo para compilar

scripts/config --disable DEBUG_INFO

Nota especial a partir do Kernel 4.4 e se estiver compilando usando o Ubuntu 14.04 (não sei sobre 15.10), com uma versão mais antiga do compilador c: ele não pode compilar com CONFIG_CC_STACKPROTECTOR_STRONG.

scripts/config --disable CC_STACKPROTECTOR_STRONG

Compile o kernel:

time make -j9 bindeb-pkg       <<< Suggest use number of CPUs + 1. Use less for some responsiveness to be left for other uses
                               <<< I always time the kernel build.

ou

time make -j9 bindeb-pkg LOCALVERSION=-stock    <<< For a localized verion name append

ou

time make -j9 olddefconfig bindeb-pkg LOCALVERSION=-stock   <<< To automatically use defaults for any new config stuff (particuarly useful when bisecting the kernel).

Quando a construção estiver concluída, instale-a:

sudo dpkg -i ../linux-headers-4.4.0-rc8-stock_4.4.0-rc8-stock-144_amd64.deb
sudo dpkg -i ../linux-image-4.4.0-rc8-stock_4.4.0-rc8-stock-144_amd64.deb

Então, neste ponto, sabemos que o kernel mainline compila O.K., então vá para o kernel customizado. Crie um novo ramo, aplique os patches e compile:

$ git checkout -b k44rc8_custom v4.4-rc8
Switched to a new branch 'k44rc8_custom'

$ git am plv6_1_3.patch
Applying: cpufreq: intel_pstate: configurable algorithm to get target pstate
$ git am plv6_2_3.patch
Applying: cpufreq: intel_pstate: account for non C0 time
$ git am plv6_3_3.patch
Applying: cpufreq: intel_pstate: Account for IO wait time

$ time make -j9 olddefconfig bindeb-pkg LOCALVERSION=-custom

Note que é intencional que eu não faça um make clean , pois é desejável economizar muito tempo fazendo uma compilação incremental. A primeira compilação levou 21 minutos e 26 segundos, mas a próxima compilação personalizada levou apenas 4 minutos e 43 segundos.

    
por Doug Smythies 08.01.2016 / 17:00
1

Se você for para a página link , você encontrará um README indicando como obter os arquivos de origem para 4.4rc8

Instruções para compilação são um pouco confusas. Eu vi várias receitas para construir os kernels, todos um pouco diferentes. Existem vários pré-requisitos: Pode haver alguns outros que são necessários para o kernel 4.4

sudo apt-get build-dep linux-image-$(uname -r)
sudo apt-get install libncurses5-dev

Então os comandos que eu emiti para uma compilação sucessessful são:

chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
nano debian.master/changelog
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
fakeroot debian/rules binary-headers binary-generic skipabis=true

Modificando o arquivo de changelog para indicar que estou criando meu próprio kernel, adicionando algo ao final do primeiro número de versão que é mostrado.

    
por Charles Green 08.01.2016 / 03:35

Tags