LinuxForum.Fans
Тема

Установка второго (нового) ядра

Автор: aldms 43 сообщений 14293 просмотров
#5448

Поставил Gentoo, первый раз :)
Ядро кофигурировал сам. Все работает, но все же хотелось бы кое-что подправить: кое-что отключить совсем; что-то перевести из ядра в модули...
Собственно, вопрос. Если я буду делать по хандбуку, как то:

text

cd /usr/src/linux
make clean
make menuconfig
make && make modules_install
cp arch/i386/boot/bzImage /boot

что я получу в итоге? Модули старого (первого ядра) заменятся новыми, или же в /lib/module будет создан новый каталог?
Экспериментировать в слепую не хочется :) Проконсультируйте плиз :)

#5453

Если версия ядра другая, то новые модули не заменят старые, а лягут в соседнем каталоге.
Если ядро то же самое, то заменятся.

#5504

Еще, если у вас ядро той же версии, но вы не хотите потерять
старые модули, можете присвоить ядру локальную версию
make menuconfig
General setup -> Local version - append to kernel release
Написать что-нибудь наподобие "my_kernel". И звездочку поставить в
General setup -> Automatically append version information to the version string
У вас будет ядро "как бы" другой версии, но в действительности той же самой.

#5512

make menuconfig

General setup -> Local version -> Automatically append version information to the version string
(тут могут быть неточности)
Тут вы можете дать новому ядру специальное название, которое позволит вам легко его идентифицировать, например "test1".
Далее все как обычно :-) Модули будут помещены в /lib/modules с указанием в суффиксе вашего идентификатора, т.е. test1. Рекомендую еще ядро ложить в другой каталог в имени которого присутствует идентификатор, это позволит вам не запутаться в версиях.
И еще, оставляйте хотя бы одно работоспособное ядро (и соответствующую запись в grub.conf) на случай если вы не сможете загрузится с вновь собранного ядра.

Удачи!

P.S. пока отвечал уже все разъяснили :-)

#58575

Что делать с новоиспеченным ядром?

Стабильная ветвь. Долгое время использовал ядро 2.6.32-gentoo-r*, но вот подошло новое, из новой ветки (если можно так выразиться) 2.6.34-gentoo-r*.
Возник вопрос, а что с ним делать; скопировать .config предыдущей ветки или же начинать настройку заново?

#58578
aldms написал:
Что делать с "новоиспеченным" ядром?

Стабильная ветвь. Долгое время использовал ядро 2.6.32-gentoo-r*, но вот подошло новое, из новой ветки (если можно так выразиться smile ) 2.6.34-gentoo-r* .
Возник вопрос, а что с ним делать; скопировать .config предыдущей ветки или же начинать настройку заново?

Вы можете использовать старый конф(скопировать). Но перед make menuconfig нада сделать make oldconfig( оно должно его иправить ):
1. cd /usr/src/linux
2. make mrproper
3. cp oldconfig ./.config
4. make oldconfig
5. make menuconfig
6. make
7. make modules_install
8. cp bzimage

#58587

Можно вместо cp bzImage /boot делать просто make install, новое ядро установится в /boot, старое переименуется, если оно было в vmlinuz.old и будет создан симлинк vmlinuz->vmlinuz-2.6.*
Только в Gentoo нужно не забывать примонтировать /boot, если он не монтируется в fstab при загрузке, как это рекомендуют в хэндбуке.

#58660
bobr написал:
Можно вместо cp bzImage /boot делать просто make install, новое ядро установится в /boot, старое переименуется, если оно было в vmlinuz.old и будет создан симлинк vmlinuz->vmlinuz-2.6.*
Только в Gentoo нужно не забывать примонтировать /boot, если он не монтируется в fstab при загрузке, как это рекомендуют в хэндбуке.

так даже лучше( может даже для новичков в зборке ядра, тк им это нада делать неоднократно )

#58709

При различных «экспериментах» с ядром, чтобы исключить перезапись установленных модулей, я немного изменяю значение переменной EXTRAVERSION в файле /usr/src/linux/Makefile, т. е.
было

text

grep '^EXTRAVERSION' Makefile
EXTRAVERSION = -zen1

делаю

text

grep '^EXTRAVERSION' Makefile
EXTRAVERSION = -zen1a

При копировании в /boot образа ядра и файла System.map добавляю тот же индекс.
В результате получаю:

text

ls -1 /boot | grep '2.6.34'
bzImage-2.6.34-zen1a
bzImage-2.6.34-zen1b
System.map-2.6.34-zen1a
System.map-2.6.34-zen1b
text

ls -1 /lib/modules
2.6.34-zen1a/
2.6.34-zen1b/
#78002

Здравствуйте всем.

Вопрос, нужен ли initrd? В Ubuntu при установке ядра нужно было копировать само ядро (bzImage), устанавливать модули, копировать System.map и создавать initrd (inital RAM disk) командой "mkinitramfs". При этом все работало.

В Gentoo же (по крайней мере по рекомендациям хендбука) мы устанавливаем модули и копируем ядро в /boot. Все. При пользовании genkernel автоматом создается этот самый initrd и все работает. При ручной настройке и установке - нет.

Решил, что дело именно в этом, потому что загрузка полностью останавливается на сообщениях о init. Сообщений этих довольно много и последние начинаются с "?".

Можно ли выключить эту опцию в ядре или все-таки использование initrd является необходимостью? Тогда как его создавать в Gentoo?

