Показать полную графическую версию : Ошибка при компиляции ядра
Junior Penguin
26-09-2003, 17:39
Добрый вечер!
Вот добрался до компиляции ядра ;)
Система при выполнении make bzImage выдала то, что вы видите внизу. Не подскажете в чем тут дело?
make[1]: Вход в каталог `/usr/src/linux-2.4.18-3'
kallsyms pass 1
ld -m elf_i386 -T /usr/src/linux-2.4.18-3/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o --start-group arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/drm/drm.o drivers/net/fc/fc.o drivers/atm/atm.o drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/net/wireless/wireless_net.o drivers/pnp/pnp.o drivers/video/video.o drivers/usb/usbdrv.o drivers/md/mddev.o drivers/sensors/sensor.o net/network.o abi/abi.o /usr/src/linux-2.4.18-3/arch/i386/lib/lib.a /usr/src/linux-2.4.18-3/lib/lib.a /usr/src/linux-2.4.18-3/arch/i386/lib/lib.a --end-group -o .tmp_vmlinux1
init/main.o: In function `smp_init':
init/main.o(.text.init+0x5f1): undefined reference to `skip_ioapic_setup'
arch/i386/kernel/kernel.o: In function `broken_pirq':
arch/i386/kernel/kernel.o(.text.init+0x34fb): undefined reference to `skip_ioapic_setup'
make[1]: *** [kallsyms] Ошибка 1
make[1]: Выход из каталог `/usr/src/linux-2.4.18-3'
make: *** [vmlinux] Ошибка 2
Заранее благодарен
для двухпроцессорной машины собираеш?
ruslandh
27-09-2003, 08:42
/usr/src/linux-2.4.18-3/arch/i386/lib/lib.a --end-group -o .tmp_vmlinux1
init/main.o: In function `smp_init':
init/main.o(.text.init+0x5f1): undefined reference to `skip_ioapic_setup'
Почему smp_init - это двухпроц. машина ?
Какая-то ошибка с кокфигурацией в ядре "apic"
Junior Penguin
29-09-2003, 08:21
Почему smp_init - это двухпроц. машина ?
Какая-то ошибка с кокфигурацией в ядре "apic"
Да нет, машина что ни на есть обыкновенная - Celeron (M/b -i810). Проблема в том, что я "еще не Волшебник, а только учус..." :о)
Не подскажете, где я так сильно облажался при конфигурации ядра? Что это за "apic" такой? Где что исправить можно?
Ты просто собираеш ядро под двух проц. машину...
Выруби параметр smp для ядра твоего...
make menuconfig - настройки ядра - и там отключи...
Junior Penguin
29-09-2003, 17:44
Ты просто собираеш ядро под двух проц. машину...
Выруби параметр smp для ядра твоего...
make menuconfig - настройки ядра - и там отключи...
Спасибо Вам, Друзья, что не бросаете начинающих "волшебников" в трудную для них минуту.:) :up:
С компиляцией я разобрался -- у меня SMP было выключено, но вот всякие другие фичи этого раздела типа "Local APIC support on uniprocessors" были включены, отсюда , видимо, и "росли ноги". Как только все прикрыл -- ядро скомпилилось беспрекословно!!! :)
Но это полбеды... Теперь у меня в процессе make modules_install система пишет следующе (что-то из раздела символьных устройств):
...
make[1]: Выход из каталог `/usr/src/linux-2.4.18-3/arch/i386/lib'
cd /lib/modules/2.4.18-3custom; \
mkdir -p pcmcia; \
find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.4.18-3custom; fi
depmod: *** Unresolved symbols in /lib/modules/2.4.18-3custom/kernel/drivers/char/drm/sis.o
depmod: sis_malloc_Ra3329ed5
depmod: sis_free_Rced25333
make: *** [_modinst_post] Ошибка 1
Вот у меня вопрос -- можно это как-то поправить, не перенастраивая и не перекомпилируя ядро?
shurikan
29-09-2003, 18:04
Junior Penguin
А это уже перебор с включёнными в ядро драйверами для pcmci устройств. Они на ноутбуках живут, на десктопах их нет. Придётся при конфигурации отключить эти устройства и перекомпилять... :(
Перво наперво берёшь файл /where/you/build/kernel/source/ include/linux/modsetver.h
и в нём где-нибудь в начале вставляешь строчку
#include <linux/rhconfig.h>
при этом у тебя будут нормально компилиться модули, а далее см. сообщение shurikan
Junior Penguin
30-09-2003, 09:39
sergleo
А не подскажешь (или где почитать) описание что делают make modules и make modules_install? Т.е. что делают, в какие директории что пишут. README в /usr/src/linux-# читал и малость не въехал.
Make modules - собирает(компилит модули) указанные при make menuconfig И после make dep (выбора зависимостей)...
make modules_install - устанавливает их в взависимости какое ядро ты компилиш(номер ядра) в воответствуещую директорию.
Например: для ядра RH9 2.4.20-8
Если ты ставиш переменную EXTRAVERSION = -8-2 в файле Makefile исходников ядра, то модули он положит в директорию /lib/modules/2.4.20-8-2 после модулес инсталл.
Описание только в doc кернела.... и в инете... извени ссылки на память не помню :(
Junior Penguin
01-10-2003, 13:00
shurikan
sergleo
Спасибо за помощь!!! :)
С Третьей попытки ядро скомпилилось, модули установились и система корректно загрузилась-таки. Осталось ее протестировать как-нить...
Меня вот вопросы мучают... Как я это вижу, для того, чтобы новое ядро грузиться начало нужно его в рут девайс загрузить и System.map (???) туда же, а еще, чтобы скомпиленные модули встали в директорию /lib/modules/2.x.x-x-x... -- это все?!
А что тогда делают файлы в /boot/ типа modules-info, config-2.x.x-x-x? Зачем они нужны?
Ты их смотрел? В них расписаны девайсы которые система знает + адреса памяти и вендоры(производители) устройств с наименованием
________________
by sergleo
ruslandh
01-10-2003, 19:55
А что тогда делают файлы в /boot/ типа modules-info, config-2.x.x-x-x? Зачем они нужны?
Я так понимаю для динамического (без перекомпиляции) изминения параметров загрузки модулей ядра.
Junior Penguin
02-10-2003, 09:26
ruslandh
А-га... Т.е. как я понимаю эти файлы (boot/modules-info, config-2.x.x-x-x) грузятся и изменяются только один раз -- при инсталляции системы и далее используются только как справочный материал при добавлениях и удалениях модулей из системы?
А как можно динамически без перекомпиляции загрузить / удалить модули из текущей конфигурации не подскажешь (или ссылочку)?
ruslandh
02-10-2003, 19:24
Ну модули ядра и так загружаются динамически, (см modules.conf), а вот параметры (опции) модулей ядра вроде можно менять :)
Вот есть вопросик...
Делал тоже, что и автор первого поста - и выпадают ошибки...
if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.6.11my; fi
WARNING: /lib/modules/2.6.11my/kernel/3rdparty/mod_marvel/mga_core.ko needs unknown symbol matroxfb_register_driver
WARNING: /lib/modules/2.6.11my/kernel/3rdparty/mod_marvel/mga_core.ko needs unknown symbol matroxfb_unregister_driver
make: *** [_modinst_post] Ошибка 1
[root@localhost linux]#
И все (
Не подскажете?
dmitryst
14-11-2005, 11:21
sda-a
А видеокарта у вас Matrox? Если нет, то надо при конфигурировании ядра поддержку Matrox framebuffer отключить
Делал тоже, что и автор первого поста у автора 1-го поста система была RH9. Непопутайте... для ядра 2.6.11 и другой ситемы неприемлемо... Но принцип тот-же...
Здрасте!!!
Пришел на форум за советом...
Собрал свое ядро, откомпилилось нормально, только make dep выполнится нормально не может (подскажите в чем может быть дело и смертельно ли это), но ядро собралось...
Загружаясь система сообщает что init дошел до 5 уровня =)и осуществляется переход в "Пассивную загрузку", после этого компьютер ни начто не реагирует :=(((
dmitryst
16-11-2005, 22:04
Spaik
Ядро какой версии? initrd не забыли?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.