Проблемы с пересборкой ядра

Здравствуйте.
Прошу помощи, т.к. в генту новичок.
Решил обновить ядро, сидя на 2.6.36.3-calculate, делал так:

emerge -ev system
etc-update
USE=“symlink -doc” emerge sys-kernel/gentoo-sources
env-update
source /etc/profile
genkernel --menuconfig --bootloader=grub all

Вот кусок из GRUB:

title=Gentoo Linux (2.6.37-gentoo)
root (hd0,4)
kernel /boot/vmlinuz-3eb5d4ad root=UUID=3eb5d4ad-f58a-4863-bd9f-5a024960e549 vi$
initrd /boot/initrd-genkernel-x86-2.6.37-gentoo

title Calculate Linux Desktop i686 11.0 GNOME
root (hd0,4)
kernel /boot/vmlinuz-3eb5d4ad root=UUID=3eb5d4ad-f58a-4863-bd9f-5a024960e549 vi$
initrd /boot/initrd-3eb5d4ad

Вот ls /boot:

del-laptop del # ls /boot
boot initrd-3eb5d4ad-install.old
boot.jpg initrd-3eb5d4ad.old
config-2.6.36.2-i686-CLDG kernel-genkernel-x86-2.6.37-gentoo
config-2.6.36.3-calculate memtest86plus
config-2.6.36.3-i686-CLDG System.map-2.6.36.2-i686-CLDG
grub System.map-2.6.36.3-i686-CLDG
initramfs-2.6.36.2-i686-CLDG System.map-3eb5d4ad
initramfs-2.6.36.2-i686-CLDG-install System.map-3eb5d4ad.old
initramfs-2.6.36.3-i686-CLDG System.map-genkernel-x86-2.6.37-gentoo
initramfs-2.6.36.3-i686-CLDG-install vmlinuz-2.6.36.2-i686-CLDG
initramfs-genkernel-x86-2.6.37-gentoo vmlinuz-2.6.36.3-i686-CLDG
initrd-3eb5d4ad vmlinuz-3eb5d4ad
initrd-3eb5d4ad-install vmlinuz-3eb5d4ad.old

Initrd нет, в грабе заменил на

initrd /boot/initramfs-genkernel-x86-2.6.37-gentoo

Теперь при загрузке пишет, что не найдено модулей. Гружусь со старого ядра, пишу:

emerge @module-rebuild
Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "sys-kernel/calculate-sources:2.6.36.2".
(dependency required by "@module-rebuild" [argument])

Объясните, пожалуйста, что я делаю не так. Да, и почему sys-kernel/calculate-sources:2.6.36.2, если:

del-laptop src # uname -r
2.6.36.3-calculate

Да, теперь еще после eix-sync выдает:

egencache: error: Unable to locate repository named 'calculate'
 * Something went wrong with egencache --repo=calculate --update --jobs=4

Ошибок наверняка больше, но то, что поправить надо в первую очередь:

  • описанным способом вы установили чисто джентушное ядро, а не calculate (хотя возможно вы этого и хотели, но тогда уж и профиль измените,отсюда и несостыковки у вас с module-rebuild)

Эм… а на какой тогда сменить?
http://pastebin.com/5f4vzkqF

Пересобрал ядро с помощью cl-kernel, указав в параметре --kerneldir ядро 2.6.37-gentoo. После выполнил module-rebuild -X rebuild. Граб поправил, указав новые vmlinuz и initramfs, после ребута получил ошибку с невозможностью смонтировать ROOT. Указывал уже и real_root, все равно грузиться не хочет… Сейчас делаю бекап /home из-под livedvd calculate. Видимо, придется переустановить…

по поводу профиля:
eselect profile list - и выбирайте что-то из default/linux (и кстати, почему вы хотите чисто джентушное ядро, а не calculate?)

по поводу невозможности смонтировать root - 2 наиболее частых варианта:

  • в ядре нет поддержки файловой системы на которой root
  • диски прописаны (в fstab и grub) типа sd* (лучше по UUID)

Нет, прописаны они через UUID… видимо, напортачил я с ядром. Ну да ладно, переустановил систему, теперь проблема другая выросла, но, видимо, не по моей вине:

При синхронизации eix-sync выдает ошибку “Connection reset by peer”.
На форуме калькулейта вычитал, что нужно удалить и добавить:

layman -d calculate
layman -a calculate

Но удалить то удалил, а вот при добавлении все равно проблема та же:

del-laptop del # layman -a calculate

  • Running… # /usr/bin/git clone git://git.calculate.ru/dev/overlay.git /var/lib/layman/calculate
    Cloning into /var/lib/layman/calculate…
    fatal: read error: Connection reset by peer
  • Failed to add overlay “calculate”.
  • Error was: Adding overlay “calculate” failed!

