nixp.ru v3.0

28 мая 2017,
воскресенье,
19:43:19 MSK

DevOps с компанией «Флант»
anonymous написал 18 августа 2004 года в 07:01 (708 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Пожалуйста подскажите при компиляции ядра постоянно появляется данная ошибка:

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#

Что только не делал всё время финал один и тот же.

Что нужно отключить или включить в ядро ?

Uncle Theodore

А у тебя хоть один модуль в ядре есть? Если нет, то нафига тебе make modules_install? Впрочем, Google советует в этом случае создать пустую директорию /lib/modules/2.4.17/kernel/ и depmod будет счастлив.

Good Luck,

UT

anonymous
Uncle Theodore
А у тебя хоть один модуль в ядре есть? Если нет, то нафига тебе 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

Dreid
PostaL
Всмысле модуль ?

В смысле — хоть что-нибудь ты модулем собираешь, или все в ядро вкомпилил?

PostaL
Я указал в 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 забыл.

edw1n

При чем тут PCMCIA? if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.4.26; fi, перед ним у тебя psmcia прекрасно собирается — на этом у тебя компиляция модулей заканчивается, а вообще тебе правильно сказали, потому что у тебя дальше ругается именно на dependencies, сделай make dep (как правило это не обязательно, но в твоем случае — надо), либо если не поможет — тогда make mrproper и собирай заново, возможно ты просто скопировал старый .config в каталог с исходниками, тоже в некоторых случаях наблюдаются глюки.

anonymous

Спасибо за ваши ответы !

Выходит что это сообщение означает то что ядро было собрано ?

Что мне делать дальше с ним ?

Вот ещё что хотел узнать ! После компиляции нужно ли прописывать что-нибудь в LILO ? Ядро компилирую тоже самое т.е то что було установлено вместе с Slackware 10.

Master

Почитай статью «Ставим ядро 2.6, или Ядерная физика для домохозяйки».

Там все отлично описано…

Chrome

Народ, пытался тут разобраться с модулями вообще и с дровами 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 в ядро и т.п.

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

Как еще раз такое будет, лог кину обязательно, т.к. мне никто не верит ;-))

Uncle Theodore
Chrome
Народ, пытался тут разобраться с модулями вообще и с дровами nVIDIA в частности.

Сразу возникла куча вопросов. Во-первых — как вообще компилится в Slackware 10 ядро (ну, 2.4.26, к примеру). То есть, я знаю примерный механизм:

make clean

make menuconfig

<-- make dep (Не нужен для ядер 2.6)

make bzImage

make modules

make modules_install

Пока все правильно??

Теперь — нужно ли мне вот это??:

make install

Если да, то я так понял, что он конфигурит загрузчик (ЛиЛо), а какое имя присвайвает образу?

Кажется, /boot/vmlinuz

Но этого лучше все равно не делать, а просто скопировать arch/i386/boot/bzImage в /boot и дать ему правильное имя. Потом прописать

новое ядро в /etc/lilo.conf и прогнать lilo В этом случае, если ядро откажется грузиться, можно вернуться к старому. Кроме того, хорошая идея — менять extraversion в ядреном Makefile’е Тогда модули тоже не перепишутся.

Не думайте, что я не пытался, просто я там так мудрил, что сам запутался.

Второе. Вот скомпилил я ядро модульное. Где расписано, какие модули должны включаться в ядро при загрузке?? В самом ядре?? Если да, то что за хрень у меня была при загрузке компа — insmod все вермя пытался вставить какой-то модуль net-pf-1, и этот процесс уходил в бесконечный цикл. Помогал только салют тремя пальцами. :-))

Модули прописаны в разных местах, зависит от системы. Но те, что грузятся сразу, прописаны в initrd Я им не пользуюсь. В Слаке модули грузятся из /etc/rc.d/rc.modules и еще hotplug подгружает модули на этапе опознания железа. Ядро не знает, какие модули ему надо грузить.

Третье. Если я, допустим, пересобрал ядро в монолитном режиме, т.е. не-module capable, то

# insmod nvidia.o

у меня работать не будет, правильно???

Не совсем. Если ты указал возможность загрузки модулей (enable module loading или что-то в этом роде) в конфигурации ядра, модули ибудут грузиться.

И последнее. Вот имею я стандартное ядро aka bare.i, компилю под него драйвер от nVIDIA, делаю ему insmod в ядро и т.п.

Пользуй modprobe а не insmod

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

Как еще раз такое будет, лог кину обязательно, т.к. мне никто не верит ;-))

На бодягу с лицензиями не обращай внимания. Установщик смотрит на вывод uname -a И мне уже бежать пора работать. Но, в общем-то я тебе верю, кидай логи.

Good Luck,

UT

fly4life
Uncle Theodore
Кажется, /boot/vmlinuz

Не в качестве придирки, а поправки ради ;). После команды 'make install' ядро запишется в каталог /boot/ с именем 'vmlinuz-2.4.26\′ (для случая Postal’а). И, если оно у него в /etc/lilo.conf прописано, то ничего туда прописывать не надо. Просто прогнать под рутом lilo.

Uncle Theodore
Не совсем. Если ты указал возможность загрузки модулей (enable module loading или что-то в этом роде) в конфигурации ядра, модули ибудут грузиться.

