Компьютерный форум 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=14362)

Andro 21-06-2002 08:17 77412

Для поддержки нового пишущего сидюка мне пришлось перекомпилить ядро. Я положил его на дискету, перегрузил с ним машину. Худо-бедно система завелась, писалка заработала. Потом я зделал так:
make dep
make bzImage
make modules
make modules_install
make bzlilo
 И новое ядро, по идее, должно было установиться в системе, заместо старого. Система, действительно, чем-то шмыгала, ни на что не ругалась. Но новое ядро не положила, так как моих изменений после перезагрузке не оказалось. несколько попыток ни к чему не привели. Не ставится новое ядро и все. Может быть, кто-нибудь знает в чем дело? Неохота каждый раз перегружаться с дискеты, чтобы записать диск.

Dimon 21-06-2002 21:51 77413

Попробуй вместо make bzlilo набрать  make install - тогда ядро установится и пропишет себя в загрузчик

Andro 22-06-2002 11:02 77414

лБЛ С РПОЙНБА, make install - ЬФП ФП ЦЕ УБНПЕ, ЮФП Й bzlilo, ФПМШЛП РПУМЕ ХУФБОПЧЛЙ СДТБ ОЕ ЪБРХУЛБЕФ lilo. фБЛ Ч ЮЕН ЦЕ ТБЪОЙГБ?

Barracuda 26-06-2002 15:52 77415

Бррр!
Ну, во-первых, какой Линукс и какое ядро(вопрос бессмысленный, но всё же)?
Вот строчка, которую я обычно выполняю (опять же - на любителя):
make mrproper && make menuconfig && make dep && make clean && make bzImage && make modules && make modules_install
А вот далее предпочитаю делать всё ручками. В каталоге "/<где_исходники_ядра>/linux/arch/i386/boot" есть файлик "bzImage". Скопируй его в "vmlinuz-2.4.18-55" к примеру и перенеси получившийся файл в каталог "/boot" . Только смотри, не замочи рабочее ядро. В целях сохранности системы лучше его не трогать. Затем в "/<где_исходники_ядра>/linux/" скопируй файл "System.map" в "System.map-2.4.18-55" (тоже, к примеру, но версии в именах "vmlinuz" и " System.map" должны совпадать) а потом снеси полученный файл в "/boot". Каталог "/boot", будет выглядеть гле-то так:

./
../
System.map@
System.map-2.2.21-3
System.map-2.2.5-15
boot.0300
boot.b
chain.b
map
module-info@
module-info-2.2.5-15
os2_d.b
vmlinux-2.2.5-15*
vmlinuz@
vmlinuz-2.2.21-3
vmlinuz-2.2.5-15

Кстати, а какой у тебя boot-loader.
Если GRUB, то там никакой мороки, просто допиши по аналогии несколько строк с указанием нового имени ядра (всё остальное оставь без изменений). Только надо ДОБАВИТЬ эти строки, а не исправлять имеющиеся - опять же, из соображений сохранности системы, чтобы, в случае обвала, её можно было загрузить. Да, и не забудь поменять строчку "label", указав в ней новое имя системы (ну, например, "new"). Перегружайся и, как говорится, have fun.
Для LILO, в принципе, должно хватать "make install", однако лучше всё сделать ручками - надёжнее. После того, как файлы скопированы в "/boot", поправь файл "/etc/lilo.conf", так же ДОБАВИВ в него по аналогии строчки для загрузки новой версии. Получится что-то вроде:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
default=mod
timeout=40
image=/boot/vmlinuz-2.2.5-15
label=base
root=/dev/hda1
read-only
image=/boot/vmlinuz-2.2.21-3
label=mod
root=/dev/hda1
read-only

Здесь "base" - то, что в начале называлось "linux" (я его переименовал для своего удовства), а "mod" - новое ядро.
Затем запусти "/sbin/lilo" - он пропишет новую конфигурацию. Если у тебя используется бут-сектор для загрузки через WinNT/2000/XP, то запиши его через "dd if=/dev/<где_сидит_LILO> bs=512 count=1 of=/root/bootsect.lnx" и снеси его на Win раздел в загрузочную область.
Вот, вроде бы, и всё.

Andro 02-07-2002 07:08 77416

После совета уважаемого Seg Rendol кое-что уже начало получаться. Новая бага такая - при перезагрузке с новым ядром появляется буковка L (вместо LILO) и все глохнет. Это связано с дисковой геометрией, но я ее не трогал. И старое ядро не имеет ничего против нее (геометрии). В чем может быть бага?


А победа была так близко...

Barracuda 02-07-2002 17:09 77417

