LINUX.ORG.RU

Сборка ядра


0

0

Нужна была русская документация по тому, как настраивать и собирать ядро в Linux.
Походил по инету и одна из первых вещей, которая попалась мне на глаза > "Настройка Linux (Slackware)" http://www.astro.spbu.ru/staff/dio/Linux/linux-handbook-5.html

Сделал, как там написано. У меня раньше все отлично собиралось, но тут удивился, что нужно что-то линковать, но сделал, как человек писал.

затем, попытался выполнить "make menuconfig" и увидел, что системе пипец:

make menuconfig
HOSTCC scripts/kconfig/mconf.o
In file included from /usr/include/asm/ioctls.h:4,
from /usr/include/bits/ioctls.h:24,
from /usr/include/sys/ioctl.h:27,
from scripts/kconfig/mconf.c:11:
/usr/include/asm/ioctl.h:1:31: asm-generic/ioctl.h: No such file or directory
In file included from /usr/include/linux/errno.h:4,
from /usr/include/bits/errno.h:25,
from /usr/include/errno.h:36,
from scripts/kconfig/mconf.c:14:
/usr/include/asm/errno.h:4:31: asm-generic/errno.h: No such file or directory
make[1]: *** [scripts/kconfig/mconf.o] Ошибка 1
make: *** [menuconfig] Ошибка 2

OS - Linux Slackware
исходники ядра 2.6.18.6
до этой доки, их же собирал и все было ок, за исключением диких тормозов.
По остальным докам, в инете, вообще, один обобщенные советы.

Как восстановить систему? Что нужно поправить? Где взять человеческую подробную документацию, по настройке ядра?

Пожалуйста, прошу помочь.

anonymous

kernel-headers стоят? что за дистрибутив?

anonymous
()
Ответ на: комментарий от anonymous

Вообще-то, точно помню, что стояли.

переустановил. reinstall installpkg не прокатила. Ответ был, что уже стоит пакет. переустановил, в общем.

В общем, как я понял, та дока не при чем. Попробую заново ею воспользоваться, коли вопрос был лишь про то, стоят или не стоят kernel-headersю

anonymous
()
Ответ на: комментарий от anonymous

ln -sf /usr/src/linux-<new_linux_release_number> /usr/src/linux
ln -sf /usr/src/linux/include/linux /usr/include/linux
ln -sf /usr/src/linux/include/asm /usr/include/asm
ln -sf /usr/src/linux/include/asm-generic /usr/include/asm-generic

cd /usr/src/linux-<new_linux_release_number>/include
ln -sf asm-i386 asm

и можешь kernel-headers не устанавливать

Reinventer
()
Ответ на: комментарий от Deleted

У кого есть линки на хорошую документацию по настройке самого ядра?

Не по сборке, а по настройке. стадия make menuconfig

anonymous
()
Ответ на: комментарий от anonymous

Система тормозит жутко. дело не в udma. проц не сильно занят

2 гига оперативы, но тормоза на i/o. Тяжело идут параллельные операции.

Хотелось бы легуости работы, как в win 6.0, когда копируешь с десяток гигатонн данных и параллельно спокойно и непринужденно есть возможность открыть любое приложение, без задержек.

еще проблема. В Gimp открыл одну фотку и ошибся при ресазинге на два значка. Память мгновенно стала полностью занятой и пошло дикое свопирование. свопинг шел около получаса. ctrl+alt+f2 не помог. отзыва не было. лишь шуршание свопа и все. лишь, когда все же довался до tty2 и убил Gimp - все нормализовалось. но ушло минут 40 на все про все.

как бороться с этим?

anonymous
()
Ответ на: комментарий от Deleted

> Хедеры ядра ДОЛЖНЫ стоять те, с которыми собраны glibc.

У меня не установлен пакет с заголовками, стоят те линки, которые я написал, ядро ванильное, последнее, glibc из slackware-current (очевидно компилились под 2.4). Все работает, все компилится.

Где возможны траблы?

Reinventer
()
Ответ на: комментарий от anonymous

man ulimit

-d The maximum size of a process's data segment. -s The maximum stack size. -t The maximum amount of cpu time in seconds. -v The maximum amount of virtual memory available to the process.

думаю сюда.

alexru ★★★★
()
Ответ на: комментарий от Reinventer

