Ссылки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
https://www.kernel.org/ https://debianforum.ru/index.php?topic=12392.0 https://stackoverflow.com/questions/46008624/how-to-fix-fatal-error-openssl-opensslv-h-no-such-file-or-directory-in-redhat https://github.com/ROCm-Developer-Tools/HIP/issues/130 https://stackoverflow.com/questions/61657707/btf-tmp-vmlinux-btf-pahole-pahole-is-not-available https://b14esh.com/nix/source-kernel/kernel.html http://www.kroah.com/lkn/ https://cateee.net/lkddb/web-lkddb/ https://wiki.archlinux.org/title/Kernel_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Traditional_compilation_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) http://citforum.ru/operating_systems/linux/lkmpg/ https://wirenboard.com/wiki/How_To_Build_Linux_Kernel |
make[2]: *** Нет правила для сборки цели «debian/certs/benh@debian.org.cert.pem», требуемой для «certs/x509_certificate_list». Останов.
make[1]: *** No rule to make target ‘debian/certs/debian-uefi-certs.pem’, needed by ‘certs/x509_certificate_list’. Stop.
1 |
Попробуй удалить строки с CONFIG_SYSTEM_TRUSTED_KEY и CONFIG_MODULE_SIG_KEY из .config файла. Очень похоже, на вот эту проблему |
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
1 |
apt install dwarves |
Не обходимые пакеты для сборки:
1 2 3 4 5 6 7 8 9 10 11 12 |
apt install git make gcc linux-libc-dev linux-headers-amd64 pkg-config libncurses-dev flex bison libssl-dev libelf-dev dwarves rsync bc fakeroot build-essential xz-utils libncurses5-dev git - отслеживает и записывает все изменения исходного кода во время разработки fakeroot - упаковочный инструмент, создающий фальшивую корневую среду build-essential - Устанавливает инструменты разработки, такие как C, C++, gcc и g++. ncurses-dev - Библиотека программирования, предоставляющая API для текстовых терминалов xz-utils - обеспечивает быстрое сжатие и распаковку файлов libssl-dev - поддерживает SSL и TSL, которые шифруют данные и делают интернет-соединение безопасным bc (Basic Calculator) - математический язык сценариев, поддерживающий интерактивное выполнение операторов flex (Fast Lexical Analyzer Generator) - генерирует лексические анализаторы, преобразующие символы в токены libelf-dev - выдает общую библиотеку для управления файлами ELF (исполняемые файлы, дампы ядра и объектный код) bison - генератор парсера GNU, который преобразует описание грамматики в программу на языке C. |
Сборка ядра(компиляция):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
0. Переходим в каталог с исходниками: cd /usr/src/ 1. Скачиваем ядро с www.kernel.org: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.1.tar.xz 2. Распаковываем: # tar xvf lilnux-X.X.X-rcX.tar.gz tar xvf linux-5.17.1.tar.xz 3. Переходим в каталог ядра: cd /usr/src/linux-5.17.1 4. Достаем настройки установленного ядра !!! make config если конфига нет создаем новый !!! make olddefconfig уведомит программу о том, что вы, как бы, ответили на все задаваемые ею вопросы положительно. !!! make oldnoconfig даст понять команде, что на все вопросы вы дали отрицательные ответы. !!! make oldconfig программа в интерактивной форме задаст вам вопросы !!! make localmodconfig создаст конфигурацию на основе текущей конфигурации и загруженных модулей !!! !!! если не хотим выставлять все галочки в конфигурации нового ядра с нуля, берём готовый config либо из /boot либо из /proc: !!! cp /boot/config-$( uname -r ) .config !!! zcat /proc/config.gz > .config make oldconfig 5. Если что то требуется добавить в ядро выполняем: make menuconfig 6.0 Собираем модули ядра make modules 6.1 Устанавливаем модули ядра в систему make modules_install 6.2 Собираем ядро: #make -j2 V=s - вывод "-j2" будет использовать два ядра, "V=s" подробный вывод сборки make -j2 V=s 7. Устанавливаем ядро в систему make install |
Собираем deb пакет для установки:
1 2 3 4 |
!!! make-kpkg находится на пенсии, официальный путь Debian — make deb-pkg. !!! В официальном руководстве по ядру Debian используется make deb-pkg make deb-pkg |
Удаление ядра:
1 2 3 4 5 6 7 8 9 10 |
0. Удаляем файлы ядра: rm /boot/vmlinuz-5.17.1 rm /boot/vmlinuz-5.17.1 rm /boot/config-5.17.1 rm /boot/initrd.img-5.17.1 rm /boot/System.map-5.17.1 rm -Rf /lib/modules/5.17.1/ 1. А затем необходимо обновить конфигурацию Grub: sudo update-grub2 |
Пере собираем ядро debian
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
0. ставим исходники apt install linux-source-5.16 1. Идем в каталог /usr/src cd /usr/src/ 2. Распаковываем tar xvf linux-source-5.16.tar.xz 3. Входим в каталог cd linux-source-5.16 4. Приносим конфигурацию с текущей системы cp /boot/config-$( uname -r ) .config 5. Готовим пакеты make modules make deb-pkg -j4 |
raspberry pi
1 |
sudo apt install raspberrypi-kernel-headers |
Иногда очень надо поставить конкретное ядро:
1 2 3 4 |
apt search linux-image | grep 5.15 | grep 71 apt search linux-headers | grep 5.15 | grep 71 apt install linux-headers-5.15.0-71-generic linux-image-5.15.0-71-generic |
Пример установки стороннего драйвера
1 2 3 4 5 6 7 8 |
cat README cd install-dir/src/bh2_linux_driver make modules make modules_install install -m 644 -D -t /lib/modules/$(uname -r)/extra bh2/bh2.ko depmod |