Вопрос
Как в RadHat 8.0 перекомпелиросать ядро на более новое? Я пытался его перекомпелировать, а толку никакого.
Ответ
Когда все устройства сконфигурированы, можно перейти непосредственно к этапу компилирования ядра.
Введите команду
# make dep
После завершения ее работы нужно ввести команду
# make bzImage
Если исходники ядра и компилятор установлены корректно, вы получите откомпилированное ядро. Обычно оно помещается в каталог
/usr/src/linux/arch/i386/boot
Теперь нужно откомпилировать модули, которые будут использоваться ядром
# make modules
И установить их
# make modules_install
Перед установкой модулей сделайте резервную копию модулей старого ядра (каталог /lib/modules)
Теперь можно ввести команду
# make install
для установки только что созданного ядра, однако я не рекомендую этого делать — сначала нужно протестировать наше ядро.
Откройте в любом редакторе файл /etc/lilo.conf
# vi /etc/lilo.conf
Добавьте следующие строки
image=/usr/src/linux/arch/i386/boot/bzImage
label=my_linux
root=/dev/hda5
append=" mem=128M"
read-only
Естественно, укажите свою корневую файловую систему и объем оперативной памяти.
Введите команду
# lilo
Теперь перезагрузите систему
# reboot
Попробуйте загрузить ядро. В случае возникновения ошибок вы всегда сможете загрузить старую версию.
Из конференции Expert_FAQ
Вопрос
Как определить, с поддержкой каких модулей собрано ядро?
Ответ
ls -l -R /lib/modules/`uname -r`/kernel
Выводятся все модули твоего ядра
Aleksey Samusenko
/usr/src/~linux/make oldconfig
Unknown
Вопрос
Как перекомпилировать ядро с поддержкой видеокарты geforce4 mx440? Я уже и так, и эдак редактировал xf86config-4 (который обрабатывается) — проблема, как я понял, не в нем. Такая штука в мандрейке, и в моем дебиане. Пока пользуюсь кноппиксом, установленым на хард, и обычным дебианом в консоли. MC установил, и то хорошо… Вообще желательно полный листинг — что набрать, куда щелкнуть, что потом с Lilo делать…
Ответ
Для перекомпиляции с поддержкой твоей карты заходишь в директорию /usr/src/linux т.е. туда, куда распакованы исходники твоего ядра запускаешь make config или make menuconfig или make xconfig(если компилишь под иксами), лучше конечно последние два варианта. Там в настройках видео находишь свою видюху, ставишь галочку сохраняешь изменения(полное описание настройки конфига ищи в нете или спроси у меня).
Далее набираешь:
make dep
make clean
make bzImage
make modules
make modules_install
В итоге в папке /usr/src/linux/arch/i386/boot лежит файл bzImage копирушь его в папку /boot с имненем папример vmlinuz.new
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz.new
затем редактируешь файл lilo.conf в папке /etc
Вот пример моего файла:
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda #загрузочный диск куда ставим lilo
message = /boot/boot_message.txt # сообщение выводимое при pагрузке lilo
prompt
timeout = 1200
vga = normal
# End LILO global section
# DOS bootable partition config begins
other = /dev/hda1
label = Win98
table = /dev/hda
# DOS bootable partition config ends
# Linux bootable partition config begins
image = /vmlinuz
root = /dev/hdb1
label = Linux
alias = nix
read-only
# Тебе в пригципе придется добавить только эту часть — ничего
# больше менять не надо
# Linux bootable partition config ends
image = /boot/vmlinuz.new
root = /dev/hda1 # Поставь правильно свой раздел
label = new.kernel
read-only
После сделанных изменений набираешь команду lilo, усе перезагружайся.
НО! Может оказаться что в ядро не в ключена поддержка твоей карточки, тогда идешь на сайт производителя скачиваешь драйвер читаешь README выполняешь то, что там написано, а затем компилишь ядро как уже было описано выше.
Из конференции Expert_FAQ
Вопрос
Как решить следующую проблему с компиляцией ядра. Даю команду:
# make bzImage
(перед этим, конечно, были выполнены 'make config', 'make dep')
Пишет:
gcc -Wall -Wstrict-prototypes -02 -fomit-frame-pointer -o
scripts/split-include script/split-include.c
make: *** No rule to make target `include/linux/autoconf.h`, needed by
`include/config/MARKER`. Stop.
и, ес-но, на этом процесс прерывается.
Версия ядра: 2.4.21rc7
Дистр: ALT Linux Master 2.2 обновленный из Сизифа
Ответ
Такое выдает, когда ты уже один раз пытался собрать ядро, но не довел дело до конца и пытаешься собрать повторно.
Надо файлики поудалять :) а лучше если ставишь из rpm
1. rpm -e kernel-source*
2. del /usr/src/linux-X.X.X
3. rpm -i kernel-source*
если из архива то п.2. а потом поновой распаковать
Правильно собирать ядро надо так
make config (или menuconfig, xconfig)
make dep
make clean
make bzImage
make modules
make modules_install
потом mv /usr/src/linux/arch/i386/boot/bzImage /boot/newkernel
потом правишь /etc/lilo.conf
потом lilo
Если не доходит до modules надо проверять что-то не так делаешь
Из конференции Expert_FAQ
Вопрос
Возникла проблема с установкой ALSA на ядро 2.4.9, делаю как написано: компилю ядро с поддержкой только звука, но без поддержки отдельных звуковух, компилю ALSA, и при загрузке вижу: soundcore.o: insmod failed, cannot find. Все сводится к тому, что файл не под это ядро, как побороть? Если не перекомпилировать, то вообще ничего не работает.
Ответ
Эта строка
soundcore.o: insmod failed, cannot find
означает, что нет такого файла soundcore.o А потому, что ядро, видимо, нужно было собирать с поддержкой модульного звука CONFIG_SOUND=m
Aleksey Samusenko
Вопрос
Что значит ядро «такое-то» и чем оно отличается от ядра с другим набором цифр в названии? Насколько я понял, версия дистрибутива каких-либо разработчиков с версией ядра мало как связана?
А что обеспечивает совместимость между разными дистрибутивами (если она существует) — версия ядра?
Ответ
Цифры, означающие ядро, — это его версия. Например, kernel-2.4.19 означает ядро стабильной ветки 2.4.х, подверсии 19. Есть еще всякие дописки означающие подверсии версий ядра.
Теперь про связь дистрибуторов и разработчиков ядра: в каждом дистрибутиве используется определенная версия ядра, которая может быть немного изменена разработчиками дистрибутива. Однако нет проблем поставить новое ядро на уже установленный дистрибутив. Совместимость между дистрибутивами обеспечивается вызовами ядра и стандартом POSIX. Даже при различии бинарных версий программ (в зависимости от компилятора), их всегда можно пересобрать под специфическую платформу, так как большинство программ идут в исходных кодах.
Андрей Черепанов
Нечетные подверсии часто экспериментальные. Четные — более надежны.
varnik
Copyright 2000-2004 Сообщество Чайников
Контактная информация