Пересобрал по http://www.linuxcenter.ru/lib/articles/system/kernel26_install.phtml

ядро. В итоге, вообще ппц. пишу из konqueror. Если жму backspace, то приходится ждать с секунд 20 отзыва. при чем, проц не нагружается.

какая-то мелочь..

та дока старенькая уже. 3 года почти прошло. многое добавлено...

плюс проблемы с i/o не исчезли. все те же тормоза при параллельных операциях

anonymous
()
Ответ на: комментарий от alexru

2 alexru

это все понятно..

ориентироваться на что? пример. не ключи блин. как объяснить-то.. ;)

а.. ладно. Ты меня не поймешь. Я тебя..

Честно. Я за все 5 лет ни разу манов не понимал, пока примера не видел. Потом - да. Очень полезная штука.

anonymous
()
Ответ на: комментарий от Reinventer

Почитай ядерную рассылку. Актуальные хедеры(текущего ядра) используются только для сборки ядерных модулей(а эти хедеры находятся в исходниках ядра и прекрасно подцепляются для сборки). Для всех остальных случаев в системе ДОЛЖНЫ стоять те хедеры, с которыми собраны glibc. Точка.

P.S. wine давно собирал? Он с версии 0.9.20 чтоли не собирался с актуальными ядерными хедерами, ругался на ошибку в joystick.h. Не знаю, вроде сейчас пофиксили.

Deleted
()
Ответ на: комментарий от Deleted

почитаю обязательно, но я пока что ни с какими проблемами не сталкивался wine собирал и 0.9.29 и 0.9.30 без проблем.

Reinventer
()

Подождите. Какие package, какие headers?

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
tar -xvf linux-2.6.20.tar.bz2
cd linux-2.6.20
make menuconfig
...
# Я обычно добавляю суффикс myversion, чтобы идентифицировать версию конфига
make bzImage modules modules_install
# Проверяем, чтобы в /lib/modules/ появилось 2.6.20-myversion
cp .config /boot/config-2.6.20-myversion
cp System.map /boot/System.map-2.6.20-myversion
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.20-myversion
vi /boot/grub/menu.lst
....

В чем проблема? Какие packages? Какие headers?

P. S.
1. У меня по факту стоит SuSe и Слака. /boot/grub/menu.lst я редактирую для SuSe.
2. Внимательней при апгрейде ядра. Очень часто теряются некоторые установки. Например при апгрейде с 2.6.19.2 до 2.6.20 теряются настройки ipfilter, просто надо еще раз проставить галочки.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

> В чем проблема? Какие packages? Какие headers?
Если у тебя в /usr/include/asm, /usr/include/asm-generic, /usr/include/linux не будет соответствующих заголовочных файлов, то у тебя даже make menuconfig не пройдет. Файлы, которые там лежат, входят в состав пакета kernal-headers

Reinventer
()
Ответ на: комментарий от anonymous

>Хотелось бы легуости работы, как в win 6.0, когда копируешь с десяток гигатонн данных и параллельно спокойно и непринужденно есть возможность открыть любое приложение, без задержек.

в винда автоматом увеличивает приоритет приложения, окно которого в настоящий момент в фокусе + в виндовом ядре есть штуковина, которая называется realtime preemtion (грубо говоря, это когда процесс имеющий более высокий приоритет может отобрать квант у процесса с более низким приоритетом, даже тогда, когда второй в данный момент работает в kernel mode. в результате очень сильно повышается скорость реакции системы и следовательно интерактивность естественно в ущерб общей производительности [например значительно увеличивается количество переключений контекста]). в линаксе realtime preemtion еще в нерабочем состоянии и потому не включена в майнстрим. однако в линаксе есть preemption - хотя и не realtime - т.е. многие операции процесса, работеющего в данный момент kernel mode (в основном i/o) непрерываемы. таким образом, чтобы немного сгладить проблему тормозов (точнее это проблема интерактивности) можно пересобрать ядро с Preemption Model = Preemptible kernel (Low-Latency Desktop) ( в секции Processor type and features ) и Timer frequency - 1000Hz.

можно конечно выкачать патчи (realtime preemtion) Ingo Molnar-а и собрать ядро с ними, однако по моему мнению - это нездоровое занятие.

удачи.

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