А
https://www.kernel.org/ на русском есть ?
собирать для сибя !
Это получица посматрите :Пошаговая инструкция по сборке ядра в Ubuntu.
Поиск и подготовка ядра
1. Для начала скачиваем последнюю стабильную версию ядра (примерно 60 МиБ). Я скачивал linux-2.6.32.6, но у вас может оказаться более свежая версия.
2. Скачанный файл надо разархивировать в произвольную папку (некоторые эксперты рекомендуют использовать /usr/src/, но на самом деле это не играет какой-то значимой роли). Я выбрал /home/user/temp, где после извлечения появилась папка linux-2.6.32.6.
Подготовка к сборке.
1. Необходимо установить через Synaptic следующие пакеты:
gcc
libc6-dev
kernel-package
libncurses5-dev
fakeroot
build-essential
которые потребуются при компиляции ядра. И пакеты (со всеми предложенными зависимостями):
qt3-dev-tools
libqt3-mt-dev
Эти пакеты необходимы для запуска GUI конфигуратора ядра xconfig.
2. Даем ядру имя. Заходим в папку с ядром (у меня это - /home/user/temp/linux-2.6.32.6) и в файле Makefile прописываем значение строки EXTRAVERSION, например:
EXTRAVERSION=-mynewkernel.ver.1
Значение этого поля можеты быть любым. Его предназначение - это помочь вам не запутаться в куче ядер, если вы будете перекомпилировать его несколько раз.
Теперь мы готовы к сборке. Осталось только выяснить, что же мы будем собирать. Как я говорил выше, для оптимизации ядра надо исключить из него все лишнее, а для этого надо точно знать, какие устройства используются в системе, и какие будут использоваться в будущем. Т.е. нам нужна информация об оборудовании.
Сбор сведений об устройствах в Linux
Теперь выясняем параметры следующего:
процессор(ы)
оперативная память
чипсет материнской платы
видеокарта
сетевая карта(ы)
звуковая карта и прочее мультимедийное оборудование
жесткие диски и CD/DVD приводы
устройства ввода/вывода (клавиатура, мышь, планшеты и т.д.)
файловые системы
параметры сети (протоколы разных уровней)
системы и алгоритмы шифрования
usb-устройства и т.д.
Этот список не полон. Если говорить коротко, то надо знать о системе ВСЕ!!! Вернее сказать - желательно. Чем больше вы знаете о своем компьютере, тем эффективнее вы сможете собрать ядро. Я бы рекомендовал постепенно накапливать информацию и пересобирать ядро в свете новых сведений, улучшая его день за днем.
Для получения сведений о подключенных устройствах можно использовать следующие команды
lspci
lsusb
lspci выводит список PCI устройств: чипсет, контроллеры видео, сетевые конроллеры и т.д.
Рекомендую использовать так:
lspci -v
Ключ -v означает verbose, т.е сильно подробно. Например, для сетевой карты я получил такой ответ:
04:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Subsystem: Device 1a3b:1089
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at febf0000 (64-bit, non-prefetchable) [size=64K]
Capabilities: <access denied>
Kernel driver in use: ath9k
Kernel modules: ath9k
В строке "Kernel driver in use" указан используемый драйвер ядра. Эта информация нам в дальнейшем очень пригодится.
lsusb - список USB устройств: клавиатуры, мышки, вэб-камеры и т.д.
Обе эти команды можно использовать с ключом -v для получения более подробной информации об устройствах.
Так же можно использовать команду dmesg для получения сведений об устройстве или группе устройств, например подробные сведения о процессоре можно получить так:
dmesg | grep CPU
Но я всегда отдаю предпочтение программам с GUI. Рекомендую использовать одну (или обе сразу) из приведенных ниже программ. Они есть в стандартном репозитории Ubuntu.
Sysinfo
Очень простой и понятный интерфейс. Если вы не никогда не собирали информацию о своей системе и не компилировали ядро, то эта программа для вас.
Здесь нам наиболее важен пункт Hardware (в левой колонке). Выбрать тип оборудования можно в выпадающем меню справа вверху.
System Profiler and Benchmark
Вот эту программу я рекомендую для сбора информации о своем компьютере.
В отличии от sysinfo информация об устройствах здесь несколько лучше структурирована и более полна: в описании устройства указано, какой модуль за него отвечает (на скриншоте видно, что драйвер Wi-Fi карты находится в модуле ath9). Но самое важно для нас находится в пункте Kernel Modules. Здесь перечислены все (почти) модули, загруженные ядром, т.е. мы можем быть уверены на 90%, что эти устройства есть в системе.
Конфигурирование ядра я рекомендую делать с открытым System Profiler and Benchmark, постоянно сверяясь с ним.
Конфигурирование и сборка ядра.
Теперь, когда все готово, можно приступать к созданию своей конфигурации.
Сначала находим в папке /boot файл с названием config-2.6.XX-XX-generic, копируем его в папку с ядром и переименовываем в .config.
Копируем в папку с ядром следующий скрипт build-kernel.sh:
#!/bin/sh
# Запускаем графическую утилиту конфигурирования ядра xconfig
# Можно заменить команду на gconfig (GTK версия)
# После внесения изменений сохранитесь и закройте конфигуратор
make xconfig
# Очищаем папку от мусора (если он есть)
sudo make-kpkg clean
# Собираем ядро в .deb пакеты
sudo make-kpkg --initrd kernel_image kernel_headers
# Очищаем папку с исходниками от "мусора". Будут удалены все скомпилированные компоненты и файл настроек .config
# Прежде чем ответить "Да" рекомендуется сохранить копию .config
read -p "Очистить от временных файлов включая .config? (эта операция необратима, рекомендуется сохранить копию .config. Если не уверены, ответьте НЕТ) [y/n]: " myyn
case "$myyn" in
[ДдYy] ) echo "Начало очистки папки ядра...";sudo make mrproper;;
[НнNn] ) echo "Пропускаем...";;
* ) echo "Пропускаем...";;
esac
# Выходим из режима суперпользователя
exit
и присваиваем ему соответствующие права:
chmod +x build-kernel.sh
Запускаем скрипт build-kernel.sh командой:
./build-kernel.sh
Если получите ошибку запуска xconfig/gconfig, то надо удовлетворить требуемые зависимости (опять лезем в Synaptic и выбираем указанные в ошибке пакеты). Если все условия выполнены, то первое, что мы увидим это окно графического конфигуратора:
Все параметры (за исключением лишь некоторых) имееют 3 возможных состояния: включить в ядро (галочка в чекбоксе), скомпилировать как модуль (точка в чекбоксе), не подключать никак (пустой чекбокс).
В gconfig состояние пакета отмечается галочкой в одном из 3х столбцов: N - не устанавливать, M - установить модулем, Y - установить в основное ядро.
Какую утилиты выбрать - это дело каждого, но я предпочитаю xconfig.
Отмечаем нужные нам параметры для установки.
Советы и подсказки по конфигурированию ядра.
Перед сборкой нового ядра убедитесь, что абсолютно все устройства вашей текущей конфигурации работаю нормально (это очень сильно облегчит вам жизнь).
При первом запуске конфигуратор будет использовать файл настроек вашего текущего ядра, т.к. обнаружит файла .config в папке с новым ядром. Поэтому, если все устройства в системе работают нормально, то НЕ ДОБАВЛЯЙТЕ ни какие пакеты, т.к. они ТОЧНО не будут использоваться в системе.
Если вы не уверены в необходимости того или иного модуля/драйвера, выбирайте "установить модулем". Тогда есть шанс, что он не будет мешать системе, даже если он не требуется.
Внимательно вчитывайтесь в описание модулей (и учите английский), если там есть рекомендации, то прислушайтесь к ним.
Удаляйте только то, что вы уверены вам не пригодится. Например, если у вас процессор от Intel, то все связанное с процессорами AMD можно удалять (и наоборот).
Используйте поиск. Сначала включите в меню Show all для отображения скрытых элементов (вложенные элементы, родитель которых не помечен для установки). Например, у меня ноутбук Asus, поэтому я ввел название марки в поиск и последовательно включил все, касающееся ноутбуков Asus. Аналогичным образом можно исключать модули, которые вам не нужны. Например, я нашел все модули для ноутбуков Dell, Compaq, Toshiba и др. и убрал их из конфигурации.
Не поленитесь прогнать поиском все модули, которые вы нашли с помощью System Profiler and Benchmark и убедитесь, что они включены в ядро (полностью включены, а не как модули), это даст прирост в производительности компьютера.
Я думаю, что для начала этого хватит. В идеале, конечно же, внимательно прочитать информацию о каждом модуле и определить для себя, нужен ли он. Но для этого нужно хорошее знание английского, глубокое понимание принципов работы компьютера, знание железа и не меньше суток свободного времени, чтобы все это прочитать и осознать. Я рекомендую начинать с реализации пп.1-7, и лишь потом (если все нормально) начинать эксперементировать с оставшимися модулями. Лично у меня ушел месяц на сборку ядра, которое мне нравится, но и в нем еще много лишнего (думаю, что еще полгода я буду его вычищать).
Теперь можно переходить к сборке ядра. Все, что для этого нужно - сохранить полученный конфигурационный файл .config и закрыть конфигуратор. Скрипт автоматически выполнит очистку системы и запустит процесс сборки ядра. Ядро с параметрами по умолчанию от Ubuntu у меня собирается за 1,5 часа, а оптимизированное под мои нужды - 30 мин.
В результате работы скрипта build-kernel.sh в папке, где лежит папка с ядром (у меня /home/user/temp/) должны появиться два файла:
linux-headers-2.6.32.6_бла-бла-бла.deb
linux-image-2.6.32.6_бла-бла-бла.deb
Это заголовки и образ ядра. Теперь устанавливаем эти .deb пакеты привычным способом (лучше сначала установите headers).
Теперь можно перезагружаться.В меню grub вы увидите свое ядро. Скорее всего оно не подцепит графику, поэтому драйверы видеокарты придется ставить заново (это если вы пользуетесь проприетарными драйверами). Вот теперь все. Поздравляю - вы собрали свое ядро с нуля!
Но не радуйтесь сильно, даже если все завелось с первой попытки (так тоже бывает - мне рассказывали).
Советы по работе с ядром
Не кидайтесь сразу еще раз собирать ядро, урезав его еще сильнее. Подождите 2-3 дня усиленной работы на компьютере, фиксируя все сбои и нестандартное/непривычное поведение системы. Когда же вы дозреете до следующего этапа сборки, то сохраняйте конфигурационный файл .config, чтобы всегда иметь возможность откатиться к рабочей версии.
Не стоит держать большое количество собранных ядер, поэтому не забывайте очищать систему от ядерного переизбытка.
При выходе новой версии ядра, смело кидайте ему свой .config, тогда вам придется лишь внимательно просмотреть изменения в новом ядре и выбрать нужное модули.
Перед сборкой нового ядра сделайте бэкап файла .config (он в папке с ядром). И выполните в папке с ядром команду sudo make mrproper, чтобы удалить все файлы, оставшиеся от предыдущей компиляции.
Вот так все просто!
как ?