Пожалуйста подскажите при компиляции ядра постоянно появляется данная ошибка:
make[1]: Nothing to be done for `modules_install’.
make[1]: Leaving directory `/usr/src/linux-2.4.26/arch/i386/mm'
make -C arch/i386/lib modules_install
make[1]: Entering directory `/usr/src/linux-2.4.26/arch/i386/lib'
make[1]: Nothing to be done for `modules_install’.
make[1]: Leaving directory `/usr/src/linux-2.4.26/arch/i386/lib'
cd /lib/modules/2.4.26; \
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.26; fi
depmod: cannot read ELF header from /lib/modules/2.4.26/make[1]:
make: * [_modinst_post] Error 1
root@darkstar:/usr/src/linux#
Что только не делал всё время финал один и тот же.
Что нужно отключить или включить в ядро ?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
А у тебя хоть один модуль в ядре есть? Если нет, то нафига тебе make modules_install? Впрочем, Google советует в этом случае создать пустую директорию /lib/modules/2.4.17/kernel/ и depmod будет счастлив.
Good Luck,
UT
Всмысле модуль ?
Я указал в make menuconfig нужные мне конфигурации оборудования . Затем пишу make bzImage modules modules_install и опять появляется это сообщение:
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.26; fi
Что он хочет объясните мне пожалуйста. Кстате в конфиге пробовал отключать и включать этот самый PCMCIA
В смысле — хоть что-нибудь ты модулем собираешь, или все в ядро вкомпилил?
Дубль 2:
1. Если ничего как модуль ты не компилишь — не надо указывать modules_install
2. Кстати, ты make dep забыл.
При чем тут PCMCIA? if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.4.26; fi, перед ним у тебя psmcia прекрасно собирается — на этом у тебя компиляция модулей заканчивается, а вообще тебе правильно сказали, потому что у тебя дальше ругается именно на dependencies, сделай make dep (как правило это не обязательно, но в твоем случае — надо), либо если не поможет — тогда make mrproper и собирай заново, возможно ты просто скопировал старый .config в каталог с исходниками, тоже в некоторых случаях наблюдаются глюки.
Спасибо за ваши ответы !
Выходит что это сообщение означает то что ядро было собрано ?
Что мне делать дальше с ним ?
Вот ещё что хотел узнать ! После компиляции нужно ли прописывать что-нибудь в LILO ? Ядро компилирую тоже самое т.е то что було установлено вместе с Slackware 10.
Почитай статью «Ставим ядро 2.6, или Ядерная физика для домохозяйки».
Там все отлично описано…
Народ, пытался тут разобраться с модулями вообще и с дровами nVIDIA в частности.
Сразу возникла куча вопросов. Во-первых — как вообще компилится в Slackware 10 ядро (ну, 2.4.26, к примеру). То есть, я знаю примерный механизм:
make clean
make menuconfig
make bzImage
make modules
make modules_install
Пока все правильно??
Теперь — нужно ли мне вот это??:
make install
Если да, то я так понял, что он конфигурит загрузчик (ЛиЛо), а какое имя присвайвает образу?
Не думайте, что я не пытался, просто я там так мудрил, что сам запутался.
Второе. Вот скомпилил я ядро модульное. Где расписано, какие модули должны включаться в ядро при загрузке?? В самом ядре?? Если да, то что за хрень у меня была при загрузке компа — insmod все вермя пытался вставить какой-то модуль net-pf-1, и этот процесс уходил в бесконечный цикл. Помогал только салют тремя пальцами. :-))
Третье. Если я, допустим, пересобрал ядро в монолитном режиме, т.е. не-module capable, то
# insmod nvidia.o
у меня работать не будет, правильно???
И последнее. Вот имею я стандартное ядро aka bare.i, компилю под него драйвер от nVIDIA, делаю ему insmod в ядро и т.п.
Потом компилю новое ядро из тех же исходников, а установщик драйвера мне ругается, что вот, мол, это сырцы от другого ядра, не того, под каким я щас работаю, да и вообще у тебя, говорит, какая то бадяга с лицензиями. В общем такую муть загоняет, я даже не могу понять, откуда у этой проблемы ноги растут.
Как еще раз такое будет, лог кину обязательно, т.к. мне никто не верит ;-))
<-- make dep (Не нужен для ядер 2.6)
Кажется, /boot/vmlinuz
Но этого лучше все равно не делать, а просто скопировать arch/i386/boot/bzImage в /boot и дать ему правильное имя. Потом прописать
новое ядро в /etc/lilo.conf и прогнать lilo В этом случае, если ядро откажется грузиться, можно вернуться к старому. Кроме того, хорошая идея — менять extraversion в ядреном Makefile’е Тогда модули тоже не перепишутся.
Модули прописаны в разных местах, зависит от системы. Но те, что грузятся сразу, прописаны в initrd Я им не пользуюсь. В Слаке модули грузятся из /etc/rc.d/rc.modules и еще hotplug подгружает модули на этапе опознания железа. Ядро не знает, какие модули ему надо грузить.
Не совсем. Если ты указал возможность загрузки модулей (enable module loading или что-то в этом роде) в конфигурации ядра, модули ибудут грузиться.
Пользуй modprobe а не insmod
На бодягу с лицензиями не обращай внимания. Установщик смотрит на вывод uname -a И мне уже бежать пора работать. Но, в общем-то я тебе верю, кидай логи.
Good Luck,
UT
Не в качестве придирки, а поправки ради ;). После команды 'make install' ядро запишется в каталог /boot/ с именем 'vmlinuz-2.4.26\′ (для случая Postal’а). И, если оно у него в /etc/lilo.conf прописано, то ничего туда прописывать не надо. Просто прогнать под рутом lilo.
Разве? Если драйвер (nvidia.o, или какой там у него) включить в ядро монолитно, то сам файл модуля nvidia.o не появится, а следовательно команда 'insmod nvidia.o' выдаст ошибку.
П.С. А опция 'Enable loadable module support' просто даёт возможность включать драйвера модульно в ядро…
Оно, конечно, да, но если у него других ядер не прописано, а свежесобранное барахлит, то knoppix ему в помощь… Вообще, если собираешь ядро той же версии, очень полезно менять extraversion. Кроме того, у меня были проблемы с make install в Мандрейке, я им больше и не пользуюсь.
Я на лекцию спешил, и уже поздно понял, что отвечаю не на тот вопрос. Но и твоя версия ответа тоже неточна. Во-первых, драйвер nvidia нифига не вобьёшь в ядро, он кругом проприетарный, и сырцов на него нет. А он спрашивал, если его ядро неспособно подгружать модули, то чем кончится попытка insmod nvidia Плохо кончится… :-) Да и вообще, вбивать все в ядро — не лучшая затея.
Good Luck,
UT
что-то я такой возможности, включить драйвер nvidia монолитно, не слышал. howto напишешь, а? ;)
если поддержка загружаемых модулей включена, то значть будут работать insmod, modprobe, rmmod и т.д.
и можно будет компилировать и подключать другие модули, изначально в яжро не включённые никак — ни статически, ни в виде модуля.
если же како-то драйвер включён статически, а мы попробуем загрузить такой же модуль, то получим несколько не ту ошибку — а «ресурсы заняты».
Так, мужики, дайте-ка с мыслями собраться.. =)
2 UT:
>> Кроме того, у меня были проблемы с make install в Мандрейке, я им больше и не пользуюсь.
Ну, дядька, из-за глюков в мандраке отказываться от такой хорошей штуки, как 'make install’ — эт зря… =)
>> А он спрашивал, если его ядро неспособно подгружать модули, то чем кончится попытка insmod nvidia
Мне показалось, что он спрашивал будет ли работать команда 'insmod nvidia.o’, если этот модуль включен в ядро монолитно (про проприетарность и невозможность включить нВидивский модуль в ядро монолитно см. ниже)
>> Да и вообще, вбивать все в ядро — не лучшая затея.
Ну всё конечно плохо, а вот всё то, что тебе необходимо и постоянно используется, думаю, очень даже правильно.
2 Genie:
>> что-то я такой возможности, включить драйвер nvidia монолитно, не слышал.
>> howto напишешь, а? ;)
Ну ладно, ладно тебе стебаться =)). А хауту ессесно распишу (правда, хз будет ли это про включение драйвера нВидии в ядро), но при встрече. С тебя ещё пиво, не забыл? :Р
>> если же како-то драйвер включён статически, а мы попробуем загрузить такой
>> же модуль, то получим несколько не ту ошибку — а «ресурсы заняты».
Ну, примерно это я и имел ввиду.
2 оба: про nvidia.o — это можно расценивать как просто пример модуля (т.к. в контексте обсуждения я увидел именно это имя). А что там с дровами и модулями нВидии — я хз ;). Просто не работал с ними (точнее как-то работал, но это было давно и неправда =))
П.С. по поводу остального вынес уроки для себя. Переработал и запомнил ;)
я от этого отказался. в смысле — `make install` я уже не делаю сам ;))
наиболее правильный способ обновления ядра — в пакетно-ориентированном дистрибутиве — это создание своего пакета с ядром и установка/обновление его штатными средствами.
да, это требует некоторого времени на попытки создания такого пакета. особенно это касается debian. правда, дока по этому есть в инете, гугль о ней вроде как даже знает.
ты эттаа.. к тому времени автопилот обнови, ок?
а то мммало ли.. ;)))
В МДК 10.0 никаких проблем с make install не наблюдал.
Никаких проблем нет, если применять make install в том случае, когда в системе стоит то же ядро. То же оно только по версии, но не по именам файлов. Если ядро установлено из пакета, то имя ему бдет, к примеру, vmlinuz-2.4.26. Но если ядро вы собирали сами, то после make install оно будет называться примерно так — vmlinuz-2.4.26custom, т.е. не затрёт старое ядро. Соответственно и в /lib/modules… названия папок, т.е модули не затруться. Так в чём проблема при использовании make install?? Хотя, помнится, в МДК 9.* не очень работала эта фишка. А хороша она тем, что наше время экономит ::))