Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Компиляция ядра Linux

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот ситуация - скомпилил ядро. Все вроде сделал по правилам.

Код:
make menuconfig
make dep
make bzImage
make modules
make modules_install

Скопировал ядро в /boot/vmlinuz-2.4.20smp. Запускаю lilo (ессно подправив перед этим lilo.conf). Вроде все прошло нормально. Однако при загрузке выдает LIL-. Как быть?  


----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 18:47 17-06-2003
polux



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
некорректно записана информация в мбр или в начало раздела(не знаю как там у тебя), попробую сделать lilo -v, должно появиться сообщение об ошибках...

Всего записей: 158 | Зарегистр. 23-02-2003 | Отправлено: 08:54 18-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
polux
тек-с... лило заработало - написал lilo -m /dev/sda.
Только теперь новая проблема - скомпиленное ядро не грузицца. При загрузке выдает
Код:
Kernel panic: VFS: unable to mount root fs on 08:03

Пробовал писать root=/dev/sda, толку ноль. Что с этим делать?

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 21:45 20-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EndoR
 

Цитата:
Kernel panic: VFS: unable to mount root fs on 08:03  
 
Пробовал писать root=/dev/sda, толку ноль. Что с этим делать?  

 
Кернел (ядро) не может смонтировать рут раздел. Ты его ему неправильно указал в fstab
 
 
 
Добавлено

Цитата:
Пробовал писать root=/dev/sda, толку ноль. Что с этим делать?  

 
Перебирать варианты, пока не загрузится.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 21:48 20-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx

Цитата:
Перебирать варианты

Имхо, не самый лучший вариант. Система у меня разбита так:

Код:
/dev/sda1      /boot
/dev/sda2      swap
/dev/sda3      /
 

Предыдущая система грузится на ура.

Цитата:
Кернел (ядро) не может смонтировать рут раздел

это я понимаю

Цитата:
Ты его ему неправильно указал в fstab  

LABEL=/                /             ext3         defaults      1  1
это в моем fstab. Что тут неправильно?

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 22:19 20-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
EndoR
Это потому, что драйвер твоего Promise RAID адаптера отсутствует в /boot/initrd для ядра 2.4.20.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 00:00 21-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum
так ведь можно вроде систему запускать при отсутствии initrd... или я неправ?
 
Добавлено
ooptimum
Кстать...  в /lib моего initrd-2.4.20smp.img есть FastTrak.o. Наскока я понимаю, это и есть тот самый драйвер Promise RAID?

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 13:30 21-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
EndoR

Цитата:
так ведь можно вроде систему запускать при отсутствии initrd... или я неправ?

Можно, если система мрожет работать со всеми устройствами без загрузки внешних модулей. А в данном случае драйвер FastTrak в ядре отсутствует и поэтому его надо откуда-то загрузить. Загрузить его из /lib/modules/... нельзя, т.к., собственно, сама файловая система "/" недоступна. Для доступа к диску нам надо загрузить модуль, для загрузки модуля нужен доступ к диску -- порочный круг. Для решения подобных проблем и придумали механизм initrd.

Цитата:
в /lib моего initrd-2.4.20smp.img есть FastTrak.o. Наскока я понимаю, это и есть тот самый драйвер Promise RAID?

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

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 17:48 21-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum

Цитата:
 Для решения подобных проблем и придумали механизм initrd.  

внятно объяснил

Цитата:
Тебе надо создавать свой новый initrd именно для твоего нового ядра, включая модуль FastTrak, скомпилированный именно для этого ядра.  

ээ..  mod_scsi нужен, так? чтоб система могла грузицца с /dev/sda, да?

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 18:24 21-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
mod_scsi нужен, так? чтоб система могла грузицца с /dev/sda, да?

Поддержка scsi должна быть либо в ядре, либо в виде модуля. Если она в виде модуля, то для загрузки со scsi устройств (или того, что выглядит как scsi устройство, как в случае FastTrak IDE RAID) этот модуль должен быть в initrd.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 19:52 21-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum
делаю
Код:
mkinitrd --with=/lib/modules/2.4.18-3smp/kernel/drivers/scsi/FastTrak.o /boot/initrd-2.4.20smp.img 2.4.20smp

как побороть при этом: No module FastTrak found for kernel 2.4.20smp?
Даже когда слил сырцы этого драйвера, скомпилил и написал путь к новому FastTrak.o, то же самое...

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 14:32 23-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ты должен компилировать модуль используя исходники того ядра, под которым он потом будет запускаться. Посмотри в сырцах модуля IMHO есть README файл, имеющий в числе прочего и примеры, как надо make запускать. Там есть параметр у make'а, указывающий где лежат сырцы ядра под которое компилируешь. Но я его имя никак не вспомню что-то, а посмотреть сейчас негде.

Цитата:
mkinitrd --with=/lib/modules/2.4.18-3smp/kernel/drivers/scsi/FastTrak.o /boot/initrd-2.4.20smp.img 2.4.20smp  

Я тебе об это ранее так и писал, что модуль от 2.4.18 под 2.4.20 не пойдет. В общем, читай выше внимательно.

----------
Голосуем за наших людей.
Номер раз.
Номер два.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 08:08 24-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum

