Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

пересборка ядра (мой опыт)

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> OpenSUSE
 
Автор Сообщение
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Вс Авг 01, 2010 4:33 pm    Заголовок сообщения: пересборка ядра (мой опыт)
Ответить с цитатой

цель: перекомпилировать ядро под конкретный процессор (для меня Athlon64) на семействе дистрибутивов OpenSUSE (у меня сусе 11.2 - 2.6.31.12). семейство процессоров может быть следующим:
-386
-486
-586/K5
-pentium_classic (по умолчанию для 32-битных систем)
-pentium_mmx
-pentium_pro
-pentium_II
-pentium_III
-pentium_M
-pentium_4/celeron(P4-based)
-K6
-Athlon/Duron/K7
-optero/athlon64/hammer/K8
-crusoe
-Efficeon
...
-VIA_C7
-core_2/newer_Xeon

подготовка:
1) устанавливаем необходимое ПО для перекомпиляции:
-исходники ядра. только с оффициального сайта сусе, т.к. в сусе используется сильно-патченные ядра (вчастности они пропатчены для apparmor, который собираются ввести в
основную ветку ядра только с 2.6.36 http://www.opennet.ru/opennews/art.shtml?num=27488). лучше зайти в Yast и установить "пакеты для разработки ядра линукс".
2) для тех кто использует видеокарты nvidia с проприетырными драйверами, советую сразу слить с офф. сайта http://www.nvidia.com драйвера (run-файлик).
3) !!!если вы ставили проприетарные дрова nvidia с репозитория сусе, то удалите их!!!
4) !!!если вы ставили virtualbox, то удалите его!!! и слейте rpm-пакет с офф. сайта http://www.virtualbox.org/wiki/Downloads.

приступаем:
1) для нового ядра желательно скопировать конфигурацию с уже работающего. для этого переходим в каталог, где у нас находяться исходники ядра "cd /usr/src/linux"
и "sudo cp /boot/config-`uname -r` ./.config" - непосредственно для копирования конфига.
2) выполняем конфигурирование будущего ядра "sudo make menuconfig" тут появиться уйма найстроек, понятных и не очень! читаем http://wiki.linuxformat.ru/index.php/LXF78:Конфигурация_ядра:_готовые_рецепты (раздел "оптимизация") - для поверхностного ознакомления.
//изменения, которые внёс я:
-изменил архитектуру процессора;
-вынес из ядра поддержку неиспользуемых ФС, оставил в ядре только extFS4.
-исменил "ориентацию" ядра с No Forced Preemption на Preemptible Kernel (тем самым заметно повысил отзывчивость системы, но для серверов этот вариант не годиться).
-отключил поддержку не x86 архитектуры, ну и по мелочи... Smile
3) правим make-файл "sudo mcedit ./Makefile". и меняем:

"
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 31
EXTRAVERSION = .12
"
на

"
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 31
EXTRAVERSION = .13-athlon
"
//эт только пример, но у себя я сделал именно так Smile

4) создаём rpm-какет ядра "sudo make rpm". и можно пойти попить чай, как говорят в таких ситуациях. (на моём Athlon_II_X2_240 это примерно 40 минут).
5) полученное ядро должно находиться в "/usr/src/packagers/RPMS/...". переходим в эту папку и устанавливаем его "sudo rpm -Uvh ./2.6...."
5.1) !!!с исходниками ничего не делаем!!!
6) создаём рамдиск "sudo /sbin/mkinitrd".
7) правим конфиг grub'а "sudo mcedit /boot/grub/menu.lst". как? - тема отдельной статьи!
8 ) если нужны проприетарные дрова на nvidia:
-перезагружаемся и ставим дрова на nvidia "sudo sh ./NV....run -q"
-!!!в случае обновления ядра (ну захотел я пересобрать ядро ещё раз)!!! необходимо выполнить "sudo sh ./NV....run -K"
9) если нужен virtualbox:
-ставим rpm'ку, скачанную с офф. сайта !!!ставим в консоли!!!
-вам будет предложено выполнить "sudo /etc/init.d/vboxdrv setup", выполняем и ждём пока скоплилиться модуль для virtualbox.
-делаем "sudo /etc/init.d/vboxdrv restart"


//!!!ещё!!!! во время конфигурирования ядра необходимо отключить введение отладочной информации!
[ ]Kernel_hacking->Kernel_debugging //убираем галочку
это позволяет сократить:
-размер РПМ-паке раз в 5-6;
-время компиляции ядра раза в полтора-два!


//после компиляции директории "/usr/src/packagers/BUILD" "/usr/src/packagers/BUILDROOT" будут содержать мусор гига на 2 - чистить, можно удалить папки целиком.


//для пересборки ядра может потребоваться приличное дисковое пространство (у меня ушло под это дело около 4 гигов).


Последний раз редактировалось: ruslan89 (Вт Авг 03, 2010 11:04 am), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Вс Авг 01, 2010 4:35 pm    Заголовок сообщения:
Ответить с цитатой

добалю: после данных манипуляций отзывчивость системы заметно возрасла! Neutral
Ден Наколаевич, а что с сыллками? как правильно пользоваться "тэгами" движка форума?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Konstantin

Завсегдатай


Зарегистрирован: 01.05.2006
Сообщения: 615

СообщениеДобавлено: Вс Авг 01, 2010 7:24 pm    Заголовок сообщения:
Ответить с цитатой

То, что отзывчивость возрастет, наш уважаемый Дэн написал еще в первой книжке как пруфлинк!!!!!
Эх, были времена Smile лет 7-8 назад: постоянно рвущийся диалап, качающий ванильные исходники, зачитанная до дыр книжка Дэна на столе, ночное красноглазие!!!!
Руслан, а теперь попробуй ядро собрать из-под нового ядра - опять 40 мин или меньше?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Пн Авг 02, 2010 4:45 am    Заголовок сообщения:
Ответить с цитатой

