- HOW-TO: Сборка ядра Linux
- Содержание
- Шаг 1. Получение исходного кода ядра
- Шаг 2. Получение необходимых для сборки пакетов
- Шаг 3. Применение патчей
- Шаг 4. Конфигурация будущей сборки ядра
- Шаг 5. Сборка ядра
- Шаг 6. Установка образов и заголовков ядра
- Шаг 7. Генерация начального RAM-диска
- Шаг 8. Обновление конфигурации загрузчика GRUB
- Шаг 9. Проверка ядра
- Ядро линукс для убунту
- Форки
- Установка
- Компиляция ядра
- Получение исходного кода
- Конфигурирование
- Сборка
- Обновление ядра на Ubuntu
- Как обновить ядро Ubuntu
- Как обновить ядро Ubuntu?
- Решение проблем
- Очистка системы
- Выводы
HOW-TO: Сборка ядра Linux
Содержание
В данном пошаговом руководстве вы узнаете, как правильно собрать и установить ядро ветвей >2.6 в семействе ОС Ubuntu.
Шаг 1. Получение исходного кода ядра
Исходники ядра Ubuntu можно получить двумя способами:
150 Мб в текущую папку. Чтобы получить исходники ядра, версия которого установлена на компьютере выполните команду:
Или вместо `uname -r` можно указать конкретную версию из имеющихся в репозитории.
Не забудьте включить общий доступ к исходникам в репозитории ( Параметры системы → Программы и обновления → Программное обеспечение Ubuntu → Исходный код ). Из консоли это сделать можно раскомментировав строки начинающиеся с deb-src в файле /etc/apt/sources.list, а затем выполнить обновление командой: «sudo apt-get update».
Где — имя релиза, например:
Другие ядра
Также существуют ядра, работоспособность которых в Ubuntu не гарантируется. Например, известна проблема с рядом популярных системных приложений (в частности драйвера NVidia, VirtualBox), которые при своей установке компилируются под установленное ядро. Поэтому для их установки на ядро, нестандартное для данной версии Ubuntu (например, Ubuntu 16.04 идёт с ядром 4.4.0), может потребоваться их отдельная компиляция вручную или специальные патчи, а последние версии ядер с kernel.org приложение может вообще не поддерживать.
Распакуйте полученный архив, используя команды:
Или в случае с linux-source:
Шаг 2. Получение необходимых для сборки пакетов
Выполните следующие команды для установки основных пакетов:
Далее всё зависит от того, каким способом вы хотите произвести конфигурацию ядра. Это можно сделать несколькими способами.
В случае, если вы хотите использовать config, oldconfig, defconfig, localmodconfig или localyesconfig, вам больше не нужны никакие дополнительные пакеты. В случае же с оставшимися тремя вариантами необходимо установить также дополнительные пакеты.
Для установки пакетов, необходимых для использования menuconfig выполните следующую команду:
Для установки пакетов, необходимых для использования gconfig выполните следующую команду:
Для установки пакетов, необходимых для использования xconfig выполните следующую команду:
Шаг 3. Применение патчей
Официальные патчи уже наложены на исходники, если ядро получалось описанной выше командой:
Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду:
Эта команда установит программу patch, необходимую для, как можно догадаться, применения патчей. Теперь скачайте файл патча в папку, куда вы распаковали ядро. Это может быть либо архивный файл (напр. Bzip2 или Gzip), либо несжатый patch-файл.
На данный момент подразумевается, что вы уже сохранили файл в ту папку, куда ранее распаковали ядро, и установили программу patch.
Если скачанный вами файл был в формате Gzip (*.gz), тогда выполните следующую команду для распаковки содержимого архива:
Если скачанный вами файл был в формате Bzip2 (*.bz2), тогда выполните следующую команду для распаковки содержимого архива:
где 2.6.x.y — версия патча ядра. Соответствующие команды распакуют файл патча в папку с исходным кодом ядра. Прежде чем применить патч, необходимо удостовериться, что он заработает без ошибкок. Для этого выполните команду:
где 2.6.x.y — версия патча ядра. Эта команда сымитирует применение патча, не изменяя сами файлы.
Если при её выполнении не возникнет ошибок, то изменения можно смело внедрять в сами файлы. Для этого выполните команду:
где 2.6.x.y — версия патча ядра. Если не было никаких ошибок, значит к исходному коду был успешно применён патч.
где 2.6.x.y — версия патча и ваших исходников
Шаг 4. Конфигурация будущей сборки ядра
Перейдите в папку, куда вы распаковали ядро, выполнив команду
где 2.6.x.y — версия загруженного вами ядра.
На данный момент вы уже должны были определиться с методом конфигурации ядра (если нет, то ознакомьтесь с ними в разделе «Получение необходимых для сборки пакетов». В зависимости от этого, выполните следующую команду для запуска выбранного вами способа конфигурации:
После вызова соответствующая программа конфигурации будет запущена. Произведите необходимые настройки в соответствии с вашими потребностями, сохраните файл конфигурации и переходите к следующему шагу.
Шаг 5. Сборка ядра
Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду:
Шаг 6. Установка образов и заголовков ядра
Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды:
где 2.6.x.y — версия собранного ядра, arc — архитектура процессора (i386 — 32-бит, amd64 — 64-бит).
Если вы не знаете точного названия пакета, выведите список файлов в домашнем каталоге командой
и найдите эти самые два пакета.
Шаг 7. Генерация начального RAM-диска
Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду:
где 2.6.x.y — версия собранного ядра.
Шаг 8. Обновление конфигурации загрузчика GRUB
Для того, чтобы новая версия ядра была доступна для выбора при загрузке компьютера, выполните следующую команду:
Файл menu.lst (для GRUB версии 1) или grub.cfg (для GRUB версии 2) обновится в соответствии с наличием установленных операционных систем и образов ядер.
Шаг 9. Проверка ядра
Сборка и установка ядра успешно выполнены! Теперь перезагрузите компьютер и попробуйте загрузить систему с новым ядром. Чтобы удостовериться, что система запущена с новым ядром, выполните команду
Она выведет на экран используемую версию ядра.
Если всё сделано правильно, то вы можете удалить архивы с исходным кодом и весь каталог linux-2.6.x.y в вашей домашней папке. Это освободит около 5 ГБ на вашем жёстком диске (размер освобождаемого пространства зависит от параметров сборки).
На этом процесс сборки и установки завершён, поздравляю!
Источник
Ядро линукс для убунту
Ядро (англ. kernel) – то, вокруг чего строится всё остальное. Именно оно и называется Linux. Сейчас словом Linux в быту называют построенную на нём операционную систему, хотя по-хорошему она называется GNU/Linux (ядро Linux и ПО от проекта GNU, многие десятилетия находящейся в разработке).
В Ubuntu исппользуется ядро с большим количеством патчей, часть из которых добавляет нестабильные и экспериментальные возможности 1) .
Версия Ubuntu | Версия ядра |
---|---|
4.10 | 2.6.9 |
5.04 | 2.6.11 |
5.10 | 2.6.13 |
6.06 LTS | 2.6.15 |
6.10 | 2.6.18 |
7.04 | 2.6.19 |
7.10 | 2.6.20 |
8.04 LTS | 2.6.24 |
8.10 | 2.6.27 |
9.04 | 2.6.28 |
9.10 | 2.6.31 |
10.04 LTS | 2.6.32 |
10.10 | 2.6.35 |
11.04 | 2.6.38 |
11.10 | 3.0.4 |
12.04 LTS | 3.2 |
12.10 | 3.5 |
13.04 | 3.8 |
13.10 | 3.11 |
14.04 LTS | 3.13 |
14.10 | 3.16 |
15.04 | 3.19 |
Форки
Установка
Ядро является одним из жизненно важных компонентов каждого дистрибутива Linux. В Ubuntu ядро содержится в пакетах linux-image-версия_ядра-тип_ядра . Для простоты обновления так же имеется пакет linux-image-тип_ядра , в зависимостях которого указана последняя версия ядра имеющеяся в репозитории.
Нумерация версий ядра Ubuntu и на сайте kernel.org не совпадает, так как для обозначения добавленных патчей разработчики из Canonical добавляют микроверсию. Например, версия 3.2.0-23 будет означать, что ядро базируется на ветке 3.2, на которую было наложено 23 патча.
В репозитории Ubuntu поддерживаются следующие типы ядер:
64-битное ядро позволяет адресовать до 1ТБ памяти, потребляемой процессами.
Если требуется обновить ядро на более новую мажорную версию 4) (обычно это связано с тем, что в новых версиях добавляется поддержка нового оборудования, устраняются регрессии) можно воспользоватся официально поддерживаемым архивом http://kernel.ubuntu.com/
Компиляция ядра
Перед началом сборки ядра необходимо установить следующие пакеты:
Все дальнейшие действия необходимо выполнять от лица суперпользователя:
Получение исходного кода
Исходный код ядра, используемого в Ubuntu можно получить установив пакет linux-source :
После установки в директории /usr/src появится архив называющийся linux-source-верися_ядра.tar.bz2.
Так же можно скачать архив и с исходным кодом ядра с сайта kernel.org.
Конфигурирование
Распакуйте полученый архив 5) и, для удобства, создайте символическую ссылку на полученую в результате директорию:
Для упрощения процесса конфигурации ядра можно скопировать настройки текущего:
Если вы хотите узнать какие различия появились между новой и текущей версией ядер выполните:
Начиная с версии ядра 2.6.32 появилась возможность обновлять конфигурацию только тех модулей, которые используются в данной системе:
Существует три основных варианта конфигурирования ядра:
Способ для смелых и отважных. Конфигуратор задаст вам около четырехста вопросов на которые нужно будет дать ответ.
Предоставляет псевдографический конфигуратор, в котором все настройки разложены по пунктам.
Предоставляет графический конфигуратор.
Сборка
Сборка ядра производится командой
Вместо ваша_версия подставьте название для вашей версии ядра.
Процесс сборки может занять некоторое время. По его окончанию появятся пакеты содержащие скомпилированное ядро и заголовочные файлы. Их можно будет установить при помощи dpkg .
Источник
Обновление ядра на Ubuntu
Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как обновить ядро на Ubuntu.
Проверим текущую версию ядра. Открываем Terminal и выполняем команду:
Создадим новый каталог, который понадобится для пакетов обновления ядра Ubuntu, с помощью команды:
Переходим в новый каталог с помощью команды:
Теперь переходим по ссылке и выбираем нужную версию, до которой вы хотите выполнить обновление ядра.
В данном руководстве рассматривается обновление ядра до версии 5.2.10.
Далее нужно скачать пакеты “generic” или “low latency”.
- Пакеты “generic” предназначены для операционных систем, используемых для типовых задач.
- Пакеты “low latency” предназначены для операционных систем, используемых для работы с аудио и видео.
В данном руководстве рассматривается обновление ядра операционной системы, используемой для типовых задач.
Для операционной системы, используемой для типовых задач, понадобятся следующие пакеты:
- Пакет, который содержит в названии “linux-headers” и “all”, находящийся в разделе соответствующем архитектуре вашего процессора.
- Пакет, который содержит в названии “linux-headers” и “generic”, находящийся в разделе соответствующем архитектуре вашего процессора.
- Пакет, который содержит в названии “linux-image-unsigned” и “generic”, находящийся в разделе соответствующем архитектуре вашего процессора.
- Пакет, который содержит в названии “linux-modules” и “generic”, находящийся в разделе соответствующем архитектуре вашего процессора.
Загрузим пакет, который содержит в названии “linux-headers” и “all”, и находится в разделе соответствующем архитектуре вашего процессора, с помощью команды:
Загрузим пакет, который содержит в названии “linux-headers” и “generic”, и находится в разделе соответствующем архитектуре вашего процессора, с помощью команды:
Загрузим пакет, который содержит в названии “linux-image-unsigned” и “generic”, и находится в разделе соответствующем архитектуре вашего процессора, с помощью команды:
Загрузим пакет, который содержит в названии “linux-modules” и “generic”, и находится в разделе соответствующем архитектуре вашего процессора, с помощью команды:
Теперь необходимо установить все загруженные пакеты с помощью команды:
Указываем пароль от учетной записи и нажимаем “Enter”.
Перезагружаем операционную систему с помощью команды:
Источник
Как обновить ядро Ubuntu
Новые версии ядер содержат исправления, различные улучшения работы и производительности системы, а также различные нововведения, которые делают работу с Linux лучше. Поэтому было бы неплохо всегда иметь в своей системе самое новое ядро. Но большинство дистрибутивов, в том числе Ubuntu достаточно консервативны и содержат старые, проверенные версии ядер, а новые добавляются очень медленно.
Но эту проблему можно решить. Из этой статьи вы узнаете как обновить ядро ubuntu 16.04 или более поздних версий. Хотя новых версий ядра нет в репозитории, но есть программа, которая сделает всю работу за вас.
Как обновить ядро Ubuntu?
Ядро Linux делает очень много полезных вещей, кроме управления памятью, процессами и основными компонентами компьютера, все драйвера системных устройств тоже встроены в ядро, при появлении новых технологий драйвера должны обновляться, если у вашего компьютера есть какие-либо проблемы с поддержкой оборудования в Linux, то обновление ядра Ubuntu может улучшить ситуацию.
Я не буду расписывать тут все способы обновления ядра Linux, такие как загрузка и компиляция ядра, использование PPA репозиториев и так далее, все это мы уже рассматривали в статье обновление ядра Linux. Мы будем использовать утилиту UKUU или Ubuntu Kernel Update Utility. Она делает обновление ядра Ubuntu 16.04 намного проще. Утилита загружает нужные версии ядер из интернета и настраивает вашу систему, чтобы вы могли их использовать. Все что от вас требуется — это выбрать версию ядра.
Утилита не поставляется в официальных репозиториях, но вы можете установить ее из PPA:
sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt update
$ sudo apt install ukuu
Кроме того, вы можете установить утилиту через центр приложений Ubuntu. После установки вы можете запустить программу из главного меню:
После запуска утилита синхронизирует свое состояние с сетью чтобы определить какие новые версии ядра доступны:
В списке будут отображены ядра, которые вы можете установить. Красным отмечаются кандидаты в релизы, а желтым — стабильные релизы.
Для установки ядра просто выберите его и нажмите кнопку «Установить»:
Вам останется ввести пароль пользователя и дождаться завершения установки. Процесс установки будет показан в окне терминала:
После завершения обновления достаточно перезагрузить компьютер, чтобы использовать новую версию ядра.
Решение проблем
Новые ядра не всегда стабильные и вместе с улучшениями они могут принести проблемы. Например, перестанет работать какое-либо устройство или компьютер вообще не будет загружаться. Нужно знать что делать в таких случаях.
По умолчанию Ubuntu может не давать выбрать ядро, с которого нужно загрузиться. Поэтому сначала отредактировать /etc/default/grub. Закомментируйте эту строчку:
sudo vi /etc/default/grub
Теперь создайте новый конфигурационный файл grub с этими настройками:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Теперь, когда вы перезагрузитесь, а что-то работать не будет, то сможете очень просто загрузить старое ядро и удалить новое. Если уже поздно, вы ничего не настроили, а Linux не загружается, то здесь тоже есть решение, просто нажимайте очень быстро и много раз клавишу вниз в то время, когда должно появиться меню Grub.
Удалить нерабочее новое ядро можно тоже с помощью UKUU, здесь есть кнопка для этого — «Удалить»:
Очистка системы
Если все работает, старые ядра можно удалить. Да, одну две предыдущие версии ядра можно оставить, но не более того. Мы рассматривали как правильно удалить старые ядра в отдельной статье.
Выводы
Теперь вы знаете как обновить ядро Ubuntu и использовать самую последнюю версию в своей системе. Надеюсь, эта информация была полезной для вас, если у вас остались вопросы, спрашивайте в комментариях!
Источник