메인라인 커널은 이제 libc6 2.33에 의존하며 focus에서는 설치할 수 없습니까?

메인라인 커널은 이제 libc6 2.33에 의존하며 focus에서는 설치할 수 없습니까?

나는 5.10 메인라인 커널을 즐겁게 설치해왔습니다.https://kernel.ubuntu.com/~kernel-ppa/mainline/) 내 우분투 20.04에서.

5.10.33으로 업데이트하려고 시도하면서 패키지에 대해 libc >=2.33(초점이 2.31에 있음)에 대한 달갑지 않은 종속성을 발견했습니다 -headers(이미지 자체는 아니지만 헤더 없이 살고 싶어하는 사람).

AFAIK, libc6은 업그레이드가 거의 불가능합니다. 이거... 그거요? LTS를 포기하지 않으면 5.10.32에서 멈추나요? 이 사람들이 버그를 보고할 수 있는 공개 사이트를 갖고 있나요?

업데이트: 이게 메인인 것 같아요발사대 버그. 그 결과 좋은 점은 다음과 같습니다.턱신 침입자을 생각해 냈습니다도커 컨테이너(Github의 출처:초점 메인라인 빌더) 커널 메인라인 이미지를 빌드하고 5.10 - 5.12 패키지를 PPA에 업로드했습니다.

: 선택한 시리즈/버전 범위에 대해 사용 가능한 모든 Linux 패키지를 보려면 PPA 및 데비안 백포트, xanmod 등을 망친 후 다음과 같이 수행하십시오.

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

이 문제가 해결되기를 바랍니다. 하지만 "커널 메인라인 PPA"의 변덕에 따라 현실을 직시하자(또는 그 뒤에 있는 사람이 누구인지는 여전히 이해가 안 됨)이러한 개발자에게 연락할 수 있는 방법) 바이너리의 경우 즐거운 경험이 아니었습니다.

답변1

LTS를 계속 사용할 수 있지만 다음을 수행해야 합니다.메인라인 커널을 직접 컴파일새로운 종속성 문제를 극복하기 위해.

사용된 메인라인 컴파일러 버전이 방금 변경된 것 같습니다.

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

그러나 Ubuntu 커널 구성을 사용하여 기본 20.04 테스트 서버에서 직접 컴파일하면 제대로 설치됩니다. IE 종속성은 커널 소스 코드가 아닌 컴파일러 버전의 기능입니다.

실제로 관련성은 없지만 내가 컴파일한 구성의 차이점은 다음과 같습니다.

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" -> ""

답변2

다음은 ubuntu mainline-kernel에서 커널 5.11.18로 생성된 dkms 모듈을 만든 방법입니다. 저는 Linux Mint 20.1 Cinnamon을 실행하고 dkms에서 nvidia-driver-460 버전 460.73.01-0ubuntu0.20.04.1을 사용합니다. 내가 사용하는 gcc는 버전 10.3입니다. 버전 5.11.16-일반에서는 모든 것이 잘 작동했지만 5.11.18을 시도했을 때 중지되었습니다. 그래서 dkms가 커널 모듈을 컴파일하지 않은 이유를 찾아보았습니다. 이것이 내가 한 일입니다:

  1. 설치된 커널 5.11.18-일반
  2. 커널 헤더 프로그램 fixdep에서 glibc 2.33과 관련이 있음을 발견했습니다.
  3. 커널 헤더 프로그램 modpost에서 glibc 2.33과 관련이 있음을 발견했습니다.
  4. /lib/modules/5.11.18-generic/build/scripts/basic/fixdep를 5.11.16의 항목으로 대체했습니다.
  5. /lib/modules/5.11.18-generic/build/scripts/mod/modpost를 5.11.16의 항목으로 대체했습니다.
  6. 커널 5.11.18(/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)에 대해 dkms를 실행했습니다.
  7. NVIDIA 커널 모듈을 성공적으로 생성했습니다. 재부팅하니 정상적으로 작동됩니다. 커널 5.12.1에서도 동일한 작업을 시도했지만 작동했습니다.

도움이 되었기를 바랍니다.

답변3

libc6언급된 ppa를 사용하여 2.31 이 포함된 Ubuntu 20.04에 5.12를 설치할 수 있었습니다 .

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

답변4

컴파일하지 않고 5.10을 유지하는 또 다른 쉬운 옵션은 사용자 정의 커널을 사용하는 것 같습니다. 좋다 xanmod. 문제는 그들이 이전 LTS 시리즈의 "성능" 향상에 많은 노력을 기울이지 않는 것 같아서생각하다꽤 표준적인 커널을 얻을 수도 있습니다. 예를 들어 이것은 다음에 대한 로그입니다.xanmod 5.10.35.

관련 정보