Como atualizar o kernel para a versão principal mais recente sem qualquer distro-upgrade?

146

Atualmente, estou executando o Linux-3.0 e quero atualizá-lo para o Linux-3.3.1, a última versão estável do kernel, conforme mencionado em http://www.kernel.org . Posso atualizar para o 3.3.1 no Ubuntu sem risco de falhas? Estou atualizando meu kernel regularmente, conforme fornecido pelo Gerenciador de Atualizações . Atualmente, tenho o Linux 3.0.0.17 . Posso atualizar?

NOTA:

A versão mais recente do kernel que qualquer usuário deve usar no Ubuntu é atualizada automaticamente através do Gerenciador de Atualizações, portanto, nenhuma ação é normalmente exigida pelo usuário em relação às atualizações do kernel. O que o autor da pergunta está se referindo ao kernel da linha principal , consulte: Devo atualizar para os kernels da "linha principal"?

Suchith JN
fonte

Respostas:

121

O conjunto mais simples de instruções que sempre usei para atualização / downgrade do kernel é pelo usuário ubuntuforums.org com o nome de lykwydchykyn (URL modificado por mim para este post):

  1. Vá aqui: http://kernel.ubuntu.com/~kernel-ppa/mainline/
  2. Faça o download de 3 (talvez 4) debs para uma pasta em algum lugar:

    linux-headers-VERSION-NUMBER_all.deb
    linux-headers-VERSION-NUMBER_amd64.deb
    linux-image-VERSION-NUMBER_amd64.deb
    linux-image-extra-VERSION-NUMBER_amd64.deb   # if available
    
  3. Instale os debs com o front-end do gerenciador de pacotes que você usa (o gdebi ainda existe?) Ou use estes comandos:

    cd /path/to/folder/where/you/put/the/debs
    sudo dpkg -i *.deb
    

Fontes:

Bucic
fonte
3
por exemplo, aqui você encontra duas versões para cada arquitetura: lowlatencye genericqual delas? kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty
rubo77
Sem sorte Eu vinha do kernel Utopic de baixa latência de 64 bits (3.16.0-31) no repositório padrão. Atualizei para a v3.16.7-ckt8 (linux-image-3.16.7-031607-lowlatency_3.16.7-031607.201503111033_amd64.deb) que está sendo executado, mas ainda não possui um trackpad. Isto é para um Acer C710.
Ubuntourist
Eu tive problemas com o touch pad. Meu BIOS padrão foi definido no modo avançado. Diz na bios que pode haver problemas ao usar o modo avançado sem um driver. No entanto, o modo básico funciona bem no ubuntu. Infelizmente, o modo básico funciona muito mal no Windows! Espero que isso ajude da maneira mais fácil.
Bhikkhu Subhuti
11
Para completar, além das etapas do @ Bucic - (4) aceite o novo carregador de inicialização grub (1ª opção). Provavelmente é disso que a maioria das pessoas precisa. Caso você queira ver exatamente o que muda, faça uma comparação para verificar, mas provavelmente apenas reescreverá o arquivo conf do Grub com as novas informações do kernel que você deseja. (5) reinicie. Além disso, este é o caminho mais seguro, que também irá atualizar sua versão Linux: sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot. Em qualquer um dos cenários, após a reinicialização, execute echo $(uname -r)para confirmar se você inicializou com êxito em seu novo kernel.
Manuel J. Diaz
11
@ rubo77 on lowlatency vs generic: askubuntu.com/questions/126664/…
Noremac
70

Você sempre pode fazer o seguinte:

apt-cache search linux-image

Escolha o que você deseja e faça:

sudo apt-get install linux-image-your_version_choice linux-headers-your_version_choice linux-image-extra-your_version_choice
user118932
fonte
4
Isso não daria um núcleo principal ; em vez disso, daria uma compilação do Ubuntu (com o número da versão especificado).
Eliah Kagan
14
Provavelmente melhor do que usar uma linha principal , já que ela foi massageada para o sistema operacional de destino.
quickshiftin
Funcionou como um encanto no Debian 8. Obrigado!
GTodorov 02/02
9
não esqueça de instalar os cabeçalhos do kernel também: sudo apt-get install linux-headers- [version] -generic. [version] deve ser igual à versão do kernel
mauek unak 23/02/16
11
Esta entrada deve ser alterada para instruir o usuário a instalar o pacote linux-image-extra porque, sem ele, algumas coisas podem não funcionar - como um teclado USB usado para inserir a senha para descriptografar seu disco.
Wojci
24

