Como fazer o linux-generic apontar para 4.9 e não para linux-headers-4.4.0-62 depois da atualização do kernel de 4.4 para 4.9? [fechadas]

2

Usando o Ubuntu 16.04 ... Eu acabei de atualizar meu kernel de 4.4 para 4.9, que roda bem quando eu emito

apt-get upgrade

sugere que eu instale

The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic

Então, naturalmente, eu tentei instalar acima ainda vejo que aponta para 4.4 e não 4.9:

sudo apt-get install linux-generic linux-headers-generic linux-image-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  linux-headers-4.4.0-62 linux-headers-4.4.0-62-generic linux-image-4.4.0-62-generic linux-image-extra-4.4.0-62-generic
Suggested packages:
  fdutils linux-tools
The following NEW packages will be installed:
  linux-headers-4.4.0-62 linux-headers-4.4.0-62-generic linux-image-4.4.0-62-generic linux-image-extra-4.4.0-62-generic
The following packages will be upgraded:
  linux-generic linux-headers-generic linux-image-generic

Curiosamente, quando peço para instalar o pacote 4.9 headers, descubro que eles já estão instalados

sudo apt-get install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
linux-headers-4.9.0-040900-generic is already the newest version (4.9.0-040900.201612111631).
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Como convencer meu sistema de que o pacote linux-generic deve apontar para 4.9 e não 4.4? ... Eu vejo que o Ubuntu Zesty 17.04 vai usar 4.9 ... Se eu quiser 4.9 existe alguma coisa que eu possa fazer agora para instalar 4.9 versões acima ou apenas instalar o 17.04 agora?

Aqui está como eu atualizei meu Ubuntu 16.04 do kernel 4.4 para 4.9

cd /tmp/

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900_4.9.0-040900.201612111631_all.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb

sudo dpkg -i *.deb
sudo reboot now 

uname -r
4.9.0-040900-generic

UPDATE Depois de atualizar manualmente o kernel da v4.4 para a v4.9 a caixa ficou boa por semanas até que o docker quisesse uma atualização ... ela falhou com

systemctl restart docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.



journalctl -xe
Feb 05 17:01:06 bodhisattva polkitd(authority=local)[1767]: Registered Authentication Agent for unix-process:8451:61106220 (system bus name :1.347 [/usr/bi
Feb 05 17:01:06 bodhisattva gnome-session[3383]: Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Feb 05 17:01:11 bodhisattva polkitd(authority=local)[1767]: Operator of unix-session:c2 successfully authenticated as unix-user:stens to gain TEMPORARY aut
Feb 05 17:01:11 bodhisattva systemd[1]: Stopped Docker Application Container Engine.
-- Subject: Unit docker.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.service has finished shutting down.
Feb 05 17:01:11 bodhisattva systemd[1]: Starting Docker Socket for the API.
-- Subject: Unit docker.socket has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.socket has begun starting up.
Feb 05 17:01:11 bodhisattva systemd[1]: Listening on Docker Socket for the API.
-- Subject: Unit docker.socket has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.socket has finished starting up.
-- 
-- The start-up result is done.
Feb 05 17:01:11 bodhisattva systemd[1]: Starting Docker Application Container Engine...
-- Subject: Unit docker.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.service has begun starting up.
Feb 05 17:01:11 bodhisattva dockerd[8461]: time="2017-02-05T17:01:11.687485266-05:00" level=info msg="libcontainerd: new containerd process, pid: 8467"
Feb 05 17:01:12 bodhisattva dockerd[8461]: time="2017-02-05T17:01:12.692845664-05:00" level=error msg="[graphdriver] prior storage driver aufs failed: driv
Feb 05 17:01:12 bodhisattva dockerd[8461]: Error starting daemon: error initializing graphdriver: driver not supported
Feb 05 17:01:12 bodhisattva systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Feb 05 17:01:12 bodhisattva systemd[1]: Failed to start Docker Application Container Engine.
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.service has failed.
-- 
-- The result is failed.
Feb 05 17:01:12 bodhisattva systemd[1]: docker.service: Unit entered failed state.
Feb 05 17:01:12 bodhisattva systemd[1]: docker.service: Failed with result 'exit-code'.
Feb 05 17:01:12 bodhisattva polkitd(authority=local)[1767]: Unregistered Authentication Agent for unix-process:8451:61106220 (system bus name :1.347, object

então eu reverti o kernel de volta ao original e consertei o problema de atualização do docker ... aqui está como eu saltei o kernel da v4.9 de volta para a v4.4 ... primeiro reinicie enquanto pressiona a tecla Shift e então no menu do GRUB escolha as opções avançadas e inicie nessa versão anterior v4.4 ... depois de inicializar os kernels listados

dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
rc  linux-image-4.4.0-47-generic                4.4.0-47.68                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-49-generic                4.4.0-49.70                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-51-generic                4.4.0-51.72                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-52-generic                4.4.0-52.73                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-53-generic                4.4.0-53.74                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-57-generic                4.4.0-57.78                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-58-generic                4.4.0-58.79                                          amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.9.0-040900-generic            4.9.0-040900.201612111631                            amd64        Linux kernel image for version 4.9.0 on 64 bit x86 SMP

então emitido

sudo dpkg --purge  linux-image-4.9.0-040900-generic  

e agora isso foi executado com sucesso

sudo apt-get install   linux-generic linux-headers-generic linux-image-generic
    
por Scott Stensland 22.01.2017 / 22:20

2 respostas

1

A primeira mensagem que você está recebendo

The following packages have been kept back:
 linux-generic linux-headers-generic linux-image-generic

É discutido aqui: ( digitalocean.com - Os pacotes foram mantidos com a nova imagem do Ubuntu 14 e a solução é:

sudo apt-get dist-upgrade

A segunda mensagem que você está recebendo

The following NEW packages will be installed:
  linux-headers-4.4.0-62 linux-headers-4.4.0-62-generic linux-image-4.4.0-62-generic linux-image-extra-4.4.0-62-generic

É perfeitamente normal e não é motivo de preocupação. Quando você faz atualizações regulares do Ubuntu 16.04, o kernel 4.4.0-xx é atualizado automaticamente. Não tem nada a ver com o seu Kernel 4.9.4 ou Kernel 4.9.5, que é a primeira opção no seu menu do Grub.

Os kernels 4.4.0-xxx estão disponíveis para inicialização, se necessário, no menu Opções Avançadas do Grub.

Quando você procurar no seu sistema, verá os cabeçalhos do linux para todas as versões do kernel em sua unidade:

$ ls /lib/modules
3.13.0-92-generic      4.7.1-040701-generic   4.8.12-040812-generic
3.2.0-113-generic      4.7.2-040702-generic   4.8.4-040804-generic
4.4.0-53-generic       4.7.3-040703-generic   4.8.5-040805-generic
4.4.0-57-generic       4.7.5-040705-generic   4.9.0-040900-generic
4.4.0-59-generic       4.8.10-040810-generic  4.9.1-040901-generic
4.4.33-040433-generic  4.8.1-040801-generic   4.9.4-040904-generic
4.6.3-040603-generic   4.8.11-040811-generic

Para ver seus arquivos de cabeçalho para o 4.4.0-xxx:

$ ls /lib/modules/4.4.0-59-generic/build/include/linux
8250_pci.h                i2c-smbus.h              phy_fixed.h
acct.h                    i2c-xiic.h               phy.h
acpi_dma.h                i7300_idle.h             pid.h
  (... hundreds of files ....)
i2c-pnx.h                 phonet.h                 zsmalloc.h
i2c-pxa.h                 phy                      zutil.h

Para ver seus arquivos de cabeçalho para 4.9.4:

$ ls /lib/modules/4.9.4-040904-generic/build/include/linux
8250_pci.h                i2c-ocores.h             phy_fixed.h
acct.h                    i2c-omap.h               phy.h
acpi_dma.h                i2c-pca-platform.h       pid.h
  (... hundreds of files ....)
i2c-mux-gpio.h            pfn_t.h                  zutil.h
i2c-mux.h                 phonet.h
i2c-mux-pinctrl.h         phy

Removendo kernels antigos

Você deve executar sudo apt-get autoremove periodicamente para limpar as versões antigas dos kernels 4.4.0-xxx. Isso manterá a versão mais recente mais a próxima mais antiga.

As versões mais antigas do kernel para 4.6, 4.7, 4.8 e 4.9 devem ser removidas manualmente usando:

sudo apt-get purge linux-image-x.x.x.x-generic

seguido por:

sudo update-grub

Como cada versão do kernel é > 100 MB você pode economizar muito espaço de armazenamento. Um write-up completo para excluir kernels mais antigos que você instalou manualmente pode ser encontrado aqui:

Pacotes recomendados

apt-get tem uma mensagem para você:

Suggested packages:
  fdutils linux-tools

Isso não acontece no meu sistema e pode ser interessante para pesquisas futuras.

A maneira mais fácil de instalar o kernel mais recente

Eu usei wget como você fez porque são instruções populares / comuns na internet. Requer um pouco de digitação e junção de seqüências de caracteres. Uma maneira mais fácil é apenas navegar para:

http://kernel.ubuntu.com/~kernel-ppa/mainline/

Pressione a tecla End e clique em 4.9.5 ou no kernel mais novo que você deseja. Então esta tela aparece:

Supondoqueoyoyuqueiraaversãogenéricade64bits,cliqueem:

  • linux-headers-4.9.5-040905_4.9.5-040905.201701200532_all.deb
  • linux-headers-4.9.5-040905-generic_4.9.5-040905.201701200532_amd64.deb
  • linux-image-4.9.5-040905-generic_4.9.5-040905.201701200532_amd64.deb

Todosostrêsdownloadsserãofacilmenteiniciadossemumadigitaçãocomplicada.

Quandoterminar,abraoterminalcomCtrl+Alt+Tedigite:

cdDownloadssudodpkg-i*.debrm*4.9.5*

Achoquetodosvãoacharessemétodomuitomaisfácildoqueosmétodoscomumentepublicadosnainternet.

Ubuntu17.04ZestyestaráusandooKernel4.10

ApesardesuadeclaraçãoZestyestarusandookernel,aversão4.9foiverdadeiraontem,nãoéverdadehoje.Deacordocomestahistóriadivulgadaumahoraatrás:( softpedia.com - Desenvolvedores do Ubuntu agora rastreando o Linux Kernel 4.10 para o Ubuntu 17.04 Zesty Zapus ) eles estão usando o Kernel 4.10 rc4.

Dito isto, eu ficaria no Kernel 4.9.5, que é estável e tem melhorias para i915 e AMD Southern Islands, o que pode interessar a muitos aqui.

    
por WinEunuuchs2Unix 23.01.2017 / 03:14
1

A resposta é simples: você não pode.

As versões do Ubuntu suportam kernels específicos que não são idênticos aos da linha principal do Linux.

A equipe do Kernel canônico mantém os kernels do Ubuntu com base nas versões do kernel principal do Linux. Em muitos casos, a correção de bugs e o suporte de alguns hardwares são suportados por novos kernels mainline.

O Ubuntu 16.04 suporta o kernel 4.4 e em breve também suportará o 4.8 HWE. O Ubuntu 16.10 suporta o 4.8. Apenas esses kernels recebem atualizações dos repositórios do Ubuntu.

Você pode instalar os kernels principais por sua conta e risco, mas eles não receberão atualizações. Você terá que atualizá-los manualmente. Também problemas com kernels não suportados estão fora do tópico neste site.

O Grub sempre inicializará com a versão mais alta do kernel instalada, não importando como foi instalada. Portanto, ter os kernels 4.4 do Ubuntu não afetará nenhum outro kernel com números de versão mais altos.

Se tiver certeza de que você quer usar apenas os kernels principais que planeja instalar e atualizar manualmente, você pode remover os meta-pacotes do kernel. Depois disso, você irá parar de obter atualizações dos kernels Ubuntu suportados.

Isso pode ser feito por

sudo apt remove linux-image-generic linux-headers-generic
comando

.

    
por Pilot6 23.01.2017 / 10:18