Сборка ядра / make kernel — различия между версиями
(→Хочу представить очень простой спосов установки ядра linux:) |
|||
Строка 50: | Строка 50: | ||
*проверялось на ubuntu 12.04 и на CentOS 6.3 (на нем надо было сменить параметр default в загрузчике) | *проверялось на ubuntu 12.04 и на CentOS 6.3 (на нем надо было сменить параметр default в загрузчике) | ||
− | *если смущает больщая папка /lib/modules/<версия ядра> , то можно пересобрать ядро с более точным выбором опций | + | *если смущает больщая папка /lib/modules/<версия ядра> , то можно пересобрать ядро с более точным выбором опций |
+ | cd /usr/src/linux | ||
+ | make menuconfig | ||
+ | make | ||
+ | make modules_install | ||
*если доступ к компьютеру затруднителен, то читаем замечательную статью про настройку grub. [[http://ru.gentoo-wiki.com/wiki/HOWTO_%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B4%D1%80%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5 grub: Установка нового ядра на удаленном сервере.]] | *если доступ к компьютеру затруднителен, то читаем замечательную статью про настройку grub. [[http://ru.gentoo-wiki.com/wiki/HOWTO_%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B4%D1%80%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5 grub: Установка нового ядра на удаленном сервере.]] |
Версия 05:42, 20 сентября 2012
Хочу представить очень простой спосов установки ядра linux:
ОТСТОРОЖНО:
если использовать стандартный конфиг (что и будет использоваться далее), то: /usr/src/linux - около 8 GB /lib/modules/<версия ядра> - около 2 GB
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 (можно сразу запустить make oldconfig, а можно взять старый кониг, лежащий по адресу /boot/config-<версия ядра>, и адаптировать к новому ядру, выполнив make oldconfig):
cp /boot/config-<версия ядра> /usr/src/linux/.config make oldconfig (если новые опции нужны по умолчанию, то надо написать: yes "" | 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 (долно выполняется). 4. make headers_install (опционально)
10. на данный момент все нужные файлы в /boot/ и всё уже сделанно, открываем конфиг загрузчика и проверяем настройки (должна появится новая секция для нового ядра, но если нет то можно дописать её по анологии).
НО в если initrd не собран dracut, то у Вас получился очень большьой файл загрузчика (100-200 MB), и если это Вас не устраивает, то стоит собрать всё с dracut.
11. ставим dracut и перезагружаемя (должно быть новое ядро).
12. проверяем версю ядра (uname -r) и, если всё в порядке, то запускаем dracut -H -f (будет созданно новый initrd, но только с тем что надо для загрузки).
13. меняем в загрузчике строчку c initrd, и перезагружеемя.
14. если всё в порядке, то лучше удалить старые ядра системой пакетов вашего дистрибутива.
- проверялось на ubuntu 12.04 и на CentOS 6.3 (на нем надо было сменить параметр default в загрузчике)
- если смущает больщая папка /lib/modules/<версия ядра> , то можно пересобрать ядро с более точным выбором опций
cd /usr/src/linux make menuconfig make make modules_install
- если доступ к компьютеру затруднителен, то читаем замечательную статью про настройку grub. [grub: Установка нового ядра на удаленном сервере.]