Tenho instalado felizmente os kernels da linha principal 5.10 (dehttps://kernel.ubuntu.com/~kernel-ppa/mainline/) no meu Ubuntu 20.04.
Tentando atualizar para 5.10.33, descobri uma dependência indesejada em libc >=2.33 (o foco está em 2.31) para o -headers
pacote (embora não a imagem em si - mas quem quer viver sem os cabeçalhos).
AFAIK, libc6 é quase impossível de atualizar. É isso? Estou preso em 5.10.32, a menos que desista do LTS? Essas pessoas têm um site público onde é possível relatar bugs?
Atualizar: Este parece ser o principalbug da barra de lançamento. Uma coisa boa que resultou disso:Tuxinvadersurgiu com umContêiner Docker(fonte no Github:construtor de linha principal focal) para construir imagens principais do kernel e carregou pacotes 5.10 - 5.12 em seus PPAs:
- PPA de longo prazo da linha principal do tuxinvader
- PPA lts-mainline-anterior do tuxinvader
- PPA lts-mainline do tuxinvader
Dica: Para ver todos os pacotes Linux disponíveis para a série/faixa de versões escolhida, depois de mexer com PPAs e talvez backports Debian, xanmod etc (como eu fiz), faça algo como
apt update
printf '%s\0' linux-{image-unsigned,headers,modules}-5.10.{32..40} |
xargs -0 -n 1 apt-cache pkgnames | LC_ALL=C sort | less
Esperamos que esse problema desapareça. Mas convenhamos, dependendo dos caprichos do "kernel mainline PPA" (ou de quem está por trás disso, ainda não entendicomo esses desenvolvedores podem ser alcançados) para binários não foi uma experiência agradável.
Responder1
Você pode ficar com o LTS, mas precisarácompile você mesmo os kernels da linha principalpara superar o novo problema da dependência.
A versão principal do compilador usada parece ter acabado de mudar:
doug@s19:~/temp-k-git/linux$ scripts/diffconfig .config-5.12.0-051200rc6-lowlatency .config-5.12.0-051200-lowlatency
CC_VERSION_TEXT "gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0" -> "gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0"
GCC_VERSION 100200 -> 100300
LD_VERSION 23501 -> 23601
+DEBUG_INFO_BTF_MODULES y
+PAHOLE_HAS_SPLIT_BTF y
Mas se eu apenas pegar a configuração do kernel do Ubuntu e compilar, no meu servidor de teste principal 20.04, ele será instalado corretamente. Ou seja, a dependência é uma função da versão do compilador usada e não do código-fonte do kernel.
Não é realmente relevante, mas aqui está a diferença de configuração para o que compilei:
doug@s19:~/temp-k-git/linux$ scripts/diffconfig .config-5.12.0-051200-lowlatency .config
-DEBUG_INFO_BTF y
-DEBUG_INFO_BTF_MODULES y
-DEBUG_INFO_COMPRESSED n
-DEBUG_INFO_DWARF4 y
-DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT n
-DEBUG_INFO_REDUCED n
-DEBUG_INFO_SPLIT n
-GDB_SCRIPTS y
-PAHOLE_HAS_SPLIT_BTF y
CC_VERSION_TEXT "gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0" -> "gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
DEBUG_INFO y -> n
GCC_VERSION 100300 -> 90300
LD_VERSION 23601 -> 23400
SYSTEM_TRUSTED_KEYS "debian/canonical-certs.pem" -> ""
Responder2
Aqui está como eu fiz módulos dkms gerados com o kernel 5.11.18 do kernel principal do Ubuntu. Eu executo o Linux Mint 20.1 Cinnamon e uso nvidia-driver-460 versão 460.73.01-0ubuntu0.20.04.1 no dkms. O gcc que uso é a versão 10.3. Tudo funcionou bem com a versão 5.11.16-genérica, mas parou quando tentei a 5.11.18. Então tentei descobrir o problema porque o dkms não compilou os módulos do kernel. Isto é o que eu fiz:
- Kernel 5.11.18-genérico instalado
- Descobriu que nos cabeçalhos do kernel o programa fixdep está relacionado ao glibc 2.33
- Descobriu que nos cabeçalhos do kernel o programa modpost está relacionado ao glibc 2.33
- Substituído /lib/modules/5.11.18-generic/build/scripts/basic/fixdep pelo da versão 5.11.16
- Substituído /lib/modules/5.11.18-generic/build/scripts/mod/modpost pelo da versão 5.11.16
- Executei dkms no kernel 5.11.18 (/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)
- Módulos do kernel da nvidia gerados com sucesso. Reinicializei e funciona bem. Até tentei o mesmo com o kernel 5.12.1 e funcionou.
Espero que isto ajude.
Responder3
Consegui instalar o 5.12 no Ubuntu 20.04 com libc6
2.31 usando o ppa mencionado:
sudo add-apt-repository ppa:tuxinvader/lts-mainline
sudo apt install linux-image-unsigned-5.12.4-051204-generic linux-modules-5.12.4-051204-generic linux-headers-5.12.4-051204-generic
Responder4
Outra opção fácil de ficar com o 5.10, sem compilar, parece ser usar um kernel customizado. Como xanmod
. A questão é que eles não parecem se esforçar muito em melhorias de "desempenho" para as séries LTS mais antigas, então eupensaralguém pode estar obtendo um kernel bastante padrão. Por exemplo, este é o log paraxanmod 5.10.35.