есть 2 непонятного момента:
1) ...preloadtrace.ko": No such fileor directory... во время загрузки. на "родном" ядре этого нет.
2)
Код:

ruslan@ruslan-linux:~> ls -lh /boot/
итого 73M
-rw------- 1 root root  512 Дек 21  2009 backup_mbr
lrwxrwxrwx 1 root root    1 Дек 21  2009 boot -> .
-rw-r--r-- 1 root root 1,3K Дек  3  2009 boot.readme
-rw-r--r-- 1 root root 107K Мар 17 23:19 config-2.6.31.12-0.2-default
-rw-r--r-- 1 root root 103K Авг  1 17:33 config-2.6.31.13-athlon-0.2-default
drwxr-xr-x 2 root root 4,0K Авг  1 23:43 grub
lrwxrwxrwx 1 root root   41 Авг  2 11:07 initrd -> /boot/initrd-2.6.31.13-athlon-0.2-default
-rw-r--r-- 1 root root 4,9M Авг  2 09:28 initrd-2.6.31.12-0.2-default
-rw-r--r-- 1 root root  15M Авг  2 09:28 initrd-2.6.31.13-athlon-0.2-default
-rw-r--r-- 1 root root 161K Окт 20  2009 memtest.bin
-rw-r--r-- 1 root root 473K Янв 11  2010 message
-rw-r--r-- 1 root root 475K Мар 17 23:23 symtypes-2.6.31.12-0.2-default.gz
-rw-r--r-- 1 root root 169K Мар 17 23:20 symvers-2.6.31.12-0.2-default.gz
-rw-r--r-- 1 root root 1,4M Мар 17 23:03 System.map-2.6.31.12-0.2-default
-rw-r--r-- 1 root root 1,4M Авг  1 17:33 System.map-2.6.31.13-athlon-0.2-default
-rw-r--r-- 1 root root 4,5M Мар 17 23:19 vmlinux-2.6.31.12-0.2-default.gz
-rwxr-xr-x 1 root root  38M Авг  1 17:26 vmlinux-2.6.31.13-athlon-0.2-default.bz2
lrwxrwxrwx 1 root root   42 Авг  2 11:12 vmlinuz -> /boot/vmlinuz-2.6.31.13-athlon-0.2-default
-rw-r--r-- 1 root root 3,6M Мар 17 23:03 vmlinuz-2.6.31.12-0.2-default
-rw-r--r-- 1 root root 3,2M Авг  1 17:33 vmlinuz-2.6.31.13-athlon-0.2-default

полученное ядро больше "родного" в 3 раза и имеет другое "расширение" (очевидно использовался другой алгоритм сжатия). почиму?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Konstantin

Завсегдатай


Зарегистрирован: 01.05.2006
Сообщения: 615

СообщениеДобавлено: Пн Авг 02, 2010 6:32 am    Заголовок сообщения:
Ответить с цитатой

Собери ядро по существующей родной конфигурации и посмотри размер. Если после твоего сбора он тоже увеличился, то дело в классическом mkinitrd.
У тебя все модули въехали в ядро скорее всего.

я обычно делаю так
cd /usr/src/linux
make mrproper
make menuconfig ( или make oldconfig - старый или подправленный в редакторе конфиг)
make
sudo make modules_install (sudo checkinstall -R make modules_install)
sudo make install (sudo checkinstall -R make install)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Anton99

Neo


Зарегистрирован: 26.11.2006
Сообщения: 1676

СообщениеДобавлено: Пн Авг 02, 2010 12:32 pm    Заголовок сообщения:
Ответить с цитатой

"но для серверов этот вариант не годиться" - почему?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Авг 02, 2010 1:14 pm    Заголовок сообщения:
Ответить с цитатой

Цитата:

Ден Наколаевич, а что с сыллками? как правильно пользоваться "тэгами" движка форума?

Не нужны никакие теги - просто вставляй ссылки в текст
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Вт Авг 03, 2010 4:00 am    Заголовок сообщения:
Ответить с цитатой

Anton99 писал(а):
"но для серверов этот вариант не годиться" - почему?

так пишут.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Вт Авг 03, 2010 4:11 am    Заголовок сообщения:
Ответить с цитатой

Konstantin писал(а):
Собери ядро по существующей родной конфигурации и посмотри размер.

именно по родной и собирал.

рам-диски отличаются в размене в 3 раза.

vmlinuz (без расширения, извините за глупый вопрос: чем он отличается от тогоже образа ядра с расширением?) - почти одинаковы

vmlinuz с расширением - больше в 8 раз.

//возможно при компиляции была включена отладочная информация?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Вт Авг 03, 2010 4:14 am    Заголовок сообщения:
Ответить с цитатой

den, http://wiki.linuxformat.ru/index.php/LXF78:Конфигурация_ядра:_готовые_рецепты

//тогда кразкаябла получается. половина ссылки не отображается
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Авг 03, 2010 9:52 am    Заголовок сообщения:
Ответить с цитатой

А в этом плане понял. Это трабла phpbb2, некогда исправить
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
ruslan89

Завсегдатай


Зарегистрирован: 09.01.2010
Сообщения: 799

СообщениеДобавлено: Вт Авг 03, 2010 11:05 am    Заголовок сообщения:
Ответить с цитатой

!!!ещё!!!! во время конфигурирования ядра необходимо отключить введение отладочной информации!
[ ]Kernel_hacking->Kernel_debugging //убираем галочку
это позволяет сократить:
-размер РПМ-паке раз в 5-6;
-время компиляции ядра раза в полтора-два!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> OpenSUSE Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис