Ребят выручайте.
Вроде всё как обычно но есть НО, даже в книгу "Использование Linux 6-е издание" залез, но ответа не нашёл (пишу из дома т.к из-за возникшей проблемы вылетел инет).
Проблема в следующем:
Был у меня Mandrake 9.0 захотел я поставить на него новое ядро 2.4.21
1 Скачал его новые исходники с одного из зеркал обновления MDK.
2 Скачал iptables-1.2.7a (mdk)
3 Скачал iptables-devel-1.2.7a (asp)Ставлю исходники
rpm -Uvh kernel-source-2.4.21-0.13mdk.rpmВыдаёт ошибку что мол давай новый glibc (2.3)
Ладно думаю обновлю пакеты и начинаю обновлятся с CD Mandrake 9.1
Обновление прошло нормально
Устанавливаю исходники kernel-2.4.21, iptables, iptables-devel - всё нормальноПотом
# make menuconfig
Отконфигурил# make dep
# make clean
# make bzImage
# make modules
# make modules_installВсё прошло без error
Копирую /usr/src/linux/System.map в /boot как System.map-2.4.21
Копирую /usr/src/linux/arch/i386/bzImage в /boot как bzImage-2.4.21Лезу в /etc/lilo.conf чтобы прописать новое ядро
boot=/dev/hda
map=/boot/map
default="linux-2.4.21"
keytable=/boot/ru4.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/bzImage-2.4.21
label="linux-2.4.21"
root=/dev/hda7
initrd=/boot/initrd.img
append="devfs=mount acpi=off quiet"
vga=788
read-only
и в этот раз возникли следующие вопросы:
1) если сделать как советуют в книге, тоесть изменить только параметры image, label (к примеру с bzImage-2.4.19 на bzImage-2.4.21 и в lable с "linux-2.4.19" на "linux-2.4.21") и всё а потом сделать
# lilo
то всё проходит нормально. Но после перезагрузки системы и загрузки под новым ядром вылетают ошибки (что немогу найти линки и вообще кернел паник)
И я не могу понять где проблема ядро же собралось без ошибок!!!!2) Загрузился под старым ядром
и начал иследовать lilo.conf, вопрос вследующем что за параметр
initrd=
Так как под одним из старых ядер
A) image=bzImage-2.4.19-mdk24 а в initrd что то типа
initrd=/boot/initrd-2.4.19-mdk16.img
И если загрузится под ним и сделать uname -a то выдаётся что ядро
2.4.19-mdk16 хотя загрузка происходила под bzImage-2.4.19-mdk24B) А тут всё ок
image=bzImage-2.4.19-mdk16
initrd=/boot/initrd-2.4.19-mdk16.img
И если загрузится под этим и сделать uname -a то выдаётся что ядро
2.4.19-mdk16. Тоесть всё совпало.
1) man initrd - все изумительно описано;
2) после сборки ядра создай новый initrd:
mkinitrd /boot/initrd-2.4.21 2.4.21;
3) в лило :
initrd=/boot/initrd-2.4.21 и будет тебе счастье (в mkinitrd сам initrd можешь обзывать как хочешь а второй параметр обязательно версия ядра).
>и начал иследовать lilo.conf, вопрос вследующем что за параметр
>initrd=initrd - Initial RAM disk. В lilo прописывается путь к его образу *.img
man mkinitrd - о том, как это делается. Обычно в этот образ помещают модули необходимые до загрузки ядра - например, для самого-нового-SCSI-контроллера-в-этой-галактике, о котором еше не знает твоя система
Спасибо
Хочу уточнить:1) Тогда получается что после этого и проблемы с depmod -a исчезнут (что нету линков на такието модули?)
>(в mkinitrd сам initrd можешь обзывать как хочешь а второй параметр обязательно версия ядра)
2) А если я пересобираю тоже ядро (2.4.21), то как тогда mkinitrd
будет отличать что новое а что нет.
Тоесть работаю я под новым ядром скажем 2.4.21 c initrd= initrd-2.4.21
Теперь надо пересобрать ядро чтобы включить пару нужных опций и отключить лишнее.
Как в этой ситуации mkinitrd поймёт что новое и что старое и не надо
(mkinitrd /boot/initrd-2.4.21-2 2.4.21)
название имиджа initrd другое, а номер ядра то будет тот же
>Хочу уточнить:
>
>1) Тогда получается что после этого и проблемы с depmod -a
>исчезнут (что нету линков на такието модули?)
>
>>(в mkinitrd сам initrd можешь обзывать как хочешь а второй параметр обязательно версия ядра)
>
>2) А если я пересобираю тоже ядро (2.4.21), то как тогда mkinitrd
>
>будет отличать что новое а что нет.
>Тоесть работаю я под новым ядром скажем 2.4.21 c initrd= initrd-2.4.21
>Теперь надо пересобрать ядро чтобы включить пару нужных опций и отключить лишнее.
>
>Как в этой ситуации mkinitrd поймёт что новое и что старое и
>не надо
>(mkinitrd /boot/initrd-2.4.21-2 2.4.21)
>название имиджа initrd другое, а номер ядра то будет тот жеНу и что? Имидж ты можешь обозвать как угодно, но в mkinitrd последний параметр - это версия ядра, с которым ты возишся.
Или я вопрос не понял?
>Ну и что? Имидж ты можешь обозвать как угодно, но в mkinitrd
>последний параметр - это версия ядра, с которым ты возишся.
>Или я вопрос не понял?Про имидж понятно. А вот я дро то как.
Тоесть стояло у тебя по умолчанию ядро 2.4.21 и имидж скажем 2.4.21
потом ты решил его пересобрать, выкинуть то что не нужно.
Выкинул, пересобрал.
Врезультате ядро осталось тоже, а имидж ты можешь назвать скажем new-2.4.21.
Вопрос: когда будешь делать mkinitrd поймёт ли он что ты изменил ядро и
создаст ли соответствующий имидж без модулей которые ты викинул.
Чтобы всё работало?
>>Ну и что? Имидж ты можешь обозвать как угодно, но в mkinitrd
>>последний параметр - это версия ядра, с которым ты возишся.
>>Или я вопрос не понял?
>
>Про имидж понятно. А вот я дро то как.
>Тоесть стояло у тебя по умолчанию ядро 2.4.21 и имидж скажем 2.4.21
>
>потом ты решил его пересобрать, выкинуть то что не нужно.
>Выкинул, пересобрал.
>Врезультате ядро осталось тоже,не совсем так. Стандартное ядро в поставке RedHat/Mandrake будет скажем
kernel-2.4.18, после пересборки оно будет называться уже kernel-2.4.18custom. Сравни вывод командыuname -r
для стандартного ядра и пересобранного
> а имидж ты можешь назвать скажем new-2.4.21.
>Вопрос: когда будешь делать mkinitrd поймёт ли он что ты изменил ядроесли ему указать на custom ядро - то поймет
>kernel-2.4.18custom. Сравни вывод команды
>uname -r
>для стандартного ядра и пересобранного
> а имидж ты можешь назвать скажем new-2.4.21.
>Вопрос: когда будешь делать mkinitrd поймёт ли он что ты изменил ядро
>если ему указать на custom ядро - то пойметтоесть
1)mkinitrd /boot/initrd-new2.4.21 2.4.21-0.18mdkcustom2)потом в lili.conf
initrd=/boot/initrd-new2.4.21.img3)#lilo
4)#reboot
Да?
>тоесть
>1)mkinitrd /boot/initrd-new2.4.21 2.4.21-0.18mdkcustom
>
>2)потом в lili.conf
>initrd=/boot/initrd-new2.4.21.img
>
>3)#lilo
>4)#reboot
>Да?cd /lib/modules
lsсмотрим чего у нас собрано. Например по ls напечаталось
2.4.18-3 2.4.18-3custom
делаем образ для custom-ядра
mkinitrd /boot/initrd-2.4.18-3custom.img 2.4.18-3customну и потом прописываем этот образ в lilo.conf и перезапускаем lilo
теперь reboot!
Всё с этим всё Слава Богу :-)))))А почему когда я делаю depmod -a вылетает следующее (я дро на всех стадия было собрано без error, может я чтото в опциях вкл. откл. намудрил?)
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_3com/pcmf502_3com.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_504/pcmf502_504.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_inter/pcmf502_inter.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_revd/pcmf502_revd.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_reve/pcmf502_reve.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_rfmd/pcmf502_rfmd.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/hostap/hostap.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/hostap/hostap_pci.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/hostap/hostap_plx.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/prism25/cs/prism2_cs.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/prism25/pci/prism2_pci.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/qla/qla2200.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/qla/qla2300.o
depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/drivers/isdn/hisax/hisax_st5481.o
>Всё с этим всё Слава Богу :-)))))
>
>А почему когда я делаю depmod -a вылетает следующее (я дро на
>всех стадия было собрано без error, может я чтото в опциях
>вкл. откл. намудрил?)
>
>depmod: *** Unresolved symbols in /lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_3com/pcmf502_3com.o1) а эти модули необходимы? Если нет отключить их в конфиге ядра и забыть об этом
2) что-то намудрено с версиями ядра или System.map?
>1) а эти модули необходимы? Если нет отключить их в конфиге
>ядра и забыть об этом
>
>2) что-то намудрено с версиями ядра или System.map?делал как писал выше
# urpmi kernel-source-2.4.21-0.18mdk.rpm
# make menuconfig
выключил SCASI, Video for Linux, Blooth.., 1000MB# make dep
ok# make clean
ok# make bzImage
ok# make modulles
были выведены эти сообщения похожие на эти (/lib/modules/2.4.21-0.18mdkcustom/kernel/3rdparty/atmelwlan/pcmf502_3com/pcmf502_3com.o)
...
но error сообщений небыло.# make modules_install
ok# mkinitrd
okcp /usr/src/linux/System.map /boot/System.map-2.4.21-1
cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.4.21-1Изменения в lolo.conf
okreboot
depmod -a
Вывод этих сообщений
Все вроде правильно делал. Вообще-то всегда перед компиляцией ядра советуется make mrproper делать, может у тебя дерево исходников не совсем очищается, попробуй (но забэкапь предварительно .config если он нужен).
> Все вроде правильно делал. Вообще-то всегда перед компиляцией ядра советуется
>make mrproper делать, может у тебя дерево исходников не совсем очищается,
>попробуй (но забэкапь предварительно .config если он нужен).Тоесть
1) сохраняю /usr/src/linux/.config скажем в /home/user/2) make menuconfig
3) make dep
4) make clean
5) make mrproper
... и дальше как писал выше
>> Все вроде правильно делал. Вообще-то всегда перед компиляцией ядра советуется
>>make mrproper делать, может у тебя дерево исходников не совсем очищается,
>>попробуй (но забэкапь предварительно .config если он нужен).
>
>Тоесть
>1) сохраняю /usr/src/linux/.config скажем в /home/user/
>
>2) make menuconfig
>3) make dep
>4) make clean
>5) make mrproper
>... и дальше как писал вышеДа нет. make mrproper перед п. 1, то бишь перед make menuconfig. А бэкап .config по желанию (я обычно оставляю старый настроенный, а потом подправляю что надо, так быстрее). Кстати, загляни-ка вот сюда http://www.linux.opennet.ru/docs/RUS/lfs/chapter06/kernel.html, кратко и доходчиво.
Спасибо пробую, если что напишу кстати если можешь кинь свой маил на gladko@inbox.ru просто если что сразу писать тебе
Не пойму вчём теперь трабла.
Почитал ссылочку которая была выше.
И решил попробовать вначале на другом компе.
Делал так:
1)
- скачал kernel-source-2.4.21-0.18mdk.rpm
- удолил старые исходники (#rpm -e kernel-source)
- поставил новые (#urpmi kernel-source-2.4.21-0.18mdk.rpm)2)
# make mrproper
# make menuconfig
# make dep
# make clean
# make bzImage
# make modules
# make modules_install3)
#mkinitrd /boot/initrd-2.4.21new.img 2.4.21-0.18custom
Копирую /usr/src/linux/System.map в /boot как System.map-2.4.21new
Копирую /usr/src/linux/arch/i386/bzImage в /boot как bzImage-2.4.21new4)
Лезу в /etc/lilo.conf и добовляю новое ядроimage=/boot/bzImage-2.4.21new
label="linux-new"
root=/dev/hda7
initrd=/boot/initrd-2.4.21new.img
append="devfs=mount acpi=off quiet"
vga=788
read-only#lilo
#rebootИ при выборе нового ядра вовремя загрузки происходит следующее
- выбираю linux-new
- нажимаю ENTER
появляется следующее LILO...............
Потом по идее должен появится бутсплеш и внём должны показываться загружаемые процессы, но этого не происходит.
После LILO...... происходит перезагрузка компа.
Что не так?
Просто хочу доконца разобраться с ядром.