Сборка ядра / make kernel — различия между версиями

Материал из OpenWiki
Перейти к: навигация, поиск
Строка 19: Строка 19:
 
(если не стоит gcc, то ставим стандартными средствами)
 
(если не стоит gcc, то ставим стандартными средствами)
  
6. сгенерируем файл .config:
+
6. нам нужен .config (обычно старый можно лежит по адресу /boot/config-<версия ядра>, но его надо будет адаптировать к новому ядру):
 
'''make oldconfig'''
 
'''make oldconfig'''
 
(он будет полностью соответствовать текущему ядру)
 
(он будет полностью соответствовать текущему ядру)

Версия 06:09, 2 сентября 2012

Хочу представить очень простой спосов установки ядра linux:

1. Первым делом возьмём исходники ядра (http://kernel.org),

дальшие действия выполняем из под root (sudo su - , или просто su -)

2. cd /usr/src (место преднозначенное для ядра /usr/src/linux)

3. tar -xf <файл с исходниками> (исли пакет назывался linux-3.5.3.tar.bz2, то появится linux-3.5.3)

4. ln -s linux-<версия ядра> linux (по стандарту ядро должно быть в /usr/src/linux)

5. cd linux (если не стоит gcc, то ставим стандартными средствами)

6. нам нужен .config (обычно старый можно лежит по адресу /boot/config-<версия ядра>, но его надо будет адаптировать к новому ядру): make oldconfig (он будет полностью соответствовать текущему ядру)

7. если есть желание что-то поменять, то надо выполнить make menuconfig (нужно доставить ncurses-devel), make xconfig или make gconfig (можно уточнить тип процессора или включить/выключить устройство).

8. если /boot/ монтируется отдельно, позаботимя и том чтобы /boot/ был примонтирован.

9. после выполнить:

1. make -jN, где N - кол-во потоков (можно поставить по кол-ву ядер),
2. make modules_install
3. make -jN install (make install очень долно выполняется).

10. на данный момент все нужные файлы в /boot/ и всё уже сделанно, открываем конфиг загрузчика и проверяем настройки (должна появится новая секция для нового ядра, но если нет то можно дописать её по анологии).

НО в если initrd не собран dracut, то у Вас получился очень большьой файл загрузчика (100-200 MB), и если это Вас не устраивает, то есть замечательная утилитка dracut, которой стоит собрать initrd.

11. ставим dracut и перезагружаемя (должно быть новое ядро).

12. проверяем версю ядра (uname -r) и, если всё в порядке, то запускаем dracut -H -f (будет созданно новый initrd, но только с тем что надо для загрузки).

13. меняем в загрузчике строчку c initrd, и перезагружеемя.

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

проверялось на ubuntu 12.04 и на CentOS 6.3 (на нем надо было сменить параметр default в загрузчике)

если к серверу доступ проблематичен, то читаем замечательную статью про настройку grub (правда статья для пользователей gentoo, но прицип понятен).