O kernel principal agora depende do libc6 2.33, não instalável no focal?

O kernel principal agora depende do libc6 2.33, não instalável no focal?

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 -headerspacote (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:

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:

  1. Kernel 5.11.18-genérico instalado
  2. Descobriu que nos cabeçalhos do kernel o programa fixdep está relacionado ao glibc 2.33
  3. Descobriu que nos cabeçalhos do kernel o programa modpost está relacionado ao glibc 2.33
  4. Substituído /lib/modules/5.11.18-generic/build/scripts/basic/fixdep pelo da versão 5.11.16
  5. Substituído /lib/modules/5.11.18-generic/build/scripts/mod/modpost pelo da versão 5.11.16
  6. Executei dkms no kernel 5.11.18 (/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)
  7. 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 libc62.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.

informação relacionada