Get Adobe Flash player

postheadericon Сборка ядра Linux

Необходимо собирать ядро Linux в следующих случаях:

  • чтобы задействовать свойства, которых нет в поставляемых сборках ядра;
  • для установки обновлённого ядра, в котором есть необходимые свойства или поддержка вашего оборудования;
  • для создания монолитного ядра, без модулей.

Кроме того, в ядро PCLinuxOS, установленное по умолчанию, включено максимально возможное количество модулей, чтобы охватить как можно больше разнообразного оборудования. Но ядро - это единственная часть системы, которая полностью загружается в оперативную память и никогда не переносится в swap. Конечно, модульность ядра несколько спасает ситуацию: не загружаются модули оборудования, которое отсутствует в системе. Но многие модули включены в ядро по умолчанию. Все это приводит к тому, что ядро получается сильно "раздутым". Это не принципиально, если у вас мощный современный компьютер, но и его можно заставить работать быстрее и лучше.

Для оптимизации ядра его пересобирают, оставив в ядре лишь то оборудование, которое реально установлено на компьютере, и модули того, что бывает используется или потенциально может использоваться.

 

Для того, чтобы собрать/пересобрать ядро Linux, нужно:

1. Узнать версию своего ядра командой:

uname -a

2. Скачать последнюю стабильную версию ядра с сайта http://www.kernel.org/.

3. Разархивировать скачанный файл в любую папку. Многие рекомендуют использовать /usr/src/, создавать ссылку linux на распакованную папку:

cd /usr/src tar xjf linux-3.0.4.tar.bz2

rm linux

ln -s linux-3.0.4 linux

cd /usr/src/linux

Но на самом деле это не играет какой-то значимой роли. Можно собирать ядро и в домашней папке home/user/temp.

4. Дать ядру имя. Для этого зайти в папку с ядром и в файле Makefile прописать значение строки EXTRAVERSION, например:

EXTRAVERSION=-mykernel.ver.1

Значение этого поля может быть любым. Его предназначение - помочь вам не запутаться в массе ядер, если вы будете перекомпилировать его несколько раз.

5. Для оптимизации ядра надо исключить из него все лишнее, а для этого надо точно знать, какие устройства используются в системе, и какие будут использоваться в будущем. То есть нужна информация об оборудовании: процессор(ах), оперативной памяти, чипсете материнской платы, видеокарте, сетевой карте(ах), звуковой карте, жестких дисках и CD/DVD приводах, устройствах ввода/вывода (клавиатура, мышь), файловой системе, параметрах сети (протоколы разных уровней), usb-устройствах и т. д.

Вообще, чем больше вы знаете о своем компьютере, тем эффективнее вы сможете собрать ядро. Можно рекомендовать постепенно накапливать информацию и пересобирать ядро в свете новых сведений, улучшая его день за днем.

В PCLinuxOS эту информацию можно получить в «PCLinuxOS Control Center» --> «Оборудование» --> «Поиск и настройка оборудования» или с помощью утилиты hardinfo (есть в репозитории). При конфигурировании ядра держите открытыми эти окна, постоянно сверяясь с содержащейся в них информацией.

6. Иногда требуются драйвера или средства, которые не поддерживаются в имеющемся ядре. В любом случае это исправляется наложением так называемых патчей (если таковые имеются). Но без необходимости не делайте этого!

Предположим, вы скачали необходимый патч (например, patch.bz2) в /usr/src. Применим скачанный патч на наши исходники (вы должны быть в каталоге /usr/src/linux):

bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run

bzip2 -dc /usr/src/patch.bz2 | patch -p1

Первая команда — только тест и никакие изменения не будут применены к исходникам. Если после первой команды не было выдано никаких ошибок, можно выполнить вторую команду для применения патча. Ни в коем случае не выполняйте вторую команду, если после первой были выданы ошибки!

7. Начиная конфигурирование опций ядра, логично будет взять конфиг работающего ядра PCLinuxOS, а не конфигурировать с нуля. Для этого в консоли нужно набрать:

make oldconfig

Здесь придется поотвечать на вопросы насчет новых возможностей, включенных в ядро 3.0.4. Читайте внимательно и выбирайте, как включить новую функцию (монолитно в ядро (y), модулем (m) или вообще не включать (n)). В конце все данные будут записаны в файл .config.

8. Теперь самый ответственный этап - конфигурирование ядра! Для этого в консоли пишем:

make menuconfig