Разве? Если драйвер (nvidia.o, или какой там у него) включить в ядро монолитно, то сам файл модуля nvidia.o не появится, а следовательно команда 'insmod nvidia.o' выдаст ошибку.

П.С. А опция 'Enable loadable module support' просто даёт возможность включать драйвера модульно в ядро…

Uncle Theodore
fly4life
Не в качестве придирки, а поправки ради ;). После команды 'make install' ядро запишется в каталог /boot/ с именем 'vmlinuz-2.4.26\′ (для случая Postal’а). И, если оно у него в /etc/lilo.conf прописано, то ничего туда прописывать не надо. Просто прогнать под рутом lilo.

Оно, конечно, да, но если у него других ядер не прописано, а свежесобранное барахлит, то knoppix ему в помощь… Вообще, если собираешь ядро той же версии, очень полезно менять extraversion. Кроме того, у меня были проблемы с make install в Мандрейке, я им больше и не пользуюсь.

Разве? Если драйвер (nvidia.o, или какой там у него) включить в ядро монолитно, то сам файл модуля nvidia.o не появится, а следовательно команда 'insmod nvidia.o' выдаст ошибку.

П.С. А опция 'Enable loadable module support' просто даёт возможность включать драйвера модульно в ядро…

Я на лекцию спешил, и уже поздно понял, что отвечаю не на тот вопрос. Но и твоя версия ответа тоже неточна. Во-первых, драйвер nvidia нифига не вобьёшь в ядро, он кругом проприетарный, и сырцов на него нет. А он спрашивал, если его ядро неспособно подгружать модули, то чем кончится попытка insmod nvidia Плохо кончится… :-) Да и вообще, вбивать все в ядро — не лучшая затея.

Good Luck,

UT

Genie
Если драйвер (nvidia.o, или какой там у него) включить в ядро монолитно


что-то я такой возможности, включить драйвер nvidia монолитно, не слышал. howto напишешь, а? ;)

если поддержка загружаемых модулей включена, то значть будут работать insmod, modprobe, rmmod и т.д.

и можно будет компилировать и подключать другие модули, изначально в яжро не включённые никак — ни статически, ни в виде модуля.

если же како-то драйвер включён статически, а мы попробуем загрузить такой же модуль, то получим несколько не ту ошибку — а «ресурсы заняты».

fly4life

Так, мужики, дайте-ка с мыслями собраться.. =)

2 UT:

>> Кроме того, у меня были проблемы с make install в Мандрейке, я им больше и не пользуюсь.

Ну, дядька, из-за глюков в мандраке отказываться от такой хорошей штуки, как 'make install’ — эт зря… =)

>> А он спрашивал, если его ядро неспособно подгружать модули, то чем кончится попытка insmod nvidia

Мне показалось, что он спрашивал будет ли работать команда 'insmod nvidia.o’, если этот модуль включен в ядро монолитно (про проприетарность и невозможность включить нВидивский модуль в ядро монолитно см. ниже)

>> Да и вообще, вбивать все в ядро — не лучшая затея.

Ну всё конечно плохо, а вот всё то, что тебе необходимо и постоянно используется, думаю, очень даже правильно.

2 Genie:

>> что-то я такой возможности, включить драйвер nvidia монолитно, не слышал.

>> howto напишешь, а? ;)

Ну ладно, ладно тебе стебаться =)). А хауту ессесно распишу (правда, хз будет ли это про включение драйвера нВидии в ядро), но при встрече. С тебя ещё пиво, не забыл? :Р

>> если же како-то драйвер включён статически, а мы попробуем загрузить такой

>> же модуль, то получим несколько не ту ошибку — а «ресурсы заняты».

Ну, примерно это я и имел ввиду.

2 оба: про nvidia.o — это можно расценивать как просто пример модуля (т.к. в контексте обсуждения я увидел именно это имя). А что там с дровами и модулями нВидии — я хз ;). Просто не работал с ними (точнее как-то работал, но это было давно и неправда =))

П.С. по поводу остального вынес уроки для себя. Переработал и запомнил ;)

Genie
Ну, дядька, из-за глюков в мандраке отказываться от такой хорошей штуки, как 'make install’ — эт зря… =)


я от этого отказался. в смысле — `make install` я уже не делаю сам ;))

наиболее правильный способ обновления ядра — в пакетно-ориентированном дистрибутиве — это создание своего пакета с ядром и установка/обновление его штатными средствами.

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

А хауту ессесно распишу (правда, хз будет ли это про включение драйвера нВидии в ядро), но при встрече. С тебя ещё пиво, не забыл? :Р


ты эттаа.. к тому времени автопилот обнови, ок?

а то мммало ли.. ;)))

vovans
Uncle Theodore
у меня были проблемы с make install в Мандрейке, я им больше и не пользуюсь.

В МДК 10.0 никаких проблем с make install не наблюдал.

Никаких проблем нет, если применять make install в том случае, когда в системе стоит то же ядро. То же оно только по версии, но не по именам файлов. Если ядро установлено из пакета, то имя ему бдет, к примеру, vmlinuz-2.4.26. Но если ядро вы собирали сами, то после make install оно будет называться примерно так — vmlinuz-2.4.26custom, т.е. не затрёт старое ядро. Соответственно и в /lib/modules… названия папок, т.е модули не затруться. Так в чём проблема при использовании make install?? Хотя, помнится, в МДК 9.* не очень работала эта фишка. А хороша она тем, что наше время экономит ::))