Всем доброго дня!
Не уверен с чего начать.
Компилирую исходник 5.4.125 с kernel.org и получаю вот это
CC [M] kernel/kheaders.o
debian/rules:6: recipe for target 'build' failed
make[2]: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
scripts/Makefile.package:73: recipe for target 'deb-pkg' failed
make[1]: *** [deb-pkg] Error 2
Makefile:1469: recipe fpr target 'deb-pkg' failed
make: *** [deb-pkg] Error 2
вот команды, которые я использовал (обратите внимание на два diff исходника, где более поздний не работает):
sudo apt build-dep linux linux-image-$(uname -r)
sudo apt install libncurses-dev fakeroot
# the current kernel version works ok ...
apt source linux-image-unsigned-$(uname -r)
# the latest 5.4.123 has the issue ...
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.123.tar.gz
tar -xf linux-5.4.123.tar.gz
make oldconfig
# just to check settings ... no changes.
make menuconfig
make -j`nproc` deb-pkg
При отсутствии какой-либо полезной информации (какие команды вы вызывали? Какие шаги вы делали раньше ?) можно только догадываться, что вы следовали этим инструкциям:
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
Что, конечно, работает только для сборки ядра из исходного пакета Debian или из Ubuntu репозиторий git.
Если вы получили исходные тексты с kernel.org, как вы писали, они, вероятно, не будут поставляться с частью пакета Debian, поэтому вам необходимо следовать стандартным инструкциям для сборки ядра, например здесь:
https: //www.linux.com / topic / desktop / how-compile-linux-kernel-0 /
Но это означает установку распакованного ядра непосредственно в вашу систему, а менеджер пакетов (dpkg, apt) ничего об этом не знает и может с радостью перезаписать его или удалить с помощью одного из следующих регулярных обновлений, и ваше собственное ядро может исчезнуть.
Таким образом, вы можете предотвратить это с помощью некоторой тактической команды apt-mark hold
, но тогда вы больше никогда не получите никаких обновлений безопасности; или вы можете сделать это обычным способом Ubuntu и получить исходный код с kernel.ubuntu.org, создать пакет .deb для этого ядра и установить его.
Обратите внимание, что попытка использовать ядро 5.x в Ubuntu 18.04, которое поставляется с ядром 4.x (сейчас 4.5.0-144), может взорваться вам прямо в лицо, когда все виды других низкоуровневых пакетов не работают. совместим с гораздо более новым ядром. Это может сработать, а может и не сработать. В противном случае вы, вероятно, не захотите перестраивать значительную часть дистрибутива, которая может оказаться необходимой.
Изменить: Если ваши приоритеты таковы, что вам нужно последнее ядро 5.4, выберите более свежий выпуск Ubuntu; если вам нужен выпуск LTS, 20.04 LTS - намного лучшая отправная точка, а 21.04 (хотя и не выпуск LTS) еще лучше.
Время от времени низкоуровневые системные пакеты необходимо адаптировать для нормальной работы с новым ядром; На ум приходит UDEV, если назвать только один. Если вы используете более новое ядро, но все еще более старую UDEV (или другие аналогичные низкоуровневые подсистемы), некоторые системные события могут отправляться в несколько иных ситуациях, чем раньше, а некоторые инструменты могут нарушать работу незаметным образом.Это не требует, чтобы было таким, но возможность существует.
Существует причина, по которой дистрибутив выпускается целиком через определенные промежутки времени; Самая важная вещь, которую делает дистрибьютор Linux, - это интеграция всех различных подсистем, чтобы они хорошо работали вместе. Дистрибутив Linux - это не просто кучка частей, которые нужно сложить наугад, и все будет хорошо; здесь много опыта и работы.
Вы можете повысить свои шансы на то, что все будет хорошо, если возраст компонентов примерно такой же; но последнее ядро с середины 2021 года и все остальное с начала 2018 года (то есть более чем на 3 года раньше!) вызывает проблемы.
Тебе, конечно, может повезти, но, может быть, тебе повезет.