Как правильно собрать ядро руками?
Доброго времени суток!
Из-за проблем с видео и странного поведения X. Решил пересобрать все и вся. Начал с ядра. Ранее собирал с помощью genkernel -all --menuconfig.
Теперь ручками попробовал: make menuconfig make && make modules_install
Собираю для x86_64.
Скопировал ядро получившееся из /usr/src/linux/arch/x86/boot/bzImage, т.к. в каталоге x86_64 все равно линк туда ведет.
В грубе прописал:
title Gentoo Linux (Kernel TEST!)
root (hd0,0)
kernel /boot/bzImage vga=0x318 root=/dev/sda3
В итоге выдает kernel panic:
VFS: Cannot open root device "sda3" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Привожу device.map для grub:
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
(hd3) /dev/sdd
(hd4) /dev/sde
(hd5) /dev/sdf
(hd6) /dev/sdg
(hd7) /dev/sdh
(hd8) /dev/sdi
Привожу /etc/fstab:
/dev/sda1 /boot ext2 noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / jfs noatime 0 1
/dev/sda5 /var jfs noatime 0 1
/dev/sda6 /tmp jfs noatime 0 1
/dev/sda7 /usr/portage reiserfs noatime,notail 0 1
/dev/sda8 /usr jfs noatime 0 1
/dev/sda9 /home jfs noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0
/dev/sdb1 /mnt/hdd/c ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
/dev/sde1 /mnt/hdd/d ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
/dev/sdf1 /mnt/hdd/e ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
/dev/sdh1 /mnt/hdd/f ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
Пробовал root=/dev/hda3 - тоже самое только со словом "hda3". Для ядра собранного genkernel rott=/dev/sda3 работает на ура.
В чем проблема может быть уважаемые?
- Для комментирования войдите или зарегистрируйтесь
Чаще всего подобные ошибки
Чаще всего подобные ошибки связаны с отсутствием либо включением в ядро модулями драйверов жёсткого диска и поддержки файловой системы, в данном случае ext2. (Ну и остальные используемые вами файловые системы проще сразу включить в ядро).
При начале загрузки Grub'а нажмите «c» и, перейдя в его командную строку, убедитесь, «видит» ли Grub ваше ядро.
Я ♥ Gentoo & Funtoo
Lupo Alberto написал(а): в
За монтирование рута отвечает строчка
/dev/sda3 / jfs noatime 0 1
Надо поддержку jfs в ядре включить.
.
.
Я ♥ Gentoo & Funtoo
не понял - это где?
не понял - это где?
Что где? Где включить
Что где? Где включить поддержку файловой системы в ядре?
та нет уже понял - там раньше
та нет уже понял - там раньше было сообщение по поводу где файл настроек лежит
.
точка и все - вот и непонял теперь понял.
гм. а как его запостить - он большой или что запостить из него?
Это я неудачный пост удалил
Это я неудачный пост удалил :)
А поддержка файловых систем включается здесь:
Я ♥ Gentoo & Funtoo
вот что у меня (честно говоря
вот что у меня (честно говоря не знал что это за команда zegrep - еще многому учиться надо):
zegrep _FS_ /proc/config.gz | grep -v '^#'
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_FS_POSIX_ACL=y
CONFIG_OCFS2_FS_O2CB=y
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
CONFIG_OCFS2_FS_STATS=y
Примерно там же включите и
Примерно там же включите и поддержку jfs.
Я ♥ Gentoo & Funtoo
вот что у меня
вот что у меня было:
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
что не так?
CONFIG_JFS_FS=m а
CONFIG_JFS_FS=m
а нужно
CONFIG_JFS_FS=y
Драйвер жёсткого диска включён?
Покажите
Я ♥ Gentoo & Funtoo
lspci -k | egrep -i
lspci -k | egrep -i ata
00:1f.2 RAID bus controller: Intel Corporation 82801 SATA RAID Controller
03:00.0 IDE interface: Marvell Technology Group Ltd. 88SE6121 SATA II Controller (rev b2)
Kernel driver in use: pata_marvell
Kernel modules: ahci, pata_acpi, pata_marvell
zegrep ATA /proc/config.gz | grep -v '^#'
CONFIG_RELOCATABLE=y
CONFIG_ATA_OVER_ETH=m
CONFIG_IDE_ATAPI=y
CONFIG_IDE_GD_ATA=y
CONFIG_SCSI_SAS_ATA=y
CONFIG_ATA=m
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=m
CONFIG_ATA_SFF=y
CONFIG_ATA_PIIX=m
CONFIG_SATA_MV=m
CONFIG_PATA_ACPI=m
CONFIG_PATA_MARVELL=m
CONFIG_PATA_MPIIX=m
CONFIG_PATA_PLATFORM=m
CONFIG_USB_STORAGE_DATAFAB=m
P.S. как выводить в форуме маленькими буквами на сером фоне - а то мои сообщения огромны?
IMHO, должно быть так: Если
IMHO, должно быть так:
P.S. http://www.gentoo.ru/filter/tips/1#filter-bbcode-0
P.S.S. Если есть возможность, загрузитесь с ядра, собранного genkernel'ом, и покажите вывод
Я ♥ Gentoo & Funtoo
Есть, конечно, ядро то не
Есть, конечно, ядро то не удалял - тем более и имя у него другое :)
Тогда ещё «до
Тогда ещё «до кучи»
Я ♥ Gentoo & Funtoo
sivsoft написал(а): P.S. как
http://www.gentoo.ru/filter/tips/1#filter-bbcode-0
Я ♥ Gentoo & Funtoo
В конфиге АТА все изменил. А
В конфиге АТА все изменил. А где можно более полно по конфигу почитать - опциям - а то не всегда понятно - даже с инфой, что имеется в виду, часто пишется типа:
CONFIG_PATA_MPIIX=m - поддержка PATA MPIIX.
В документации ядра,
В документации ядра, например.
Ну и в «интернетах», разумеется:
http://cateee.net/lkddb/
http://62.3.120.141/~pappy/working.html
http://lxr.linux.no/+trees
Данные ресурсы, (два первых особенно), позволяют достаточно подробно и осознанно настроить ядро.
Я ♥ Gentoo & Funtoo
sivsoft написал(а): вот что у
CONFIG_JFS_FS=y сделай так, либо надо грузится через initrd, чтоб модуль jfs (а он у тебя уже собран) подгрузился ядром...
/kernel
default 0 timeout 5 title=2.6.32-gentoo-r7 # название произвольное root (hd0,0) kernel /kernel-2.6.32-gentoo-r7 (здесь правильное имя собранного ядра) radeon.modeset=1 title=memtest86+ #memtest, если нужен root (hd0,0) kernel /memtest86plus/memtest.bin
буду честен, я не знаю, почему у меня все работает
не понял немного - это же имя
не понял немного - это же имя для genkernel ядра, которое он генерит или я не прав?
Да еще - я хочу привести
Да еще - я хочу привести листинг menuconfig - настроек ядра - где он лежит? :(
/usr/src/linux/.config Исполь
/usr/src/linux/.config
Используйте app-text/wgetpaste для размещения этого файла. Только зачем его весь постить?
Я ♥ Gentoo & Funtoo
Тип файловой системы
А корневая ФС точно jfs?
еще раз fstab: /dev/sda1
еще раз fstab:
/dev/sda1 /boot ext2 noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / jfs noatime 0 1
/dev/sda5 /var jfs noatime 0 1
/dev/sda6 /tmp jfs noatime 0 1
/dev/sda7 /usr/portage reiserfs noatime,notail 0 1
/dev/sda8 /usr jfs noatime 0 1
/dev/sda9 /home jfs noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0
/dev/sdb1 /mnt/hdd/c ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
/dev/sde1 /mnt/hdd/d ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
/dev/sdf1 /mnt/hdd/e ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
/dev/sdh1 /mnt/hdd/f ntfs-3g rw,umask=0,locale=ru_RU.UTF8 0 2
ТОЧНО!
У так а ты поменял
А ты поменял CONFIG_JFS_FS=y, так как shamaniac писал?
Ну тогда:
cd /usr/src/linux && make && make modules && make modules_install && make install
В конце выдаст как зовут твое ядро.
Можно еще по дате глянуть
ls -l /boot
Проверь его ли грузит Grub
cat /boot/grub/grub.conf
Ну и результат загрузки в студию.
поменял - сейчас компилить
поменял - сейчас компилить буду и дам рез-ты
sh
чего сие значит??
Примерно следующее
Скрипт я не смотрел, однако, в данном контексте могу предположить следующее:
То есть скопировать в /boot собранное ядро и файл System.map под соответствующими именами.
Я ♥ Gentoo & Funtoo
Время позднее — туго
Время позднее — туго соображаю :(
Мне не совсем понятно, как у вас могли отработать команды вида
Они показывают опции загруженного ядра.
Я ♥ Gentoo & Funtoo
не зря я за эту для меня
не зря я за эту для меня странную команду спросил :)
у меня загружено ядро genkernel - возможно конфиг один и тот же поэтому так. Так как я находил в .config - как раз не включенные опции.
Надеюсь, вы редактировали
Надеюсь, вы редактировали опции посредством
make menuconfig
, а не прямым редактированием файла /usr/src/linux/.config?Я ♥ Gentoo & Funtoo
не прямым редактировал
прямым редактировал способом - писал y . А чего не так?
З.Ы. Попробовал - тоже пишет + внизу еще строчка может не увидел тогда не знаю:
Pid: 1, comm: swapper Not tainted 2.6.32-gentoo-r7 #3
и далее Call trace
З.Ы.Ы. Он увидел после пересборки два винта тот на котором gentoo и один еще на марвеле терабайтник висит и все - может в этом и проблема теперь?
В ядре многие опции
В ядре многие опции взаимосвязаны, изменяя/удаляя/добавляя какую-либо из них, вы должны учитывать это влияние на другие опции ядра.
make menuconfig
это может, а вы?Ещё раз повторюсь, войдите в командную строку Grub'а и убедитесь, что он обнаруживает ваш диск и ядро на нём.
На форуме часто обсуждались вопросы подобные вашему, используйте поиск.
Как именно вы собирали ядро? Опишите последовательность ваших действий. Меняли ли вы опцию EXTRAVERSION в /usr/src/linux/Makefile? Иначе велика вероятность, что модули нового и старого ядра либо перемешались, либо не установились в нужное место.
Я, к примеру, при обновлении ядра использую такой алгоритм.
Я ♥ Gentoo & Funtoo
нет не менял - сейчас читаю
нет не менял - сейчас читаю алгоритм...
Там об этом я не писал. В
Там об этом я не писал.
В Makefile есть опция вида EXTRAVERSION = -zen3a, где я обычно меняю одну букву (в примере выделено красным), тогда все модули для ядра устанавливаются в индивидуальную папку. Ну и ядро и System.map я копирую в /boot с уникальным именем.
Я ♥ Gentoo & Funtoo
Ручки против автоматики
А может стоит собрат ядро полностью ручками без всяких там генкарнелей. Скачай ванильное ядро. И веселыми командами от рута
Ну в дополнение лезеш в /proc и там выпаливаешь чего надо.
И исходя из полученых данных настраиваешь ядро (make menuconfig) . Понятно что такий метод относительно долгий, но как по мне очень даже эффективный, и нереально развивающий:)
Так собрав раз ядро, будешь копировать .config в новые. Тоесть раз настрил и все последующие обновления ядра происходят нашару.
Чтобы решить этот проблем нужно не только собрать модули для файловых систем, а еще поколупатся в
Device Drivers -> ATA/ATAPI/MFM/RLL support ,
Device Drivers -> SCSI device support
Device Drivers -> Serial ATA... ну и ваще в Device Drivers внимательно посмотреть. Как уже говорилось в ядре опции взаимосвязаны.
Уже собрал и эту проблему
Уже собрал и эту проблему прошел - там другая ошибка появилась, но она понятна из-за того, что монтируются винты в начале по-другому, fstab надо переписать. Но я уже решил полностью пройти долгий процесс убирания всего и вся по документации о ядре и после этого только опять пересоберу.
З.Ы. Еще есть вопросы:
1. Что такое ванильное ядро? Гм... уже понял что не патченное генту-тим, но чем лучше так и не понял...
2. Чем zen-sources лучше gentoo-sources. Читал там патчи разные, типа поддержка reiserfs4, но она мне в принципе не нужна сейчас, а тестовое ядро с неизвестными еще багами... Я думаю там что-то еще есть из-за чего некоторые уважаемые люди в этом форуме на нем сидят. Хотелось бы понять что.
sys-kernel/zen-sources вроде
sys-kernel/zen-sources вроде бы специально «заточено» для Desktop-систем.
Я ♥ Gentoo & Funtoo
1. А в чем конкретно? Просто
1. А в чем конкретно? Просто вы сказали вроде - т.е. или не уверены или описка...
2. Начал разбирать autokernconf - сгенерил что-то не понятное - вроде есть то что нужно, но как им теперь пользоваться? Переписав просто вместо .config получил часть отключенных опций - нужных. Да и все ли он находит? Например, получил вместо Core2Duo невнятный Generic x86_64. Может из-за того что запускал его под ядром сформированным genkernel, а надо под LiveCD? Далее в нем самом config.auto обнаружил двойные строки типа:
В общем непонятки с ним.
3. Еще вопрос по второй статье там вроде все ручками, НО используется xconfig. Почитал, а его под qt4 нет и поэтому он не запустится. Есть ли ему замена или как быть?
1. Просто понятие
1. Просто понятие Desktop-система достаточно условное. Патчи, которые применяются к sys-kernel/zen-sources, я помню приблизительно, а в Google вы найдёте подробное описание, точно так же, как и я.
2. Вывод
autokernconf
я использовал для сравнения включённых в моём ядре опций и рекомендуемых. Часть оборудования он определить не может, часть информации получает из разных источников — отсюда неопределившиеся и дублированные параметры. Но для их анализа есть мозг :)3. Для поддержки
xconfig
в системе должен быть включен флаг qt3support.Однако судя по ChangeLog для sys-kernel/gentoo-sources в последних версиях ядра эта поддержка появилась и для qt4
*gentoo-sources-2.6.34-r1 (16 Jun 2010) 16 Jun 2010; Mike Pagano <mpagano@gentoo.org> +gentoo-sources-2.6.34-r1.ebuild: qt4 xconfig, fix for apci lid open error in nouveau driver and a fix for some errors issued by modpost in the vfb driver
Кроме
xconfig
есть ещё его gtk-аналогgconfig
, на мой взгляд, нестоль удобный.Однако, настоящие джедаи, стать одним из которых вы собираетесь, используют
make config
или, когда никто не видитmake menuconfig
:)Я ♥ Gentoo & Funtoo
gentoo-sources-2.6.34-r1 я
gentoo-sources-2.6.34-r1 я так понимаю - маскед, насколько их правильно ставить? - или настоящие джедаи всегда выступают в роли подопытных кроликов :)
З.Ы. настоящие джедаи - :)
З.Ы.Ы. У меня вообще по eix выдал максимум 2.6.34, а не 2.6.34-r1 - где вы их раздобыли? :)
Если и маскированные, то не
Если и маскированные, то не сильно — они просто в нестабильной ветке portage :)
Насколько оправданно использовать эти ядра, решать вам. Тем более переход на нестабильное ядро не означает, что следует удалять предыдущее, рабочее.
Взял там, где и все берут:
P.S. Если вы недавно синхронизировали дерево portage, а последних ядер не видите, откройте для себя
eix-update
или просто используйтеeix-sync
вместоemerge --sync
.Я ♥ Gentoo & Funtoo
.
Маска бывает не только по
keyword
.:wq
--
Live free or die
Anarchist написал(а): Lupo
Речь шла о конкретном пакете — gentoo-sources.
Я ♥ Gentoo & Funtoo
В общем ядро
В общем ядро переконфигурировал, грузится, определяет очень быстро оборудование (7 с чем-то сек).
1. Но после определения жестких дисков - ступор - не меньше минуты тупит и ничего не делает - мне показалось даже что минуты 2. Потом продолжает загрузку дальше. Очень сильно напрягает это ожидание... Последние сообщения гласят:
Асинков таких два или три цифры меняются - но эти сообщения всегда последние. Как убрать ступор?
2. Далее там не может обнаружить некоторые драйвера - но это ладно разберусь. Напрягает nvidia. Драйвер не нашел, ладно - попробовал переставить.
Он поставил поддержку acpi, пытался начать устанавливать nvidia и ошибки полезли. Примерно следующее - копи-паст сделать не могу, т.к. пишу вообще из винды и там я в консоли все делал xdm не запускается естественно.
и далее дописывает параметры строки и модули с ошибками. В чем дело может быть?
3. Так и не понял какая у меня сетевуха. Вроде на P5Q Pro стоит Attansic Atheros L1. Но она не заработала. В итоге проставил все Atheros'ы - заработала.
Как правильно определить что в ядре проставить?
1. Покажите после загрузки
1. Покажите после загрузки вывод команды
dmesg
и файл /var/log/messages.Какая у вас версия ядра?
2. Покажите
3. Проанализируйте вывод команды
при загрузке с новым ядром и ядром, собранным
genkernel
, уделяя особое внимание идентичности строк вида Kernel driver in use..., Kernel modules....Я ♥ Gentoo & Funtoo
1. Ядро - 2.6.34-r1 о горе
1. Ядро - 2.6.34-r1
о горе вывод dmesg огромен...
файла /var/log/messages просто не существует.
2. /proc/config.gz - тоже нет такого файла
Что включить в конфиге ядра, чтобы NVIDIA работала (GTX 260)? Обязательные опции...
3. благодаря этой команде увидел и без сравнений с genkernel - спасибо
Честно говоря хочется разбить
Честно говоря хочется разбить компьютер с генту вместе.
Не получается ни с НВИдия картой - не компилируются драйвера
Ни со звуком хотя опции выставил те что и были - не находит карту
Ни с этим стопором на 7 секунде.
Вот кусок того что пишет мне при установке nvidia-drivers:
Что ему не хватает. Уже все вроде повключал, что требовалось и agpgart в ядре включил - все бестолку. Что делать?
» Что ему не хватает. Уже все
» Что ему не хватает. Уже все вроде повключал, что требовалось и agpgart в ядре включил - все бестолку. Что делать?
разработчики nvidia-driver не успевают за новыми ядрами. возьмите ядро по старее
Честно говоря хочется разбить
Честно говоря хочется разбить компьютер с генту вместе.
Не получается ни с НВИдия картой - не компилируются драйвера
Ни со звуком хотя опции выставил те что и были - не находит карту
Ни с этим стопором на 7 секунде.
Вот кусок того что пишет мне при установке nvidia-drivers:
Что ему не хватает. Уже все вроде повключал, что требовалось и agpgart в ядре включил - все бестолку. Что делать?
Честно говоря хочется разбить
Честно говоря хочется разбить компьютер с генту вместе.
Не получается ни с НВИдия картой - не компилируются драйвера
Ни со звуком хотя опции выставил те что и были - не находит карту
Ни с этим стопором на 7 секунде.
Вот кусок того что пишет мне при установке nvidia-drivers:
Что ему не хватает. Уже все вроде повключал, что требовалось и agpgart в ядре включил - все бестолку. Что делать?
гм... извиняюсь - что-то
гм... извиняюсь - что-то сервер не работал послал несколько раз - а он не работать не работал, а обновил
Вы почему-то игнорируете мои
Вы почему-то игнорируете мои просьбы не выкладывать такие огромные «простыни» на форум.
Всё же покажите вывод
Проверьте на сайте NVidia, поддерживает ли версия драйверов, которые вы пытаетесь установить, ваши карту?
P.S. Не хватайтесь за все проблемы сразу.
Я ♥ Gentoo & Funtoo
та нет не игнорирую, если не
та нет не игнорирую, если не понял извините, просто вы написали чтобы я выложил результат dmesg, что я и сделал.
уже писал видно из-за этих простыней не увидели - нет такого файла!
далее...
даже смотреть не буду - потому что 100% поддерживает - на genkernel те же дрова отлично работают.
согласен
В этом моём сообщении →
В этом моём сообщении → http://www.gentoo.ru/content/kak-pravilno-sobrat-yadro-rukami#comment-144692
слово «Покажите» — гиперссылка, ведущая на страницу FAQ.
Как я уже писал, команда, подобная
zegrep 'AGP_NVIDIA' /proc/config.gz
, показывает опции загруженного ядра. Чтобы она работала, в ядре нужно включить опцииОднако, опции, с которыми собиралось ядро с некоторыми оговорками, можно посмотреть и так
P.S. Вы бы, может, новую тему открыли? Не стоит валить всё в одну кучу :) Трудно разобраться.
Я ♥ Gentoo & Funtoo
sivsoft написал(а): даже
Что мешает посмотреть разницу между вашим ядром и рабочим сделанным genkernel или просто юзать genkernel, т.к. объективных причин его не юзать нет.(за очень редким исключением)
разница между ядром собранным
разница между ядром собранным genkernel и вручную есть - тут даже и обсуждать нечего. Другой вопрос, что надо было взять ядро постарее - уже взял и все работает.
Разница есть, но лишь единицы
Разница есть, но лишь единицы способны объяснить(с точки зрения логики, а не банального желания) и почувствовать, что же они выигрывают не юзая genkernel.
большинство же считают так: genkernel - плохо, не gentoo way и т.д. ; "ручками" - хорошо, правильно. На самом же деле это деление в корне не правильно, ибо основная разница в том, берешь ли ты готовый конфиг или делаешь свой/исправляешь под себя имеющийся. А уж кто запускает make *, копирует ядро и правит конфиг загрузчика - не так важно. ИМХО
1. Что такое ванильное ядро?
Ванильное ядро - это читстое непропатченное, скаченое с www.kernel.org. Насчет того чем оно лутше, ничего сказать немогу, так как никогда не юзал "гентушные" ядра.
У вас жесткие диски и SATA и
У вас жесткие диски и SATA и IDE?
Справедливость восторжествует.
sivsoft написал(а): Ранее
А ман по генкернелу почитать была не судьба...
zcat /proc/config.gz > /usr/src/linux/.config && genkernel --all --oldconfig --menuconfig root=/dev/<чтотамутебя> --symlink --bootloader=grub
И дело в шляпе. И рабочее ядро, которое не осилил собрать правильно, и menuconfig, чтобы поправить нужные опции и за основу взят старый рабочий конфиг.
и что это даст? - уже и так
и что это даст? - уже и так есть ядро собранное genkernel, зачем их плодить?
короче открываю новую тему.
З.Ы. За большие сообщения извиняюсь буду пользоваться paste.org.ru