Minha resposta é: sim, você pode. A versão estável foi 3.4, mas neste tutorial eu uso o 3.3.1.

PAE genérico do Ubuntu (32 bits):

Execute os seguintes comandos:

mkdir kernel\ v3.3.1-precise && cd kernel\ v3.3.1-precise
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301-generic-pae_3.3.1-030301.201204021435_i386.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-image-3.3.1-030301-generic-pae_3.3.1-030301.201204021435_i386.deb
sudo dpkg -i linux-*.deb 
sudo update-grub
sudo reboot now

Ubuntu (64 bits):

Execute os seguintes comandos:

mkdir kernel\ v3.3.1-precise && cd kernel\ v3.3.1-precise
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301-generic_3.3.1-030301.201204021435_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-image-3.3.1-030301-generic_3.3.1-030301.201204021435_amd64.deb
sudo dpkg -i linux-*.deb 
sudo update-grub
sudo reboot now

Desfrutar!

penreturns
fonte
eu instalo o kernel 3.8.5-raring como você disse no meu Ubuntu 12.04. mas agora meu sistema operacional está inoperante e não há cli nem nenhum menu grub. só pensando.
ShgnInc 02/04
Bom, mas precisa ser atualizado. Eu recomendo encontrar a versão e, em seguida, google como instalá-lo. Clique nas páginas até encontrar algo parecido com isto. Para rc6 eu encontrei este yourownlinux.com/2016/03/…
Bhikkhu Subhuti
12

Ao contrário de algumas respostas aqui, o Ubuntu libera o novo kernel dentro de um ou dois dias da equipe principal do kernel. Eu costumava atualizar da maneira mais difícil, como sugerem algumas das respostas aqui, mas achei que essa é uma maneira mais fácil.

Implicações da instalação manual de Kernels

A instalação manual de kernels requer trabalho extra.

Existem razões pelas quais você deseja instalar o kernel da linha principal mais recente:

  • Um erro na última atualização do kernel do Ubuntu LTS e você não pode fazer o downgrade
  • Você possui um novo hardware não suportado no fluxo de atualização do kernel atual do Ubuntu LTS ou nas atualizações do HWE
  • Você deseja uma atualização de segurança ou novo recurso disponível apenas na versão mais recente do kernel da linha principal.

A partir de 15 de janeiro de 2018, o mais recente kernel estável da linha principal é 4.14.13. No momento em que escrevo, muitos estão interessados ​​em instalá-lo para proteção contra falhas de segurança do Meltdown. Se você optar por instalá-lo manualmente, você deve saber:

  • Os kernels LTS mais antigos não serão atualizados até que sejam maiores que a primeira opção do menu principal, intitulada Ubuntu .
  • Os kernels instalados manualmente não são removidos com o sudo apt auto-removecomando usual . Você precisa seguir o seguinte: Como remover versões antigas do kernel para limpar o menu de inicialização?
  • Monitore os desenvolvimentos nos kernels mais antigos para saber quando você deseja voltar ao método de atualização normal do kernel LTS. Em seguida, exclua o kernel da linha principal instalado manualmente, conforme descrito no link do marcador anterior.
  • Depois de remover manualmente o mais novo kernel da linha principal sudo update-grub, o último kernel LTS do Ubuntu será a primeira opção chamada Ubuntu no menu principal do Grub.

Localizando o kernel mais recente

Vá para ( kernel.ubuntu.com - Kernel PPA Mainline ) e pressione a Endtecla:

Kernel Mainline 1

Agora clique no link 4.9.8(ou um mais novo, se disponível quando você ler isso) e o seguinte será exibido:

núcleo principal 2

Observe os links com as marcas de aerógrafo pretas. Esses são os três que baixaremos para o Ubuntu 16.04 64-Bit usando processadores Intel ou AMD .

Instalando usando o Terminal

Abra uma sessão de terminal com Ctrl+ Alt+ Te use:

cd ~/Downloads # Change to your downloads directory
ll linux*.deb  # Check if any previous downloads still exist
rm linux*.deb  # Use this command if any previous downloads found

Agora volte para a tela de download acima e clique duas vezes nos três .debdownloads de kernel. Após a conclusão dos downloads (você verá o status no seu navegador), volte para a sessão do terminal e use:

sudo dpkg -i linux*.deb
rm linux*.deb
sudo reboot

Voila! - você está executando o kernel mais recente quando a primeira opção no menu de inicialização do grub é selecionada. Suas versões mais antigas do kernel ainda estão disponíveis no menu Opções avançadas do grub .

Após instalar o kernel mais recente uma dúzia de vezes, você fará a pergunta " Como faço para remover versões mais antigas do kernel? " E você encontrará essas respostas aqui no Ask Ubuntu .

WinEunuuchs2Unix
fonte
Você deve responder a esta pergunta "Não complique sua vida".
Fabby 9/07
9

resposta tardia, mas nova.

Vou adicionar mais algumas informações na minha resposta. Agora, meu antigo kernel era linux-headers-4.8.0-53.Para descobrir qual kernel você digita uname -rno terminal, digite este comando para obter a lista dos kernels disponíveis.

apt-cache search linux-image

Agora, escolha um deles que você deseja instalar e instale seguindo os comandos (não digite esses comandos assim, substitua a palavra kernal_version pela versão do kernel que você deseja instalar)

sudo apt-get install linux-image-kernal_version
sudo apt-get install linux-image-extra-kernal_version
sudo apt-get install linux-headers-kernal_version

Agora, no meu caso, eu escolho linux-image-4.10.0-22-genericpara que meu comando fique assim

sudo apt-get install linux-image-4.10.0-22-generic 
sudo apt-get install linux-image-extra-4.10.0-22-generic
sudo apt-get install linux-headers-4.10.0-22-generic

agora no final remova o kernel antigo por comando

sudo apt-get autoremove

Agora, quando o fiz pela primeira vez, não sei se é meu problema de hardware ou por causa da remoção do kernel antigo, mas meu laptop me mostra uma tela preta que acontece com o meu laptop algumas vezes . Também não sofro mais com o meu problema de tela preta .

uname -r

e isso me dá

linux-image-4.10.0-22-generic

o que significa que o kernel é atualizado.

ninguém
fonte
3
Seu problema de tela preta pode ser porque você removeu o kernel em uso. Depois de instalar o novo kernel, você precisa reiniciar. Em seguida, remova o kernel antigo.
Ravery #
Ótima resposta. Embora as coisas mudaram um pouco agora, eu tive que mudar linux-image-extrapara linux-modules-extraa versão 4.18.0-22-genericpara fazer este trabalho.
deerchao 27/08
7

Existe uma maneira muito mais simples de fazer isso, e é assim que eu uso. Simplesmente faça o download do script Ubuntu Mainline Kernel Updater e execute-o em um terminal. Ele fará o download dos .deb para você, instalará o novo kernel e, opcionalmente, removerá o antigo (não recomendado) e, em seguida, reiniciará opcionalmente.

Exemplo de saída (copiado do meu terminal):

evilsupahfly@the-black-beast:~$ sudo KernelUpdateChecker -no-rc -r utopic
Run this command to install the new kernel
/tmp/kernel-update
root@the-black-beast:~# /tmp/kernel-update
Config Notes:
Rejecting Release Candidates
Accepting Latest Kernel
Accepting kernels compiled for utopic
Accepting kernels with a version higher than 3.15.0-031500-lowlatency

Information:
Origin: 
    http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15.1-utopic
Kernel Version:
    3.15.1-031501
Release Date:
    2014/06/16 @ 18:41 (YYYY/MM/DD @ HH:MM)

Care to look at the change log? (y=Yes, n=No) (n)

(download output skipped)    

Greetings root
    I (the-black-beast) am now self aware and a sentient being, have a nice day.
    Oh and by the way SKYNET is now active.

Installing Linux 3.15.1-031501:

(installer output skipped)

The New Kernel looks to have been installed

WARNING: If the new kernel does not boot you may regret saying yes here.
Would you like to remove the current one? (y=Yes, n=No) (n): n

Are you ready to Reboot? (y=Yes, n=No) (n): n

Quase totalmente automatizado e completamente livre de problemas.

Seann
fonte
6

Escrevi um roteiro e sempre estará atualizado.

ukupgrade: Atualização do kernel do Ubuntu

  • Abra seu terminal favorito e execute os seguintes comandos
  • Conceder permissão executável para arquivar

    chmod +x ./ukupgrade

  • Chame o script

    ./ukupgrade

