LINUX.ORG.RU

другое ядро ?


0

0

Подскажите пожалуйста.
Решил поменять ядро в RH-7.2 c 2.4.7-10 на 2.4.18
Установил 2.4.18 в /ust/src/
собрал, настроил lilo. Перегрузил машину с более новым ядром.
Загрузка прошла, но нужные модули не загрузились.
Руками то-же не загружаются.
Не подскажите, что я неправильно сделал.
может какая хитрость есть ?
anonymous

такое есть - между ветками 2.4 и 2.6 - а в твоем случае -что-то ты криво собрал.

alphex_kaanoken ★★★
()
Ответ на: комментарий от idle

Вот:

# insmod /lib/modules/2.4.18-2/kernel/drivers/net/8139too.o
/lib/modules/2.4.18-2/kernel/drivers/net/8139too.o: unresolved symbol __io_virt_debug
/lib/modules/2.4.18-2/kernel/drivers/net/8139too.o: unresolved symbol do_BUG
#

anonymous
()
Ответ на: комментарий от idle

>надо перекомпилировать, вот и все

с тем же .config  ?
или менять что-то нужно ?
а в чем проблема не подскажите ? 

anonymous
()
Ответ на: комментарий от idle

>кстати, не ставьте 4.18, возьмите свежую версию
А какую посоветуете ?

>надо перекомпилировать, вот и все
с тем же .config  ?
или менять что-то нужно ?
а в чем проблема не подскажите ? 

anonymous
()
Ответ на: комментарий от anonymous

> > кстати, не ставьте 4.18, возьмите свежую версию
>
> А какую посоветуете ?

последнюю, какая там версия на ftp.kernel.org.
только решайте сами, 2.4 или 2.6.

> а в чем проблема не подскажите ?

ваш модуль компилировался с CONFIG_DEBUG_IOVIRT,
а ядро - нет. поэтому модуль и не находит реализацию
__io_virt_debug в ядре, ее там просто нет.

всегда сначала компилируйте ядро, затем (не меняя
.config) модули, которые собираетесь грузить с этим
ядром.

idle ★★★★★
()
Ответ на: комментарий от idle

>всегда сначала компилируйте ядро, затем (не меняя
>.config) модули, которые собираетесь грузить с этим
>ядром.

Так я так и делал. странно.
Ну хорошо возможно я и напутал что-то. 
Сделаю снова аккуратнее. Спасибо.
Если что, напишу опять. :)

anonymous
()
Ответ на: комментарий от idle

иногда подобные проблемы возникают у редхатообразов из-за порочной практики впихивать хидеры дистрибутивного ядра в /usr/include/asm и /usr/include/linux

ananas ★★★★★
()
Ответ на: комментарий от ananas

Скажите а как такие проблемы решаются.
Вот я установил предположим более новое ядро,
без изменения дистрибутива.
И хочу проги писать.
Мне нужно удалить старые:
/usr/include/asm и /usr/include/linux
и создать линки
ln -s /usr/src/linux-2.4.18/include/asm-i386/  /usr/include/asm
ln -s /usr/src/linux-2.4.18/include/linux/  /usr/include/linux 

Я правильно понимаю ?
Давно хотел это спросить, пожалуйста если не сложно. 

anonymous
()
Ответ на: комментарий от idle

>всегда сначала компилируйте ядро, затем (не меняя
>.config) модули, которые собираетесь грузить с этим
>ядром.

Пересобрал. ничего не вышло. Все то-же самое. :(
Может еще в чем может быть ошибочка ?

anonymous
()
Ответ на: комментарий от anonymous

> Я правильно понимаю ?

неправильно. никаких линков не надо. разверните ядро
где угодно и под каким угодно пользователем. компилируйте.
копируйте arch/i386/boot/bzImage куда хотите, и этот путь
укажите в lilo.conf. затем рутом сказать lilo. все.

вам _нужны_ includes/{linux,asm} для того, чтобы компилировать
user-level приложения. но это должны быть includes того ядра,
под которым собиралось libc. ничего не знаю про redhat, но
они должны приходить с дистрибутивом, не трогайте их.

idle ★★★★★
()
Ответ на: комментарий от idle

Понятно. 
Ничего не трогал. Только собрал и установил lilo.
Но модули не загружаются.

anonymous
()
Ответ на: комментарий от anonymous

> Пересобрал. ничего не вышло. Все то-же самое. :(

make mrproper; make menuconfig; make bzImage; make modules

загрузитесь с этим ядром. убедитесь, что вы загрузили _это_
ядро. например cat /proc/version, смотреть дату компиляции.

cd где-исходники-вашего-ядра; insmod drivers/net/8139too.o

idle ★★★★★
()

make modules_install, make install делали? Нет? Тогда хотя-бы depmod вызвали? И что он вам сказал?

no-dashi ★★★★★
()
Ответ на: комментарий от anonymous

> > make mrproper; make menuconfig; make bzImage; make modules

> а make modules_install ?

зачем? загрузить, чтобы проверить что ошибка пропала,
можно из любого места. если вам так уж нравится, чтобы
модули лежали в /lib/modules - сделаете это потом.

для справки: make modules_install это просто копирование файлов,
никакой магии.

> Тогда хотя-бы depmod вызвали?

ну при чем здесь depmod... у него модуль хочет __io_virt_debug,
это где-то в arch/i386/lib, не помню точно сейчас.

idle ★★★★★
()
Ответ на: комментарий от idle

Спасибо всем, получилось.
Пришлось ядро взять из архива, наложить патчи,
затем сделал:
make mrproper; make menuconfig; make bzImage; make modules;
make modules_install

Модули загрузились при загрузке.
Да и руками вроде загружаются.
Еще раз спасибо.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.