Я с удовольствием устанавливал ядра 5.10 mainline (из https://kernel.ubuntu.com/~kernel-ppa/mainline/) на мою Ubuntu 20.04.
Пытаясь обновиться до 5.10.33, я обнаружил нежелательную зависимость от libc >=2.33 (фокус находится на 2.31) для пакета -headers
(хотя и не для самого образа - но кто хочет жить без заголовков).
AFAIK, libc6 практически невозможно обновить. Это... оно? Я застрял на 5.10.32, если не откажусь от LTS? Есть ли у этих людей сайт, где можно сообщить об ошибках?
Вы можете остаться с LTS, но вам придется самостоятельно скомпилировать ядра основной линии , чтобы преодолеть новую проблему зависимостей.
Используемая версия компилятора mainline, кажется, только что изменилась:
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, то он отлично установится. Т.е. зависимость - это функция используемой версии компилятора, а не исходного кода ядра.
Не совсем уместно, но вот конфигурационная разница для того, что я скомпилировал:
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" -> ""
Вот как я создал модули dkms, сгенерированные с ядром 5.11.18, из основного ядра ubuntu. Я запускаю Linux Mint 20.1 Cinnamon и использую nvidia-driver-460 версии 460.73.01-0ubuntu0.20.04.1 в dkms. Я использую gcc версии 10.3. Все работало нормально с версией 5.11.16-generic, но остановилось, когда я попробовал 5.11.18. Я попытался найти проблема, почему dkms не скомпилировал модули ядра. Я сделал следующее:
Надеюсь, это поможет.