muhasturk
fonte
11
esse foi o melhor.
Ali
mantém a instalação da versão de baixa latência quando pedir genérico ~
user2413
Como eu não conhecia essa ferramenta, também escrevi uma ferramenta semelhante, que também suporta a seleção do sabor genérico / de baixa latência. Você pode encontrá-lo aqui: github.com/cristim/kernel-update
Cristian Măgherușan-Stanciu
6

Execute os seguintes comandos do Terminal para instalar um novo kernel da linha principal do Ubuntu .

sudo apt-get update
sudo apt-get install python-bs4 python-apt
cd /tmp
rm -rf medigeek-kmp*
wget https://github.com/medigeek/kmp-downloader/tarball/master -O kmpd.tar.gz
tar xzf kmpd.tar.gz
cd medigeek-*
python kmpd.py -d

O script está hospedado no Github . Basta pressionar em Entervez de um número se você ficar preso em uma determinada pergunta no script Python.

user145058
fonte
3
Eu sou o autor desse roteiro. Eu apenas consertei. Por favor, registre relatórios de erros, na maioria das vezes os programadores não sabem que existem erros até que alguém envie um relatório. :)
Savvas Radevic
Qual é a vantagem do seu script, basta fazer a instalação do debpacote, como descrito pela melhor resposta aqui?
rubo77
Eu estava pensando neste tipo de ferramenta desde que eu troquei porque o apt não instalou dependências para mim. Você pensaria que o apt era tudo sobre dependências. Errado. Um script pode ser atualizado para a versão mais recente ou procurar por um e deixar o usuário escolher. Tudo o que disse, se eu conseguir meu sistema novamente, irei direto desde que eu encontrei os comandos do terminal para rc6
Bhikkhu Subhuti
@SavvasRadevicImportError: No module named apt_pkg
Yahya
11
@SavvasRadevic Eu já fiz, mas apenas informando conforme sua solicitação.
Yahya
5

Se você não quiser passar pelo incômodo de atualizar manualmente o kernel, tente o UUKU. Funciona bem, mesmo em derivados do Ubuntu, como elementar, hortelã.

Usei-o para corrigir meu problema de WiFi, pois algumas vezes algum hardware novo não é detectado pelo kernel antigo. Além da atualização do driver de hardware, não acho necessário atualizar o kernel. Os novos kernels têm segurança e uma leve atualização de desempenho, mas também tendem a quebrar coisas como sua VM.

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install ukuu
ukuu-gtk

FONTE:

http://www.makeuseof.com/tag/upgrade-kernel-ukuu-ubuntu/

http://www.teejeetech.in/2016/07/ukuu-v167.html?m=1

ubu
fonte
3

Outra opção é tentar compilações personalizadas e otimizadas, como este kernel 3.2.1 otimizado para i3 / i5 / i7 para Ubuntu:

DuoPetalFlower, Meus experimentos com o Linux - kernel 3.2.1

Ele também possui versões otimizadas para átomos da Intel, que podem funcionar muito bem se você estiver tentando extrair toda a última gota de desempenho de um netbook.

Existem outros kernels como o Liquorix que afirmam ser melhor otimizados para o desempenho do desktop.

Embora não seja recomendado por alguns, muitas vezes você pode executar kernels oficiais de versões posteriores do Ubuntu sem problemas. Atualmente, estou executando o kernel 3.3.3 preciso no oneiric e minha máquina funciona melhor do que nunca. O desempenho e a duração da bateria aumentaram, enquanto as temperaturas caíram alguns graus. Meu problema de tela preta ao sair do modo de espera também desapareceu. Embora eu pessoalmente não tenha tido problemas ao usar kernels mais recentes, você encontrará algumas pessoas que se opõem fortemente a isso.

Veazer
fonte
2

Como você viu, o Ubuntu fornece versões do kernel do Linux, mas nem sempre tão rápido quanto o lançamento, você sempre pode compilar o kernel 3.3.1, mas isso pode ser mais esforço do que você estava procurando. Caso contrário, pesquise e tenho certeza de que encontrará um tutorial que você pode seguir como este . (note que eu não verifiquei muito bem, então tenha cuidado, pois os grãos são bestas perigosas)

agc93
fonte
2

Nenhuma das respostas acima satisfez o meu problema de atualizar manualmente o kernel para a versão estável mais recente. (Meu laptop atual é muito sensível aos RCs, Dell XPS 9365).