#78022

Виктор, initrd не является обязательным в большинстве случаев. Проверьте, чтобы поддержка драйверов вашего жёсткого диска и корневой файловой системы была включена в ядро НЕ модулем.
Возьмём, для примера, мой ноутбук:
Проверяем, что отвечает за поддержку жёсткого диска с SATA-интерфейсом, обращая внимание на строку «Kernel driver in use»:

text

# lspci -k | grep SATA -A 2
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
    Subsystem: Toshiba America Info Systems Device ff00
    Kernel driver in use: ata_piix

Теперь смотрим соответствующие опции ядра:

text

# zegrep ATA_PIIX /proc/config.gz | grep -v '^#'
CONFIG_ATA_PIIX=y

Смотрим, какая файловая система на корневом разделе:

text

 # grep sda5 /etc/fstab
/dev/sda5        /                reiserfs    noatime,nodiratime,notail        0 0

Смотрим поддержку Reiserfs в ядре:

text

 # zegrep -i reiserfs /proc/config.gz
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
#78025

Lupo Alberto, благодарю за развернутый ответ, какие файловые системы знаю, потому как сам вот только диск переразбивал, поддержку их в ядре включил. Драйвера на свои устройства вроде тоже включил в ядро. Все это не модулем.

У меня система только-только установлена, и это первое ядро, которое и не запускает систему. До этого ставил, используя genkernel, но он столько всякой всячины включил в ядро, что, намучавшись все это выпиливать, решил сделать свое (благо в ядре уже более-менее сносно ориентируюсь). Плюс не было поддержки сетевой карты. Т.к. при первой установке не все прошло гладко, решил переустановить всю систему, а не только одно ядро.

Теперь вопрос, могу ли я с LiveCD использовать "zegrep" и /proc/config.gz? Кстати, grep - это какая-то утилита или стандартная команда?

#78031
Виктор написал:
Теперь вопрос, могу ли я с LiveCD использовать "zegrep" и /proc/config.gz?

Да, можете.

Виктор написал:
grep - это какая-то утилита или стандартная команда?

Можно сказать, это стандартная утилита. Она есть во всех дистрибутивах в т.ч. и лив-СД

#78037

Виктор, я вообще, пока не собрал ядро, пользуюсь ядром с установочного диска. В качестве установочного рекомендую RescueCD. Помимо лучшей, на мой взгляд, поддержки «железа», чем в MinimalCD, он позволяет производить установку в графическом интерфейсе со всеми сопутствующими ему «плюшками».
Для ещё более полного изучения опций ядра, а, главное, для более тщательной подгонки его конфигурации под ваши нужды советую изучить ссылки:
http://62.3.120.141/~pappy/working.html
http://cateee.net/lkddb/
http://lxr.linux.no/+trees

#78039

Виктор, столкнувшись с проблемами, и не только при конфигурировании ядра, выкладывайте больше информации. Не «пересказывайте» wink логи и сообщения об ошибках, а дайте на них посмотреть smile
Ещё немного занудства: обновляя ядро, всегда оставляйте возможность «отката» на рабочую конфигурацию.

#78042
Lupo Alberto написал:
столкнувшись с проблемами, и не только при конфигурировании ядра, выкладывайте больше информации. Не пересказывайте логи и сообщения об ошибках, а дайте на них посмотреть

+1 Может эту фразу где-нить на видном месте написать. Очень уж часто приходиться говорить что-то подобное.

#78043

Виктор, кстати, загрузившись то ли с MinimalCD, то ли, как я советовал, с RescueCD, вы имеете возможность получить конфигурационный файл запущенного ядра:

text

zcat /proc/config.gz > /usr/src/linux/.config

а при большом желании и некотором везении и незапущенного — http://linuxforum.ru/viewtopic.php?pid=75231#p75231

#78047
Lupo Alberto написал:
Не «пересказывайте» логи и сообщения об ошибках, а дайте на них посмотреть

Я бы и рад, но копипастить тут никак, потому как в интернетах с настольника, а Генту мучаю на ноутбуке:) А набирать надо много

Lupo Alberto, за ссылки благодарю, поизучаю, только уже открытые вкладки не влазят в экран при разрешении 1680*1050:)

#78050
Виктор написал:

Я бы и рад, но копипастить тут никак, потому как в интернетах с настольника, а Генту мучаю на ноутбуке:) А набирать надо много

Не надо набирать: для этого существует утилита app-text/wgetpaste. Я её устанавливаю сразу же после app-misc/mc wink

#78058
Lupo Alberto написал:
для этого существует утилита app-text/wgetpaste

И ее можно использовать при недозагрузке системы? ;)

Lupo Alberto написал:
имеете возможность получить конфигурационный файл запущенного ядра

Так и сделал, надоело уже. Охота потрогать новую ОС, а я все на старте топчусь. Не пойму уже что не так. В качестве драйвера на жесткий диск выдал

[console]
SATA controller: ATI technologies Inc SB700/SB800 SATA Controller [AHCI mode]
Subsystem: Acer Incorporated [ALI] Device 0166
Kernel driver in use: ahci
[/console]

он у меня и был включен в ядре (AHCI driver support). Все необходимые файловые системы тоже.

Кстати, компилирование и установка модулей (make && make modules_install) на моем AMD TurionX2 64 с 2Гц на ядро длится около 10 минут. В Ubuntu это все длилось часа 1.5-2...

Войдите или зарегистрируйтесь, чтобы ответить.