| |
| linux:build_kernel [2025/09/17 20:25] – создано Luciferus | linux:build_kernel [2025/12/15 01:40] (текущий) – Luciferus |
|---|
| Если же вы хотите выполнять все действия, ограничив себя только терминалом и избежать при этом массы лишних движений, то вы можете выполнить несколько команд в нем, получив тот же результат... | Если же вы хотите выполнять все действия, ограничив себя только терминалом и избежать при этом массы лишних движений, то вы можете выполнить несколько команд в нем, получив тот же результат... |
| Скачиваем, при условии, что уже находимся в **/usr/src**: | Скачиваем, при условии, что уже находимся в **/usr/src**: |
| <code>wget https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.16.6.tar.xz</code> | <code>wget https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.18.1.tar.xz</code> |
| затем извлекаем архив: | затем извлекаем архив: |
| <code>tar -xpJf linux-*.tar.xz</code> | <code>tar -xpJf linux-*.tar.xz</code> |
| </WRAP> | </WRAP> |
| Например: | Например: |
| <code>tar -xpJf linux-6.16.6.tar.xz</code> | <code>tar -xpJf linux-6.18.1.tar.xz</code> |
| |
| Создаём линк на директорию с извлеченными сорцами и переходим в **/usr/src/linux**: | Создаём линк на директорию с извлеченными сорцами и переходим в **/usr/src/linux**: |
| <code>ln -s /usr/src/linux-6.16.6 linux && cd /usr/src/linux</code> | <code>ln -s /usr/src/linux-6.18.1 linux && cd /usr/src/linux</code> |
| В ряде случаев, если вы используете какое-то специфическое оборудование или хотите добавить поддержку какой-то недокументированной функции в ядро, вам необходимо наложить **патч** для корректной работы этих устройств... Это отдельная тема, так как существует несколько способов патчинга для различных целей, поэтому не будем заострять на этом внимания, чтобы не вывихнуть себе моск окончательно :-D. К тому же, если у вас до этого все устройства функционировали нормально, то патчинг определенно не нужен. В любом случае, вы сможете нагуглить себе необходимую информацию в любое время, а возможно я как-нибудь напишу отдельное руководство для этих действий... Просто не забывайте, что патчить, если возникла необходимость, надо именно на этом шаге. А пока пропустим его. | В ряде случаев, если вы используете какое-то специфическое оборудование или хотите добавить поддержку какой-то недокументированной функции в ядро, вам необходимо наложить **патч** для корректной работы этих устройств... Это отдельная тема, так как существует несколько способов патчинга для различных целей, поэтому не будем заострять на этом внимания, чтобы не вывихнуть себе моск окончательно :-D. К тому же, если у вас до этого все устройства функционировали нормально, то патчинг определенно не нужен. В любом случае, вы сможете нагуглить себе необходимую информацию в любое время, а возможно я как-нибудь напишу отдельное руководство для этих действий... Просто не забывайте, что патчить, если возникла необходимость, надо именно на этом шаге. А пока пропустим его. |
| |
| Теперь вам осталось лишь скомпилировать и собрать ваше кастомное ядро в пакеты, чтобы была возможность удалить их в случае неудачной/косячной сборки или избавления от старых версий при установке нового ядра, пользуясь пакетными менеджерами системы. | Теперь вам осталось лишь скомпилировать и собрать ваше кастомное ядро в пакеты, чтобы была возможность удалить их в случае неудачной/косячной сборки или избавления от старых версий при установке нового ядра, пользуясь пакетными менеджерами системы. |
| Выполняем команду: | Выполняем команду: |
| <code>make-kpkg -j 16 --initrd --revision=6.16.6-01 kernel_image kernel_headers modules_image</code> | <code>make-kpkg -j 16 --initrd --revision=6.18.1-01 kernel_image kernel_headers modules_image</code> |
| **-j 16** означает использование при компиляции шестнадцати ядер или потоков процессора (это в моем случае, естественно пишем соответственно своему железу), в revision пишем что угодно - 386, 64 и так далее, например я пишу версию ядра - **6.6.6** и номер сборки - **01**. Ждём, возможно долго ждём, все зависит от количества модулей, которые вы решили впилить в свое ядро и от мощности вашего компьютера. | **-j 16** означает использование при компиляции шестнадцати ядер или потоков процессора (это в моем случае, естественно пишем соответственно своему железу), в revision пишем что угодно - 386, 64 и так далее, например я пишу версию ядра - **6.6.6** и номер сборки - **01**. Ждём, возможно долго ждём, все зависит от количества модулей, которые вы решили впилить в свое ядро и от мощности вашего компьютера. |
| |