Eu criei um script de shell que procura por versões mais recentes do kernel e as mostra como opções a serem instaladas. Você pode experimentá-lo, é no github , leia o README.

Philippe Delteil
fonte
2

Eu criei este script kernel-upgrade.shque baixa e instala um kernel selecionado em http://kernel.ubuntu.com/~kernel-ppa/mainline :

TMP=/var/tmp/kernel
mkdir -p "$TMP" && cd "$TMP"
rm -f "$TMP"/*
F=v4.16-rc6
V=4.16.0-041600rc6
R=$(wget -qO - "http://kernel.ubuntu.com/~kernel-ppa/mainline/$F/0005-debian-changelog.patch" | sed -ne '/^+linux/{s/.*\.\([0-9]\+\)).*/\1/p;q}')
B="$V.$R"
URL=http://kernel.ubuntu.com/~kernel-ppa/mainline
set -x
wget "$URL/$F/linux-headers-$V-generic_${B}_amd64.deb" \
    "$URL/$F/linux-headers-${V}_${B}_all.deb" \
    "$URL/$F/linux-image-$V-generic_${B}_amd64.deb"
sudo dpkg -i "linux-headers-$V-generic_${B}_amd64.deb" \
    "linux-headers-${V}_${B}_all.deb linux-image-$V-generic_${B}_amd64.deb"
# now enter: sudo reboot now

Caso o Ubuntu não inicie com o novo kernel, você pode selecionar "configurações avançadas" no menu grub e selecionar para iniciar o último kernel em execução lá.


Nota: desde 4.15-rc7, o kernel tem a correção KPTI contra ataques de derretimento e desde 4.15.1 para "Spectre Variant 2, Mitigation 2" (verifique em http://github.com/speed47/spectre-meltdown-checker/ )

rubo77
fonte
Estou tendo alguma dificuldade para executar este script. Posso estar fazendo algo errado, então, aqui estão os meus passos: 1. Desativado boot seguro no BIOS, 2. salvou o script em kernel-upgrade.sh, e chmod 777 kernel-upgrade.sh. Eu então executei como sudo ./kernel-upgrade.sh. Eu recebo os erros rm: cannot remove '/var/tmp/kernel/*': No such file or directory:; então ++ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16...<truncando url> `Conectando ao kernel.ubuntu.com (kernel.ubuntu.com) | 91.189.94.216 |: 80 ... conectado. Solicitação HTTP enviada, aguardando resposta ... 404 Não encontrado` O 404 acontece 3x
Leftover Salad
o primeiro aviso de rmpoderia ser ignorado (adicionei rm -fagora). o resto não está claro, qual é o problema. truncar o URL aqui não está ajudando, resolvendo o problema. você pode postar a saída em pastebin.com , para que possamos ver qual seria o URL resultante?
rubo77
claro, colado aqui pastebin.com/KcdVdKQr
Restos de salada
também se isso importa, eu estou executando o ubuntu 17.10
Leftover Salad
Ele disse que este é o caminho errado: kernel.ubuntu.com/~kernel-ppa/mainline/v4.16-rc6/… verifique isso no caminho certo: kernel.ubuntu.com/~kernel-ppa/mainline/v4. 16-rc6
rubo77
2

instalar o kernel mais recente, instale o Ubuntu Kernel Update Utility

$ sudo add-apt-repository ppa:teejee2008/ppa

$ sudo apt-get install ukuu

desative o controle de acesso com o seguinte comando:

$ sudo xhost +

depois instale com ukuu

$ sudo ukuu

$ sudo ukuu --install-latest

então corra para garantir

$ sudo xhost -

e reinicie

$ sudo reboot
Vitaliy LiBrus
fonte
se você quiser ver uma lista de todas as versões do kernel, use 'sudo ukuu --list'.
Vitaliy LiBrus 16/01
se você quiser ver outras opções do ukuu, digite 'ukuu --help'
Vitaliy LiBrus 16/01
Você não deveria fazer sudo xhost -depois de terminar? (compare: github.com/teejee2008/ukuu/issues/25#issuecomment-341501666 )
student
@ aluno, sim, obrigado!
Adicionei
0

Verifique sua versão do kernel $ uname -sr

Download do Kernel v5 de 32 bits

$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb

Download do Kernel v5 de 64 bits

$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-unsigned-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb

Instale-o

$ sudo dpkg -i *.deb

Reinicie

sudo reboot

pranz
fonte