LINUX.ORG.RU

Компиляция ядра в Debian 2.2


0

0

Ядро 2.2.17pre Компилируется на ура далее компилирую модули, устанавливаю и получаю кучу unresolved symbol (ту символ) .... в Linux Kernel HOW-TO ничего про это нет в modules.txt в доках тоже. далее раньше получал матюки на conf.modules потом стер его (как ядро того и хотело;) последовательность такая: make menuconfig make clean make dep make bzImage make modules make modules_install далее копирую bzImage лило там и т.п. пробовал удалять в /lib/modules каталог - не помогло Что это такое и как лечить? (все в ядро совать?)

★★

Последнее заклинание неверно: Вместо "make modules_install" нужно сказать "make modules install" Хотя это не спасет... Попробуй вместо "make bzImage" использовать "make install" Удачи!

anonymous
()

Штука в том, что когда ты компилируешь свое ядро, в папке /lib/modules уже есть подпапка 2.2.17 созданая при инсталяции. Там лежит практически полный набор модулей для того, чтобы установленная система могла более менее работать на любой машине. После выполнения команды make modules_install новые модули просто перезаписывают часть старых, а другая часть остается нетронутой, при этом она практически никак не связана с новым ядром. А так как ты врядли включал в свое ядро все то что поддерживалось в оригинальном, поэтому depmod и не знает что делать с лишними модулями. Выход такой. Если компилируешь ту же версию ядра что и у запушенного в тот момент, перед командой make modules_install скопируй куда-нибудь папку с модулями из /lib/modules и запусти команду. Если все пройдет успешно, потом эту папку можно будет спокойно удалить. Если версия другая, и модулей для нее еще нет в /lib/modules, то все и так отработает. Однако будь осторожен с работающим ядром и его модулями - папку убирай непосредственно перед make modules_install иначе в зависимости от условий последствия могут быть разными. Желаю удачи.

justas
()

А /etc/modules.conf у тебя на месте? В Debian этот файл не следует править вручную, все исправления надо делать в /etc/modutils. Потом говоришь update-modules и эта утилита генерирует /etc/modules.conf.

DronK
()

А я правлю Makefile: четвертую строку дополняю любой буквой, тогда при компиляции модули пойдут в другую дирикторию. Пример: Makefile VERSION = 2 PATCHLEVEL = 2 SUBLEVEL = 17 EXTRAVERSION -a тогда модули в /lib/modules/2.2.17-a

anonymous
()

Можно и Makefile. Но допустим новичкам проще повозиться с папками
чем править Makefile, а потом в случае неудачи искать где взять
модули. Ведь как правило стремятся все рассовать по ним родным и
включить в них информацию о версии ядра, что в принципе правильно.
Но в случае глюков и подправленной версии, старые модули взять
будет невозможно. Поэтому надо помнить об обоих вариантах.

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