Ну сейчас вроде этой проблемы нет.

Да, той проблемы уже нет, но почему-то у меня все время в самом конце после eix-sync выдает:

egencache: error: Unable to locate repository named 'calculate'
 * Something went wrong with egencache --repo=calculate --update --jobs=4

В чем может быть проблема, и как ее решить?

Обновление кэша после выполнения eix-sync. Настройка файла /etc/eix-sync.conf. Ускоряет доступ к оверлею calculate.
Посмотрите что у Вас в /etc/make.conf есть строчка:

source /var/lib/layman/make.conf

и в /var/lib/layman/make.conf примерно так:

PORTDIR_OVERLAY="
/var/lib/layman/calculate
$PORTDIR_OVERLAY
"

И то, и другое есть.

Вы можете просто убрать вызов из /etc/eix-sync.conf, т.к. я с такой ошибкой не сталкивался.

Тогда кеш eix обновляться не будет? И, например, по “eix program” я буду получать старые данные?

Всё будет работать.

Эм… Ок, спасибо. Только можно тогда еще хотя бы вкратце объяснить, зачем eix создает кеш?) Я думал, что для быстрого поиска программ.

Этот кэш использует emerge для более быстрой работы с оверлеем. Например eix-update выполнится быстро благодаря этому кэшу. Также emerge быстрее будет ворочаться при подсчёте зависимостей. Команда прописана в /etc/eix-sync.conf, чтобы формировать кэш по завершению обновления.

>>> Updating Portage cache
40% [=============================>                                            ]

В подробности я не вдавался.

Спасибо. А можно узнать каким образом при установке virtualbox обновляется ядро?)) и можно ли как-нибудь обновить ядро до 2.6.37 с теми параметрами, которые включены сейчас в ядре 2.6.36?

calculate-sources выступает как обычный пакет. Вышла версия 2.6.36.3 и он обновился. Связи с virtualbox не вижу.
2.6.37 версии пока нет. Скоро протестируем и выпустим. Вы можете собрать со своими опциями, установив с флагом -vmlinuz, затем воспользовавшись утилитой cl-kernel с указанием пути к конфигурационному файлу.

Ну, тем не менее, второй раз уже такое происходит, что при установке виртуалбокса обновляется ядро) возможно, по зависимостям.
Можно расписать поподробнее, как на калькулейте ядро обновить из gentoo-source?
То есть emerge gentoo-source, а дальше через genkernel или что? И конфиг можно указать config-2.6.36.3-i686-CLDG, я так понимаю.
Я просто уже попробовал обновить ядро, убил систему, поэтому лучше поподробнее об этом…

Ну, тем не менее, второй раз уже такое происходит, что при установке виртуалбокса обновляется ядро) возможно, по зависимостям.

Такое бывает если использовать “-N (–newuse)” и на пакете меняются флаги.

Можно расписать поподробнее, как на калькулейте ядро обновить из gentoo-source?
То есть emerge gentoo-source, а дальше через genkernel или что? И конфиг можно указать config-2.6.36.3-i686-CLDG, я так понимаю.
Я просто уже попробовал обновить ядро, убил систему, поэтому лучше поподробнее об этом…

В Gentoo Вы можете сделать из системы всё что угодно, в т.ч. и убить её. Собственно я не открою для Вас секрет, описав make; make modules_install; make install. Названия файлов config, vmliuz как Вы знаете, могут быть любыми, не забудьте только поправить grub.conf.

Я так думаю что у Вас система не загрузилась потому, что Вы не использовали initrd. Можно обойтись и без него, вкомпилировав необходимые модули (драйвер контроллера и файловую систему /boot) в ядро.

Такое бывает если использовать “-N (–newuse)” и на пакете меняются флаги.
Нет) emerge -av virtualbox, только и всего) В процессе сборки я заметил, что изменения ведутся в /usr/src и дальше фигурировало новое ядро.

Я так думаю что у Вас система не загрузилась потому, что Вы не использовали initrd.
Использовал genkernel all, далее ручками правил граб, вписывая в него initramfs, сгенерированный генкернелом, в качестве параметра initrd. При этом при старте загружалась куча модулей (поэтому я теперь и спросил про конфиги от старого ядра), а дальше был такой вот epic fail с невозможностью найти ROOT, хотя все остальные параметры, кроме initramfs в грабе не были изменены (скопированы со старого ядра). Кстати, старое ядро после этого грузиться тоже перестало, тоже ошибка с ROOT.