Читаю книжку, и нахожу, что появление одной буквы "L" указывает на то, что (доыловно) " ... the first stage boot loader has been loaded and started, but it can't load the second stage boot loader ...". Если я правильно понял сию белиберду, то часть, которая находится в бут-секторе  (512 байт) он загрузил и выполнил, однако ту часть, которую он собирается читать с диска (boot.b) он прочитать не смог.
Вопрос следующий: а где, собственно говоря, находистя у тебя раздел, с которого грузится Linux (имеется ввиду, "/boot" или корень, в котором должен находится этот каталог). Тут фича в том, что возможно, при загрузке с дискеты, никаких траблов. Если у тебя загрузочный раздел "разлёгся" за пределами 1024-го цилиндра, тоды - траблы. Он (LILO) не очень то дружит с этим. У меня была такая же хрень. Выход я увидел в следующем: "откуси" от первого раздела 32 Mb в самом начале и помести туда раздел "/boot" (если нужна метода, как это сделать - пиши письмо, а то мои посты и так очень длинные). А всё остальное может остаться там, где и сидит.

Andro 04-07-2002 07:19 77418

Беда в том, что /boot стоит у меня отдельным разделом как раз в начале диска. Так что проблема не в этом. И что делать - не понятно.

ramms 05-07-2002 05:30 77419

было у меня такое =)
чинил так:
загрузился с загр.дискеты винды и запустил fdisk /mbr      //т.о. вынес лило из МБР

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

всё должно работать , можешь дальше продолжать опыты =)

Andro 05-07-2002 08:38 77420

Честно говоря, ставить такие эксперименты я не могу, так как эта машина - расчетный сервер у меня на работе. Ее простой невозможен, а здесь олн непременно будет. Такой способ вряд ли поможет. Но за совет - спасибо

Barracuda 05-07-2002 17:45 77421

СТОП! Такие эксперименты для рабочей машины не годятся.
Andro? А ты откуда (расчёты, енто интересно).
Ты можешь загрузит родное ядро? Свяжись по аське, могет в режиме on-line чего-то придумаем (номер смотри в моём профиле)...

[s]Исправлено: Barracuda, 18:51 5-07-2002[/s]

mioni 06-07-2002 08:52 77422

Andro, а каким размером у тебя /boot? Когда у меня он был большим, то были такие же траблы, урезал, все запахало.

Andro 07-07-2002 08:59 77423

Спасибо всем. Честно говоря, возиться дальше у меня нет времени. А пишущий сидюк (ради которого ядро и пересобиралось) я итак уже прикрутил.
Кстати, когда пытаешься настраивать будущее ядро - какие настройки там уже стоят? Как я понимаю это настройки далеко не текущего ядра.

Barracuda 07-07-2002 20:34 77424

mioni
А к чему большлй "/boot" - 32 Мб хватит по-уши (16 Мб - рекомендуемый), ведь размер ядра не более 2 Мб плюс всякая фигня, ну на 5 Мб максимум. Парочка другая ядер займёт всего метров десять. И всё.
Кстати
Andro
а какой у тебя тип файловой системы на "/boot"?

Andro 08-07-2002 07:24 77425

У меня там ext2, а размер /boot точно не помню. Мегов что-то около 500

mioni 08-07-2002 10:58 77426

to Andro: не великоват /boot то? Правильно Barracuda говорит, 30 мегов хватает выше крыши. Попробуй уменьшить /boot до мегов 30, может поможет.

Barracuda 08-07-2002 17:36 77427

mioni
Угу, дофига будет.
Одного я ни как не пойму - что-то Andro у тебя не всё в порядке, посмотри внимательно в "/etc/fstab" и конфиг LILO. После его переустановки всё должно пофиксится. Попробуй загрузиться с родным ядром, проверь конфиги и перпиши лило в бут-сектор (просто запусти "lilo"). Я перекраивал диски, после чего грузился в режим инсталляции но ничего не ставил, монтировал получившиеся диски, правил конфиги, после чего переписывал LILO и всё работало.:confused:
Andro выложи конфиги:
/etc/fstab
конфиг LILO
раскладку диска


[s]Исправлено: Barracuda, 18:41 8-07-2002[/s]

Ge0rge 01-03-2003 18:07 77428

хммммм, делаю всё по описанию Barracuda, пробую на дистрибутиве Redhat7.3, все make прошли без проблем, (что

странно - точно то же делал на Redhat8.0 и на make modules вылетали ошибки!), дописываю в grub.conf новое ядро

по аналогии со старым (кстати, я не нашел в info ничего про параметр initrd=, откуда брать и что это за образ

initrd-2.4.18-3.img?) и при загрузке на новом ядре наблюдаю облом следующего содержания:

kmod: failed to exec /sbin/modprobe -s -k block-major-8, errno=2
VFS:cannot open root device sda1 or 08:01    
please append a correct "root=" boot option
kernel panic: VFS: unable to mount root fs on on 08:01


Что я опять не так сделал?

Enzo Matrix 25-04-2003 21:06 77429

Не компилируется ядро 2.2.18 и 2.4.2, у меня Mandrake RE Spring 2001, gcc 2.96 ядро
2.2.18, glibc 2.2.2
Выдаёт:

[root@enzo linux]# make install
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/split-include scripts/split-include.c
In file included from /usr/include/errno.h:36,
from scripts/split-include.c:26:
/usr/include/bits/errno.h:25:26: linux/errno.h: No such file or directory
make: *** [scripts/split-include] Ошибка 1

Может кто объянит в чём дело?


Время: 16:58.

Время: 16:58.
© OSzone.net 2001-