Depois que uma versão regular do Ubuntu é lançada, geralmente não recebe novas atualizações principais da versão do kernel. Para versões LTS, como o Ubuntu 18.04, existem LTS Enablement Stacks que fornecem kernel mais recentes e atualizações Xorg, mas leva um tempo até que sejam lançadas.
Por exemplo, Ubuntu 18.04 deve receber um kernel atualizado por volta de fevereiro de 2019.
Se você deseja instalar um kernel mais recente do que o disponível no Ubuntu por motivos como algum novo recurso importante, melhor suporte de hardware, ou no caso de corrigir algum problema crítico que você está tendo com o kernel padrão do Ubuntu, como algum dispositivo não funcionando, você pode usar o Mainline Kernel PPA.
Este não é um PPA real que você pode adicionar ao seu sistema como um PPA do Launchpad e, em vez disso, você precisa baixar e instalar manualmente os pacotes DEB. Para tornar este processo mais fácil e opcionalmente ser notificado quando novos kernels estiverem disponíveis no Mainline PPA, existem várias ferramentas que você pode usar, e este artigo apresenta duas dessas ferramentas, uma que usa uma interface gráfica de usuário e outra que pode ser usada da linha de comando. Ambos os utilitários oferecem suporte não apenas ao Ubuntu, mas também a distribuições Linux baseadas no Ubuntu, como o Linux Mint.
Neste artigo:
Antes de instalar qualquer coisa, você deve saber que geralmente não é uma boa idéia instalar um kernel mainline em sua máquina Ubuntu. Esses kernels são construídos a partir das fontes Linux mais recentes, sem nenhum patch do Ubuntu ou qualquer outra modificação, e não são suportados.
Além do mais, a instalação de um kernel do Mainline Kernel PPA geralmente interrompe os drivers proprietários ou módulos fora da árvore, como os drivers gráficos proprietários da Nvidia, drivers wireless Broadcom, módulo dkms do VirtualBox e assim por diante. Como resultado, seu computador pode inicializar com uma tela preta, você pode experimentar congelamentos aleatórios e/ou seu WiFi pode não estar funcionando após a instalação e inicialização de um kernel principal.
Por exemplo, instalei o Linux 4.19 mais recente enquanto tinha os drivers gráficos Nvidia 396.54 instalados, e o módulo Nvidia falhou na construção. Felizmente, o Nvidia Graphics PPA tem uma versão de drivers mais recente que suporta Linux 4.19 - Nvidia 410, então instalei para resolver o problema. Mas se a Nvidia 410 não tivesse sido lançada ou se minha placa de vídeo não suportasse a versão mais recente dos drivers do PPA, meu computador teria inicializado com uma tela preta usando o kernel 4.19 (ou eu teria que remover os drivers proprietários da Nvidia e use o Nouveau).
Dito isso, use essas ferramentas para instalar o kernel mais recente do Ubuntu Kernel PPA por sua própria conta e risco!
[[Atualização:] Ukuu, ou Utilitário de atualização do kernel do Ubuntu, não é mais gratuito, então substituí-o neste artigo por Mainline, uma continuação do Ukuu que é gratuito.
Mainline (ou "Ubuntu Mainline Kernel Installer" é uma ferramenta para instalar o kernel mainline mais recente em distribuições baseadas no Ubuntu.
O aplicativo exibe a lista de kernels disponíveis no Ubuntu Mainline Kernel PPA, permitindo aos usuários baixar e instalar facilmente a versão desejada. Usando-o, você também pode remover um kernel principal instalado usando esse utilitário, bem como ver as mudanças em uma versão do kernel.
Ele também pode exibir notificações quando novos kernels estão disponíveis e pode alterar o tempo limite do menu GRUB em suas configurações, útil no caso de você querer usar um kernel antigo no caso de haver um problema com um kernel recém-instalado.
Mainline pode ser baixado de sua página de projeto, ou pode ser instalado usando um PPA:
sudo apt-add-repository -y ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
Agora você pode iniciar o Mainline, selecione a versão do Linux que deseja instalar e clique no botão Install
. Uma nova janela aparecerá, exibindo o que está acontecendo nos bastidores, como baixar os debs do kernel e instalá-los:
ubuntu-mainline-kernel.sh é um script Bash para instalar facilmente kernels do kernel PPA do Ubuntu.
A ferramenta de linha de comando também permite remover kernels instalados do kernel do Ubuntu PPA, pode verificar se uma versão de kernel mais recente está disponível, listar versões de kernel instaladas localmente e pesquisar e listar versões de kernel disponíveis. Também só pode baixar os arquivos deb, sem instalá-los.
Além do mais, em comparação com Ukuu, esta ferramenta de console também permite instalar a versão de baixa latência (isso reduz a latência e é útil, por exemplo, para gravação de áudio, mas sacrifica a economia de energia) do kernel, disponível para amd64 e i386, bem como instala o kernel Large Physical Address Extension, que está disponível apenas para armhf.
Como regra geral, recomendo verificar o código usado neste script e quaisquer outros scripts que você executa em seu sistema, e apenas executá-los se você tiver pelo menos algum conhecimento básico do que eles fazem.
Você pode instalar o script ubuntu-mainline-kernel.sh em /usr/local/bin/
usando estes comandos:
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
O projeto ubuntu-mainline-kernel.sh também inclui um arquivo da área de trabalho que você pode adicionar na inicialização, para verificar automaticamente se há uma nova versão do kernel ao fazer o login. Isso é opcional e se você quiser esse recurso, pode instalá-lo usando estes comandos (libnotify-bin
é necessário para mostrar notificações na área de trabalho quando uma nova versão estiver disponível):
sudo apt install libnotify-bin
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/UbuntuMainlineKernel.desktop
mv UbuntuMainlineKernel.desktop ~/.config/autostart/
Agora você pode começar a usar ubuntu-mainline-kernel.sh. Verifique a versão do kernel mais recente disponível no PPA do kernel Ubuntu usando -c
:
ubuntu-mainline-kernel.sh -c
Para instalar uma versão do kernel, use -i version
, por exemplo -i 4.9
, assim:
sudo ubuntu-mainline-kernel.sh -i 4.9
Ou use simplesmente -i
para instalar a versão mais recente disponível. É assim que parece:
$ sudo ubuntu-mainline-kernel.sh -i
Finding latest version available on kernel.ubuntu.com
Latest version is: v4.19.0, continue? (y/N)
Will download 6 files from kernel.ubuntu.com:
Downloading CHECKSUMS: 100%
Downloading CHECKSUMS.gpg: 100%
Downloading linux-headers-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-headers-4.19.0-041900_4.19.0-041900.201810221809_all.deb: 100%
Downloading linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-modules-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Signature of checksum file has been succesfully verified
Checksums of deb files have been succesfully verified with sha256sum
Installing 4 packages
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.19.0-041900-generic
/etc/kernel/postinst.d/zz-update-grub:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-041900-generic
Found initrd image: /boot/initrd.img-4.19.0-041900-generic
Found linux image: /boot/vmlinuz-4.18.0-10-generic
Found initrd image: /boot/initrd.img-4.18.0-10-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Cleaning up work folder
Todas as opções disponíveis:
ubuntu-mainline-kernel.sh -h
Usage: /usr/local/bin/ubuntu-mainline-kernel.sh -c|-l|-r|-u
Download & install the latest kernel available from kernel.ubuntu.com
Arguments:
-c Check if a newer kernel version is available
-i [VERSION] Install kernel VERSION, see -l for list. You dont have to prefix
with v. E.g. -i 4.9 is the same as -i v4.9. If version is
omitted the latest available version will be installed
-l [SEARCH] List locally installedkernel versions. If an argument to this
option is supplied it will search for that
-r [SEARCH] List available kernel versions. If an argument to this option
is supplied it will search for that
-u [VERSION] Uninstall the specified kernel version. If version is omitted,
a list of max 10 installed kernel versions is displayed
-h Show this message
Optional:
-s, --signed Only install signed kernel packages (not implemented)
-p, --path DIR The working directory, .deb files will be downloaded into
this folder. If omitted, the folder /tmp/ubuntu-mainline-kernel.sh/
is used. Path is relative from $PWD
-ll, --low-latency Use the low-latency version of the kernel, only for amd64 & i386
-lpae, --lpae Use the Large Physical Address Extension kernel, only for armhf
-do, --download-only Only download the deb files, do not install them
-ns, --no-signature Do not check the gpg signature of the checksums file
-nc, --no-checksum Do not check the sha checksums of the .deb files
-d, --debug Show debug information, all internal command\'s echo their output
--rc Also include release candidates
--yes Assume yes on all questions (use with caution!)
Caso seu computador inicialize com uma tela preta, congela ou algo não está funcionando após a atualização do kernel, reinicie e selecione Opções avançadas para Ubuntu no menu GRUB:
Em seguida, selecione a versão anterior do kernel e pressione Enter
:
Não importa o motivo, você precisará inicializar com uma versão anterior do kernel se quiser desinstalar o kernel mais recente. Isso porque você não pode remover um kernel que está em uso.
Caso você não consiga ver o menu GRUB2, pressione e segure a tecla Shift
ou pressione a tecla Esc
repetidamente (isso pode variar dependendo da inicialização do BIOS ou UEFI e da versão do Ubuntu/Linux Mint que você está usando) quando o GRUB for carregado. O menu Grub deve aparecer, permitindo que você selecione a versão anterior do kernel.
Como uma observação lateral, Ukuu pode definir o menu GRUB para ser exibido durante a inicialização sem ter que pressionar nenhuma tecla, definindo o tempo limite do menu GRUB em suas configurações.
Após inicializar no kernel anterior, você pode remover o kernel defeituoso. Ukuu e ubuntu-mainline-kernel.sh permitem a remoção de kernels instalados do PPA de kernel do Ubuntu.
Para remover um kernel usando Ukuu, selecione a versão do Linux que você deseja remover e clique no botão Remove
.
Com ubuntu-mainline-kernel.sh, você pode desinstalar uma versão do kernel executando:
ubuntu-mainline-kernel.sh -u VERSAO
Onde versão é a versão do kernel, por exemplo 4,9. Você também pode executá-lo com -u
sem especificar uma versão; nesse caso, a ferramenta listará até 10 versões do kernel e perguntará qual você gostaria de remover. É importante notar que ubuntu-mainline-kernel.sh não lista os kernels oficiais do Ubuntu.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
2 Utilities To Install The Latest Kernel In Ubuntu Or Linux Mint (GUI and Command Line)