Цитата:
 Там есть параметр у make'а, указывающий где лежат сырцы ядра под которое компилируешь. Но я его имя никак не вспомню что-то, а посмотреть сейчас негде.  

есть такое там. еще есть указание архитектуры, под которо компилишь. все это я указал. Все равно говорит то же самое.

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 18:59 24-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ты что-то делаешь не так, тебе не кажется?

Цитата:
Все равно говорит то же самое.

"то же самое" -- это что именно?


----------
Голосуем за наших людей.
Номер раз.
Номер два.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 08:07 25-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum

Цитата:
"то же самое" -- это что именно?  

это опять выводит:

Цитата:
No module FastTrak found for kernel 2.4.20smp?  

По пунктам описываю, что я делаю:
 - компилю FastTrak (в make-файле путь указывает на /usr/src/linux, а архитектура -  INDEP386)
 - кидаю полученный FastTrak.o в /lib/modules/2.4.20smp/kernel/drivers/scsi
 - захожу в /usr/src/linux
 - make menuconfig
 - make dep
 - make bzImage
 - make modules
 - make module_install
 - mkinitrd --with=/lib/modules/2.4.20smp/kernel/drivers/scsi/FastTrak.o /boot/initrd-2.4.20smp.img 2.4.20smp
...и получаю:

Цитата:
No module FastTrak found for kernel 2.4.20smp

вот собссно...

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 16:26 25-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
в make-файле путь указывает на /usr/src/linux

Действительно. С чего я взял, что там это настраивается? А, знаю... С другим модулем спутал.
К делу... А ты уверен, что /usr/src/linux указывает на сырцы 20-го ядра?

Цитата:
make menuconfig
...

А нафига, собссно? Надо было компилировать только этот конкретный модуль, а не все ядро. Или ты только для mkinitrd? О... как все запущено-то. Руками ты initrd создать не в состоянии? Описываю:
1. Берешь текущий initrd (тот, который тебе система создала при установке) и копируешь его в свой ~: `cp /boot/initrd.gz ~`;
2. Распаковываешь ~/initrd.gz: `cd, gzip -d initrd.gz`;
3. Создаешь временную папку: `md tmp`;
4. Читеришь: `su`;
5. Монтируешь ~/initrd в ~/tmp: `mount -t ext2 -o loop initrd tmp`
6. Компилируешь FastTrak.o под свое новое ядро (2.4.20smp).
7. Копируешь FastTrak.o в свой смонтированный initrd: `cp FastTrak.o tmp/lib/modules/2.4.20smp/kernel/drivers/scsi`;
8. Проверяешь tmp/linuxrc на присутствие там строки "insmod FastTrak". Если ее нет, то добавляешь.
9. Размонтируешь свой initrd: `umount tmp`;
10. Удаляешь временную папку: `rd tmp`;
11. Пакуешь новый initrd: `gzip initrd`;
12. Переносишь новый initrd на его законное место: `mv initrd.gz /boot/initrd.2.40.20smp`;
13. Правишь /etc/lilo.conf на предмет наличия строки "initrd=/boot/initrd.2.40.20smp" в секции с твоим новым ядром;
14. `lilo`;
15. C-A-D или как ты там перегружаешься...
Все.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 22:51 25-06-2003
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EndoR

Цитата:
Пробовал писать root=/dev/sda, толку ноль. Что с этим делать?

А root=/dev/sda3?

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 07:38 26-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum
ты смотрел, что я выше писал? то, что ты написал я уже сделал. это не работает. Есть правда один момент - как скомпилить FastTrak под ядро? Я подправил make и скомпилил - не заработало.
f_serg
с этим уже разобрался. там проблемка с лило была.

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 17:51 27-06-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Есть правда один момент - как скомпилить FastTrak под ядро?

/usr/src/linux во всех нормальных дистрибутивах -- линк на каталог с сырцами ядра. Почему бы тебе не изменить этот линк так, чтобы он указывал на нужный тебе каталог?
Цитата:
то, что ты написал я уже сделал. это не работает

Я читал, что делал mkinitrd, а не то, что я тебе написал. Так...

Цитата:
No module FastTrak found for kernel 2.4.20smp

А ты, собссно, после того, как

Цитата:
кидаю полученный FastTrak.o в /lib/modules/2.4.20smp/kernel/drivers/scsi

`depmod -a` делал? Нет. Да даже если и делал, то зависимости для текущего ядра обновятся, а не для того, какого надо. Так что только руками, батенька, ручками... В общем, еще раз читай мой предыдущий пост и выполняй по пунктам, с соблюдением всех знаков пунктуации... Я этот список, специально для тебя писанный, вчера еще раз проверял. Подошло время ядро обновить, вот и выдался случай. Так что проверено, мин нет. А я умываю руки. Убеждать надоело...

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 22:40 27-06-2003
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
тек-с...  ясно. никто толком не может по порядку объяснить
ooptimum

Цитата:
depmod -a` делал? Нет

это отсутствует в твоем списке. Также неясно вот это

Цитата:
6. Компилируешь FastTrak.o под свое новое ядро (2.4.20smp).  

Как это делать? В make нет указания версии ядра.

----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 14:30 30-06-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Операционные системы » UNIX » Компиляция ядра Linux


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru