Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:сборка_ядра [2017/05/12 17:33] [Шаг 1. Получение исходного кода ядра] |
wiki:сборка_ядра [2018/12/18 21:10] (текущий) [Шаг 1. Получение исходного кода ядра] |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
===== Шаг 1. Получение исходного кода ядра ===== | ===== Шаг 1. Получение исходного кода ядра ===== | ||
Исходники ядра Ubuntu можно получить [[https://help.ubuntu.com/community/Kernel/Compile|двумя способами]]: | Исходники ядра Ubuntu можно получить [[https://help.ubuntu.com/community/Kernel/Compile|двумя способами]]: | ||
- | * Установив архив из репозитория, с автоматическим наложением последних официальных патчей. При этом скачается пакет размером ~150 Мб в "домашнюю папку" ~/. Чтобы получить исходники ядра, версия которого установлена на компьютере выполните команду: <code>sudo apt-get source linux-image-`uname -r`</code> Или вместо ''`uname -r`'' можно указать конкретную версию из имеющихся в репозитории. | + | * Установив архив из репозитория, с автоматическим наложением последних официальных патчей. При этом скачается пакет размером ~150 Мб в текущую папку. Чтобы получить исходники ядра, версия которого установлена на компьютере выполните команду: <code>apt-get source linux-image-`uname -r`</code> Или вместо ''`uname -r`'' можно указать конкретную версию из имеющихся в репозитории. |
- | <note>Список имеющихся в репозитории версий можно увидеть набрав команду: ''"sudo apt-get source linux-image-"'' и, не нажимая ''Enter'', нажать два раза клавишу ''Tab''. | + | <note>Список имеющихся в репозитории версий можно увидеть набрав команду: ''"apt-get source linux-image-"'' и, не нажимая ''Enter'', нажать два раза клавишу ''Tab''. |
- | Не забудьте включить общий доступ к исходникам в репозитории (''Параметры системы → Программы и обновления → Программное обеспечение Ubuntu → Исходный код'').</note> | + | Не забудьте включить общий доступ к исходникам в репозитории (''Параметры системы → Программы и обновления → Программное обеспечение Ubuntu → Исходный код''). Из консоли это сделать можно раскомментировав строки начинающиеся с deb-src в файле /etc/apt/sources.list, а затем выполнить обновление командой: "sudo apt-get update". |
+ | </note> | ||
* Самая свежая версия ядра доступна по [[https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide|git]]. Размер скачиваемого пакета ~500—800 Мб. <code>git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<release codename>.git</code> Где <release codename> - имя релиза, например: <code>git clone git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git</code> | * Самая свежая версия ядра доступна по [[https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide|git]]. Размер скачиваемого пакета ~500—800 Мб. <code>git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<release codename>.git</code> Где <release codename> - имя релиза, например: <code>git clone git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git</code> | ||
Строка 57: | Строка 58: | ||
<note>Данный шаг не является обязательным. | <note>Данный шаг не является обязательным. | ||
- | Официальные патчи уже наложены на исходники, если ядро получалось описанной выше командой: <code>sudo apt-get source linux-image-`uname -r`</code></note> | + | Официальные патчи уже наложены на исходники, если ядро получалось описанной выше командой: <code>apt-get source linux-image-`uname -r`</code></note> |
Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду: | Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду: | ||
Строка 82: | Строка 83: | ||
<code>patch -p1 -R <patch-2.6.x.y</code> | <code>patch -p1 -R <patch-2.6.x.y</code> | ||
где 2.6.x.y - версия патча и ваших исходников</note> | где 2.6.x.y - версия патча и ваших исходников</note> | ||
+ | |||
===== Шаг 4. Конфигурация будущей сборки ядра ===== | ===== Шаг 4. Конфигурация будущей сборки ядра ===== | ||
Перейдите в папку, куда вы распаковали ядро, выполнив команду | Перейдите в папку, куда вы распаковали ядро, выполнив команду | ||
Строка 97: | Строка 99: | ||
===== Шаг 5. Сборка ядра ===== | ===== Шаг 5. Сборка ядра ===== | ||
Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду: | Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду: | ||
- | <code>fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j <количество ядер>+1</code> | + | <code>fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j <количество ядер процессора>+1</code> |
- | <note important>Сборка ядра может занимать от 20 минут до нескольких часов в зависимости от конфигурации ядра и технических параметров компьютера.</note> | + | <note important>Сборка ядра может занимать от 20 минут до нескольких часов в зависимости от конфигурации ядра и технических параметров компьютера. Сборка при многодерном процессоре может быть в несколько раз быстрее</note> |
===== Шаг 6. Установка образов и заголовков ядра ===== | ===== Шаг 6. Установка образов и заголовков ядра ===== | ||
Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды: | Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды: | ||
Строка 111: | Строка 112: | ||
===== Шаг 7. Генерация начального RAM-диска ===== | ===== Шаг 7. Генерация начального RAM-диска ===== | ||
+ | <note>Внимание! Если вы во время сборки ядра добавили ключ --initrd, этот шаг можно пропустить.</note> | ||
Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду: | Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду: | ||
<code>sudo update-initramfs -c -k 2.6.x.y-custom</code> | <code>sudo update-initramfs -c -k 2.6.x.y-custom</code> | ||
где 2.6.x.y - версия собранного ядра. | где 2.6.x.y - версия собранного ядра. | ||
- | <note>Внимание! Если вы во время сборки ядра добавили ключ --initrd, этот шаг можно пропустить.</note> | + | |
===== Шаг 8. Обновление конфигурации загрузчика GRUB ===== | ===== Шаг 8. Обновление конфигурации загрузчика GRUB ===== | ||
Для того, чтобы новая версия ядра была доступна для выбора при загрузке компьютера, выполните следующую команду: | Для того, чтобы новая версия ядра была доступна для выбора при загрузке компьютера, выполните следующую команду: | ||
Строка 138: | Строка 140: | ||
===== ToDo ===== | ===== ToDo ===== | ||
- | * Исправить дублирование списка команд ''make'' в двух разделах этой справки | + | * Исправить дублирование списка команд ''make config'' в двух разделах этой справки (перенести из "Шаг 2: пакеты для компиляции" в "Шаг 4: конфигурация") |
* Написать инструкцию по использованию каждого из интерфейсов конфигурирования (со скриншотами) | * Написать инструкцию по использованию каждого из интерфейсов конфигурирования (со скриншотами) | ||
* Заснять скринкаст по теме (в рамках проекта [[http://team.ubuntu.ru/projects/videoguide|"Видеокурс Ubuntu"]]) | * Заснять скринкаст по теме (в рамках проекта [[http://team.ubuntu.ru/projects/videoguide|"Видеокурс Ubuntu"]]) |