Загрузится графическое меню конфигурации ядра. В меню пробелом нужно отключить ненужные опции ядра, постоянно нужные включить в ядро монолитно (*), возможно нужные - включить модулями (M), сохранить изменения. Главное - не отключить чего-нибудь важного, иначе система потом не загрузится с новым ядром, или будет работать некорректно.

Разобраться в функциях ядра и определиться, что вам нужно, что нет, можно, прочитав информацию здесь и здесь. Также не забывайте, что в menuconfig есть кнопка HELP с комментариями практически к каждой опции.

После того как ядро отконфигурировано, выберите «Exit» и выйдите из утилиты menuconfig. Перед выходом из утилиты выскочит сообщение с вопросом - сохранить проделанные изменения, выберите Yes.

9. Советы и подсказки по конфигурированию ядра:

  • Перед сборкой нового ядра убедитесь, что абсолютно все устройства вашей текущей конфигурации работаю нормально.
  • При первом запуске конфигуратор будет использовать файл настроек вашего текущего ядра (make oldconfig), т.к. обнаружит файла .config в папке с новым ядром. Поэтому, если все устройства в системе работают нормально, то не добавляйте никакие пакеты, т.к. они точно не будут использоваться в системе.
  • Не включайте в ядро и не делайте модулем никаких функций, рядом с которыми написано слово EXPERIMENTAL или DEPRECATED! Это может вывести систему из стабильного состояния и добавить вам совершенно ненужных проблем - включайте только в том случае, если это очень необходимо и вы знаете, что делаете.
  • Чтобы система после перезагрузке загрузилась с новым ядром, обязательно включите поддержку следующих опций монолитно: корневую файловую систему; файловые системы initramfs и cramfs в меню Device drivers --- Block devices; поддержку вашего дискового контроллера в Device drivers --- ATA/ATAPI/MFM/RLL support.
  • Если вы не уверены в необходимости того или иного модуля/драйвера, выбирайте "установить модулем". Тогда есть шанс, что он не будет мешать системе, даже если он не требуется.
  • Внимательно вчитывайтесь в описание модулей, если там есть рекомендации, то прислушайтесь к ним.
  • Удаляйте только то, что вы уверены вам не пригодится. Например, если у вас процессор от Intel, то все связанное с процессорами AMD можно удалять (и наоборот).
  • Используйте поиск (есть в графическом xconfig — make xconfig — для запуска которого вам нужно будет установить ряд требуемых пакетов через Synaptic). Сначала включите в меню Show all для отображения скрытых элементов (вложенные элементы, родитель которых не помечен для установки). Например, у вас ноутбук Asus, поэтому введите название марки в поиск и последовательно включите все, касающееся ноутбуков Asus. Аналогичным образом можно исключать модули, которые вам не нужны. Например, модули для ноутбуков Dell, Compaq, Toshiba и др.
  • Не поленитесь найти все модули, которые вы определили с помощью hardinfo и убедитесь, что они включены в ядро (полностью включены, а не как модули), это даст прирост в производительности компьютера.

10. Теперь необходимо собрать отконфигурированное ядро командой:

make bzImage

11. Затем собрать модули:

make modules

Процесс сборки длительный. Правда, все зависит от мощности компьютера.

12. Затем от пользователя root установить модули и само ядро:

make modules_install (установка модулей)

make install (установка ядра)

13. Ядро само создаст загрузочный образ initrd и пропишет ядро в загрузчик GRUB.

14. Останется только перезагрузиться, выбрать нужный пункт в загрузчике и загрузить систему с новым ядром.

15. Советы по работе с ядроv? Которое вы скомпилируете:

  • Не торопитесь сразу еще раз собирать ядро, урезав его еще сильнее. Поработайте активно 2-3 дня на компьютере, фиксируя все сбои и нестандартное/непривычное поведение системы. Когда же вы дойдете до следующего этапа сборки, то сохраняйте конфигурационный файл .config, чтобы всегда иметь возможность откатиться к рабочей версии.
  • Не стоит держать большое количество собранных ядер, поэтому не забывайте очищать систему от собранных и установленных ядер.
  • При выходе новой версии ядра, копируйте ему свой .config, тогда вам придется лишь внимательно просмотреть изменения в новом ядре и выбрать нужное модули.
  • Перед сборкой нового ядра сделайте бэкап файла .config. И выполните в папке с ядром команды
  • make clean
  • make mrproper
  • чтобы удалить все файлы, оставшиеся от предыдущей компиляции.
Скачать PCLinuxOS

Новости
Поиск
Язык сайта