Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Перекомпиляция ядра... (http://forum.oszone.net/showthread.php?t=12531)

Mr Dan 20-07-2004 13:41 66380

Привет народ. Помогите разобраться. Вот решил пересобрать ядро, повыкидывать оттуда ненужные компоненты и т.д., короче говоря занялся оптимизацией. Дистрибутив ASP 9.2 Express. Значит делаю make menuconfig, настраиваю, сохраняю конфигурацию, делаю make dep, make bzImage, make modules, make modules_install
Прописываю в grub.conf ссылку на новое ядро, гружусь...

И тут начинают вылазить сюрпризы. Во-первых при загрузке ругается на то что не удается загрузить usbcore.o, input.o и parport.o. Пишет кучу строк типа: путь_к_модулям/usbcore: undefined symbols тра-ля-ля и т.д.
Остальные службы загружаются нормально, но после того когда логинюсь в систему, делаю lsmod и оказывается что никаких модулей-то и не загружено - пусто. Пытаюсь сделать ручками например insmod путь_к_модулям/input.o. Но ругается как и при загрузке типа путь_к_модулям/input: undefined symbols тра-ля-ля и т.д. и кучу таких строк.
В чем тут может быть дело???
Вот кусок из /var/log/messages
Код:


Jul 18 17:57:13 fantom insmod: /lib/modules/2.4.22-1.2154.nptl.asp/kernel/drivers/parport/parport.o: insmod char-major-6 failed
Jul 18 17:57:13 fantom last message repeated 7 times
Jul 18 17:57:13 fantom modprobe: modprobe: Can't locate module char-major-188
Jul 18 17:57:14 fantom last message repeated 15 times
Jul 18 17:57:14 fantom modprobe: modprobe: Can't locate module char-major-180
Jul 18 17:57:14 fantom last message repeated 15 times
Jul 18 17:57:14 fantom insmod: /lib/modules/2.4.22-1.2154.nptl.asp/kernel/drivers/parport/parport.o: insmod char-major-6 failed
Jul 18 17:57:14 fantom last message repeated 3 times
Jul 18 17:57:15 fantom modprobe: modprobe: Can't locate module char-major-180
Jul 18 17:57:15 fantom last message repeated 7 times
Jul 18 17:57:15 fantom insmod: /lib/modules/2.4.22-1.2154.nptl.asp/kernel/drivers/parport/parport.o: insmod char-major-6 failed
Jul 18 17:57:15 fantom last message repeated 3 times
Jul 18 17:57:15 fantom modprobe: modprobe: Can't locate module char-major-180

А вот небольшой кусок сообщений, которые были при компиляции модулей make modules:
Код:


In file included from ac.c:26:
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:60:31: invalid suffix "d5eeb25" on integer constant
In file included from ac.c:26:
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:60: error: syntax error before numeric constant
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:60: warning: function declaration isn't a prototype
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:61:17: invalid suffix "bf0" on integer constant
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:61: error: syntax error before numeric constant
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:62: error: `panic_R_ver_str' declared as function returning a function
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:62: warning: function declaration isn't a prototype
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:68: error: syntax error before numeric constant
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:68: error: `simple_strtoul_R_ver_str' declared as function returning a function
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:68: warning: function declaration isn't a prototype
/usr/src/linux-2.4.22-1.2154.nptl.asp/include/linux/kernel.h:69:13: invalid suffix "b742fd7" on integer constant

Там их вообще многовато, чего-то мне сдается что это не нормально.

А вот сообщения которые были при make modules_install:
Код:


cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `ac.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `battery.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `button.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `fan.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `processor.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `thermal.o': No such file or directory
make[2]: *** [_modinst__] Ошибка 1
make[1]: *** [_modinst_acpi] Ошибка 2
make: *** [_modinst_drivers] Ошибка 2

Извиняюсь что в KOI-8...

Кстати, а перед компиляцией модулей нужно удалять содержимое /lib/modules ???
Просвятите плиз....

makaveli lcf 21-07-2004 08:30 66381

хехе = так у вас ядро с ошибками собралось (вернее модули к нему) = что от него тогда требовать)))
видимо
1) либо вы не очистили исходники перед компиляцией
make mrproper
2) либо убрали из конфигов много лишнего_нужного

Цитата:

Код:


cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `ac.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `battery.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `button.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `fan.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `processor.o': No such file or directory
cp: ОЕЧПЪНПЦОП ЧЩРПМОЙФШ stat ДМС `thermal.o': No such file or directory
make[2]: *** [_modinst__] Ошибка 1
make[1]: *** [_modinst_acpi] Ошибка 2
make: *** [_modinst_drivers] Ошибка 2
вы для ноутбука ядро собираете??


Добавлено:

а что вы убрали из ядра?

Mr Dan 21-07-2004 09:17 66382

Нет, не для ноутбука! А почему спросили? Как тогда избавится от того что ругается? Из я дра повыкидывал поддержку Bluetooth, RAID, Radio Adapters, ну и драйвера к ненужным мне чипсетам и т.п. Ничего жизнено важного вроде не трогал. Ну так как тогда собрать модули правильно, чтоб без ошибок. Можно порядок действий или совет какой-нить?! И вы мне так и не ответили на вопрос, нужно ли перед сборкой модулей убивать содержимое /lib/modules? Или это не обязательно?

makaveli lcf 22-07-2004 10:21 66383

просто я вам прокомментирую = все это модули ACPI (advanced power control interface если не ошибаюсьв )

ac - модуль проверки наличия питания от сети
battery - отвечает за аккумулятор ноутбуков
button - кнопки срежимов ожидания/выключения компьтора
fan - вентилятор
processor - различные дополнительные режимы работы процессора
thermal - температурные датчики

все это обычно собирается под ноутбук, чтобы организовать энергосберегающие режимы = на десктопах я не импользовал ничего кроме button (для выключения компа с помощью acpid нажатием кнопки питания - аналогично /sbin/shutdown -h now)

так что если вы действительно облегчаете ядро = то отключите все это = тем более на некоторых компах acpi вызывает сбои
можно кешно собрать ядро и с acpi, по-любому его можно отключить при загрузке
boot: Linux acpi=off

попробуйте собрать без поддержки acpi = потом пошагово добавите = главное получить рабочую конфигурацию ядра

Mr Dan 22-07-2004 11:56 66384

Одним из результатов инициативы OnNow является спецификация ACPI 1.0 (Advanced Configuration and Power Interface Version 1.0), которая определяет новый интерфейс между системной платой и BIOS, расширяющий данные Plug and Play путем включения управления электропитанием и других конфигурационных возможностей, осуществляемых под контролем операционной системы. Спецификация ACPI определяет новый интерфейс между операционной системой и компонентами компьютера, обеспечивающими поддержку Plug and Play и управления электропитанием. Это позволяет разработчикам реализовать целый диапазон функций Plug and Play и управления электропитанием для самых разных аппаратных платформ при использовании одного и того же драйвера операционной системы. Помимо этого, ACPI предоставляет общий механизм системных событий для Plug and Play и управления электропитанием.

Т.е. для десктопов это такая же необходимость как и для ноутбуков. Главное, чтобы системная плата поддерживала ACPI. Разве что battery действительно на десктопах вряд ли понадобится.

А тем более как я понимаю конфигурация ядра должна быть рабочей, так как при компиляции ядра ошибок не было. А вот при компиляции модулей выскакивают. :-(

Спасибо, буду пытаться дальше эксперементировать ;-)

makaveli lcf 23-07-2004 07:40 66385

могу сказать = что выбросив acpi  вы ничего не потеряете))) зато ядро собереться правильно

kosmik 12-08-2004 15:24 66386

:splat::splat::splat:ЛЮДИ!! ЛЮДИ!!!!:splat::splat::splat:

Веть прежде чем компилять ядро - скопируйте в его каталог дефаулт конфиг от текущей компиляции! Иначе при первом запуске make menuconfig - вы получите как-бы оптимизированный конфиг с кучей вырезанных и него модулей!

Далее, если в конфиге ядра прописано load all symbols from modules - немедленно убрать - иначем хрен скомпиляешь, а если и скомпиляешь - то не один модуль за грузится!

А далее уже сами думайте да хэлпы к пунктам читайте!!!
:dont:

Ge0rge 14-08-2004 11:51 66387

Скажи мне, любезный, а ты не забыл сделать mkinitrd для нового ядра, и прописать куда следует? Если ты собрал не монолитное ядро, то без этого оно у тебя вообще может уйти в kernel panic.

kosmik 17-08-2004 01:56 66388

2 SystemZ

Очевидно он забыл :)! Для ентого делается make install, который ЭТО и делает!
Очень хорошо make install дружит с grub!


Время: 08:10.

Время: 08:10.
© OSzone.net 2001-