Kernel/Upgrade/pt-br

Este artigo descreve as etapas para atualizar para um novo kernel.

Fazer um novo kernel a partir das novas sources é basicamente o mesmo processo de quando instalou o sistema. A diferença é que pode utilizar a configuração do kernel antigo para criar uma configuração para o kernel novo. Usando a configuração antiga salva o usuário de passar por todas as opções do kernel (like ) novamente.

A configuração do kernel é salva em um arquivo chamado No diretório que contém as sources do kernel. Um novo kernel pode ter opções ou recursos que o kernel antigo não possui, ou pode não ter mais um recurso ou opção que o kernel antigo ainda possua. A configuração do kernel especifica se os recursos e opções de um kernel devem ser ativados ou não, talvez incorporados ao kernel, ou talvez construídos como módulos que podem ser carregados no kernel em execução sob demanda. Assim, o arquivo de configuração do novo kernel pode ter novas entradas que o arquivo de configuração do kernel antigo não possui e pode não ter mais entradas que estejam presentes no arquivo de configuração do kernel antigo.

Para lidar com essas alterações do arquivo de configuração, o arquivo de configuração do kernel antigo precisa ser convertido em uma configuração que pode ser usada com o novo kernel. Este artigo mostra como fazer um novo kernel a partir de novas sources do kernel com a conversão do arquivo de configuração do kernel antigo.

Kernel upgrade in Gentoo involves these steps:
 * Step 1: Emerging the new kernel sources.
 * Step 2: Setting the right symlink to the new kernel.
 * Step 3: Moving to the new kernel's folder.
 * Step 4: Adjusting the file for the options introduced to, or removed from the new kernel's configuration.
 * Step 5: Building the kernel and the initramfs.
 * Step 6: Updating the bootloader.
 * Step 7: Removing or keeping the old kernel.

Instalando e usando um novo kernel
Uma atualização do kernel pode ser uma boa ideia quando novas sources do kernel forem instaladas. Novas sources do kernel são às vezes instaladas durante a atualização do sistema, executando o seguinte comando:

Claro, eles podem ser instalados diretamente usando o comando. (substitua gentoo-sources por hardened-sources caso utilize o perfil hardened):

A instalação de novas sources do kernel não fornece ao usuário um novo kernel. É necessário compilar um novo kernel a partir das novas sources e, em seguida, reiniciar o sistema para realmente executar o novo kernel.

Set symlink to new kernel sources
The kernel configuration is saved in a file named in the directory that holds the kernel sources, a symlink is used to point to that directory.

O symlink deve sempre apontar para o diretório que contém as sources do kernel que atualmente é executado. Isso pode ser feito de três maneiras:


 * 1) Instalando as sources do kernel com
 * 2) Configurando o link com eselect
 * 3) Atualização manual do link simbólico

Configurando o link com eselect
Para definir symlink com :

Isso fornece as sources de kernel disponíveis. O asterisco indica as sources escolhidas.

Para alterar as sources do kernel, e.g. Para a segunda entrada, faça:

Atualização manual do link simbólico
Para definir o link simbólico manualmente:

Instalando as fontes do kernel com o USE flag symlink
Isso fará com que o aponte para as fontes do kernel recém-instaladas.

Se necessário, ele ainda pode ser modificado posteriormente com um dos outros dois métodos.

Moving to the new kernel folder
Now that the symbolic link has been modified, change the working directory to the new kernel folder.

Copy the previous kernel configuration
A configuração do kernel antigo precisa ser copiada para o novo. Pode ser encontrado em vários lugares:


 * Em procfs, se a opção do kernel Habilitar acesso ao .config através de /proc/config.gz foi ativada no kernel presente:


 * Do kernel antigo. Isso só funcionará se o kernel antigo tiver sido compilado com CONFIG_IKCONFIG:


 * No diretório, se a configuração foi instalada lá:


 * No diretório do kernel atualmente em execução:


 * No diretório, embora  é definido em  e  for utilizado anteriormente:

Configurando o novo kernel
Para usar a configuração do kernel antigo com o novo kernel, ele precisa ser convertido. A conversão pode ser feita executando ou. Use um ou outro, não ambos.

make silentoldconfig
A configuração a seguir é como a configuração baseada em texto com. Para novas opções de configuração, o usuário é solicitado a tomar uma decisão. Por exemplo:

A string (NEW) no final da linha está marcado a opção como nova. Da esquerda para a direita, em colchetes, são as possíveis respostas: Sim, Não, Módulos ou ? para mostrar a ajuda. É recomendado (i.e. padrão) a resposta capitalizada (aqui é S). A ajuda esclarece a opção ou driver.

Infelizmente não mostra muito mais informações para cada opção, como o contexto, por isso às vezes é difícil dar a resposta certa. Neste caso, o melhor caminho a seguir é lembrar o nome da opção e revê-lo depois através de uma das graphical kernel ferramentas de configuração do kernel.

make olddefconfig
Todas as novas opções de configuração devem ser definidas (i.e. padrão) usando :

make help
Use para ver outros métodos de conversão disponíveis:

Observing the difference
A diff tool can be used to compare the old and new files to see what options have been added:

And which have been removed:

Alternatively, the kernel provides a script to cleanly compare two config files even if the options have moved in the file itself:

make menuconfig
The options can then be researched and changed if necessary by running:

The menuconfig target is helpful because it safely handles kernel symbol dependency resolution.

Compilação
Nesta etapa, siga o procedimento deste artigo: configuração manual.

Automated build and installation
It is possible to automatically build and install the newly emerged kernel using Portage hooks. While other approaches are also possible, the following is based on genkernel and gentoo-sources package. It requires the following prerequisites:


 * 1)  is able to build and install the kernel to which the  symlink points into   and the bootloader.
 * 2) The   use flag is set for the kernel ebuild.

If those are fulfilled, simply install a  Portage hook as shown below.

Reinstalando módulos externos do kernel
Qualquer módulo externo do kernel, como módulos binários do kernel, precisam ser reconstruídos em cada novo kernel. Se o kernel ainda não foi construído, ele deve primeiro ser preparado para a construção dos módulos externos do kernel:

Os pacotes que contêm módulos do kernel podem ser reconstruídos com

Solução de problemas de compilação
Ao presenciar problemas de compilação durante a reconstrução do kernel atual, uma ajuda seria a limpeza das sources do kernel. Certifique-se de fazer backup do arquivo, pois a operação irá removê-lo. Certifique-se de não usar ou  de sufixo no backup pois  irá limpar também.

Update the bootloader
The upgraded and built kernel needs to be set up and eventually a bootloader or boot item updated, see Kernel/Configuration. Users of Grub can use the method below, users of other bootloaders must consult the handbook.

After making sure partition is mounted,

Using grub-mkconfig
The following command can be executed for updating grub's configuration file:

Using systemd-boot-gen to update systemd-boot UEFI configuration
Manual installation of :

Copy the kernel parameters to, the file should contain:

And run it using root privileges:

This will generate the boot configuration in for all the available  that have a matching.

Keeping the old kernel sources
Kernel sources will eventually become unsupported. Some packages require the current sources to build. To protect the new sources from being removed by a depclean, it can be added to the world file (/var/lib/portage/world) by:

Old sources that are no longer supported can be removed from the world file by:

Removendo kernel antigo
Veja em remoção do kernel.

Recursos externos

 * kernel changelog com algumas explicações de novos recursos