19 янв. 2011 г.

Собираем ядро под Linux

Сборка ядра под Linux
OS: Debian GNU\Linux
kernel: 2.6.37
Архитектура: i686
Процессор: pentium-m

Введение:
Собирать пакеты когда ты сидишь на тестинг/експериментал дистрибутиве дело не благодарное, больше производительности потерять можно на пересборке пакетов, а вот ядро новое стабильное выходит не так уж и часто. В интернете множество статей по сборке ядра. Эта одна из их числа.


Итак, запускаем aptitude и ставим:
linux-source-2.6.37
build-essential
kernel-package
libncurses-dev

Переходим в папку с исходником:
cd /usr/src
tar xjf linux-source-2.6.37.tar.bz2

Перед сборкой ядра следует его как следует сконфигурировать под свою систему. На самом деле параметров достаточно много и впервые их увидев теряешься в догадках для чего нужна часть из них. Один раз в чем-то важном промахнувшись после установки и перезагрузки в новое ядро понимаешь что потраченное время уже не вернуть, а потратить придется еще столько же. Ну да ладно, на ошибках учатся(к слову о встроенных/загружаемых дровах на жесткий диск и файловые системы). Я уже несколько раз учился ))

cd /usr/src/linux-source-2.6.37/
make oldconfig

make oldconfig создает файл .config, который нам и нужно изменить. Можно на все запрашиваемые вопросы от конфигуратора нажимать Enter для выбора дефолтного значения. Все эти параметры можно будет более детально рассматривать при конфигурировании.

На всякий случай делаем бекап для .config

Для конфигурирования непосредственно:
make menuconfig

Альтернатива:
make xconfig

Еще одна альтернатива:
make gconfig

На любой вкус и цвет.

Выбираем архитектуру процессора в Procсessor type and features.
Time frequency — чем больше — выше отзывчивость(для десктопов), чем ниже — быстрее скорость обработки прерываний для многопроцессорных систем(для серверов). На сколько я понял.

На вкладке Filesystems вашу файловую систему лучше отметить как встроенную дабы не возникло проблем.
На вкладке Device драйвер вашего жесткого диска тоже нужно сделать вшитым в ядро.

Enable the block layer есть IO Sheduler(планировщик ввода/вывода ядра), в котором мы можем выбрать Default I\O Sheduler. Мой выбор CFQ. Перед выбором планировщика почитайте внимательнее про каждый из них. В связи с вашим выбором будет связанна отзывчивость системы.

Выкидываем все что нам ненужно и ставим то что считаем нужным встроенным, остальное выбираем как подгружаемое.

После настройки системы.
Для очистки системы от муссора:
make-kpkg clean

make-kpkg - -initrd - -append-to-version=createdbyme kernel_image kernel_headers

append-to-version создает приписку к ядру, которую можно использовать для идентификации собственноручно собранных ядер.
Отдыхаем или занимаемся чем-то другим, ибо сборка займет много времени.
После проделанной процедуры мы получим deb пакеты, которые и устанавливаем.
dpkg -i linux-image....
dpkg -i linux-headers...
Все остальное за нас уже сделает установщик. Если все правильно сделано, после перезагрузки в новое ядро все должно работать быстрее =)

Комментариев нет:

Отправить комментарий