реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Компиляция ядра LINUX, Ошибка при компиляции.
Илья_Антоненко
сообщение Feb 23 2007, 10:25
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 71
Регистрация: 4-08-06
Из: Санкт-Петербург
Пользователь №: 19 318



Всем доброго времени суток.

Помогите пожалуйста вот с какой проблемой. У меня стоит RED HAT на VMWare Workstation. Я попытался перекомпелировать ядро LINUX. Я скачал исходники ядра 2.6.20. Когда дошел до команды make bzImage началась компиляция, но заканчилась она не успешным завершением, а сообщением, которое приведено в приложенной картинке. Если кто-нибудь знает в чем дело подскажите пожалуйста.
Прикрепленные файлы
Прикрепленный файл  Linux_error.bmp ( 21.06 килобайт ) Кол-во скачиваний: 127
 
Go to the top of the page
 
+Quote Post
path_finder
сообщение Feb 23 2007, 16:02
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-01-05
Пользователь №: 2 260



скорее всего надо обновить bin-utils.
кстати в RH рекомендуется обновляться из rpm-ов.
Кстати, какая текущая версия ядра?
Go to the top of the page
 
+Quote Post
Илья_Антоненко
сообщение Feb 23 2007, 17:21
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 71
Регистрация: 4-08-06
Из: Санкт-Петербург
Пользователь №: 19 318



Текущая версия 2.4.20.
А обновляю таким образом, так как нужно сделать своеобразный загрузачный винчестер. Т.е. взять винчестер залить на него загрузчик и ядро, настроить соответствующим образом и подключить к системе с одним только BIOS, надо чтобы это все заработало. Вот я и хочу для начала скомпилировать ядро и посмотреть как загрузчик настраивается.

Можно еще в догонку вопрос. Ведь если скопировать просто образ ядра и настроить на него загрузчик(расположенный на винчестере), это работать не будет. Что еще нужно сделать, чтобы такая система начала жить?
Go to the top of the page
 
+Quote Post
forever failure
сообщение Feb 23 2007, 21:35
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Однако большой бубен, начальник. Переход с ветки 2.4 на 2.6 требует ещё кучу дополнетельных операций. Вам оно точно понадобилось, что б ядро было 2.6.20 ?
А может будет проще собрать самое свежее (по моему 2.4.32) ядро из 2.4 ветки ?

ЗЫ. Если просто скопировать сжатый образ в нужное место, и сделать на него ссылки в конфиге загрузчика, то это может и работать, при условии, что в ядре нет выгружаемых модулей. Если есть, то надо ещё и установливать модули.
Go to the top of the page
 
+Quote Post
Илья_Антоненко
сообщение Feb 24 2007, 08:01
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 71
Регистрация: 4-08-06
Из: Санкт-Петербург
Пользователь №: 19 318



Понял, отстал.
Будем компилеть 2.4.xx. Хотя надо будет почитать как на 2.6.хх перейти.
Go to the top of the page
 
+Quote Post
Damon
сообщение Feb 24 2007, 09:31
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 12-12-05
Пользователь №: 12 125



Цитата(Илья_Антоненко @ Feb 23 2007, 17:21) *
Ведь если скопировать просто образ ядра и настроить на него загрузчик(расположенный на винчестере), это работать не будет. Что еще нужно сделать, чтобы такая система начала жить?

Покури man initrd.

Для быстрого "въезда" можешь глянуть здесь: _http://posix.ru/distro/rip/

При загрузке initrd грузиться в память загрузчиком, как и ядро. Посему, смотри man на свой загрузчик. Если GRUB могу пример конфига кинуть.

Подробнее можно прочесть здесь: _http://www.opennet.ru/opennews/art.shtml?num=8017

В 2.6.х на смену initrd пришла новая фича -- initramfs. Интересна тем, что не блочное устр-во. Т.е. если файлы с initrd, как и с RAM-диска еще и дополнительно кешировались в памяти, то initramfs, как и tmpfs, фактически представляет собой "...по сути примонтированный кэш ядра." (_http://www.opennet.ru/opennews/art.shtml?num=7156). До кучи могут еще и в своп вытесняться, дополнительно освобождая память.

С inintrd у меня как-то не срослось (надобности ковырять небыло), а с initramfs сейчас себе роутер собрать пытаюсь. Чем понравилась именно initramfs -- ее образ (файл архива *.cpio), можно слинковать с ядром пири компиляции последнего. Т.е. при необходимости написания своего загрузчика задача упрощается -- надо будет грузить всего один файл, ядро, а уж оно там само разберется, что к чему.

Позабавило, что при использовании tmpfs, отпадает надобность в форматировании устройства (онож не блочное) и код остальных fs (ext2/3, reiser и т.д.) можно просто выкинуть из ядра.

Из последних достижений -- образ bzImage размером 645 килов. Это, вместе с прилинкованным образом initramfs. Правда, отключено все что можно, включая сеть, УСБи и пр...

PS. чуть не забыл. :-)
Поскольку экспериментирую с uClibc, для борки образа initramfs пользуюсь buildroot'ом. Должен быть на uClibc.org.
Go to the top of the page
 
+Quote Post
Илья_Антоненко
сообщение Feb 27 2007, 12:18
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 71
Регистрация: 4-08-06
Из: Санкт-Петербург
Пользователь №: 19 318



Да, именно с initrd у меня незадача и вышла.
Ядро я перекомпилил, вроде все нормально. Настраиваю Grub на работу с другим ядром, пишу ему
root .....
kernel.... root=....
initrd.....

Точных параметров не помню, все это дома, а я сейчас пишу с работы. Но общий смысл такой, после root= пишу тот раздел, где команда df олпределяет корневой каталог.
Далее перезагружаю, дохожу до момента загрузки, выбираю свое ядро, а дальше после некоторых шагов загрузки получаю kernel panic, связанный с тем, что не может примонтировать VFS. Предварительно сообщает, что патаметр root= задано не правильно. Честно говоря не знаю, что делать.

Может есть какой-нибудь совет, ну или ссылка где можно увеличить багаж знаний.
Go to the top of the page
 
+Quote Post
Damon
сообщение Feb 27 2007, 19:28
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 12-12-05
Пользователь №: 12 125



Цитата(Илья_Антоненко @ Feb 27 2007, 12:18) *
Может есть какой-нибудь совет, ну или ссылка где можно увеличить багаж знаний.

Я, когда у меня только начался интерес к процессу загрузки пингвина, ковырял Movix. Его initrd потрошил. Понравилось, как там определение оборудования сделано.

Цитата(Илья_Антоненко @ Feb 27 2007, 12:18) *
Далее перезагружаю, дохожу до момента загрузки, выбираю свое ядро, а дальше после некоторых шагов загрузки получаю kernel panic, связанный с тем, что не может примонтировать VFS. Предварительно сообщает, что патаметр root= задано не правильно. Честно говоря не знаю, что делать.

Здесь все просто. В initrd выполняется /initrc (кажется), который может быть скриптом. После выхода из него, ядро пытается примонтировать то, что было задано при компиляции или при загрузке с помощью опции root=... Если такового не существует, ведро впадает в панику. Вывод, здесь два варианта.
Первый описан в man initrd, и реализован в в различных дистрибах (в Movix'е в том числе), т.е. подгрузить модуль для дискового девайса и нужной fs и ядро потом само подмонтирует нужный раздел.
Второй, и наиболее простой, ИМХО, просто не выходить из /initrc...
Go to the top of the page
 
+Quote Post
Damon
сообщение Feb 27 2007, 19:50
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 12-12-05
Пользователь №: 12 125



Цитата(Илья_Антоненко @ Feb 27 2007, 12:18) *
Точных параметров не помню, все это дома, а я сейчас пишу с работы. Но общий смысл такой, после root= пишу тот раздел, где команда df олпределяет корневой каталог.

Упс... Пропустил мимо ушей... В продолжение предыдущего поста.
Не люблю гадать на кофейной гуще, но пара вопросов есть. Что у вас за винт/контроллер (SATA/PATA), есть ли поддержка сего в загружаемом ядре. Если скомпилена, то как? Модулем или вкомпилена, если модулем, то его и надо в initrd подгружать (для этого он и придуман ;-). Включена ли в ядре поддержка fs с данного раздела, опять, как она включена... Без всего этого ведро и будет в панику падать.

Сообщение отредактировал Damon - Feb 27 2007, 19:52
Go to the top of the page
 
+Quote Post
KirillS
сообщение Feb 28 2007, 14:30
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 10-10-06
Пользователь №: 21 161



Цитата(Илья_Антоненко @ Feb 27 2007, 11:18) *
Да, именно с initrd у меня незадача и вышла.
Ядро я перекомпилил, вроде все нормально. Настраиваю Grub на работу с другим ядром, пишу ему
root .....
kernel.... root=....
initrd.....

Точных параметров не помню, все это дома, а я сейчас пишу с работы. Но общий смысл такой, после root= пишу тот раздел, где команда df олпределяет корневой каталог.
Далее перезагружаю, дохожу до момента загрузки, выбираю свое ядро, а дальше после некоторых шагов загрузки получаю kernel panic, связанный с тем, что не может примонтировать VFS. Предварительно сообщает, что патаметр root= задано не правильно. Честно говоря не знаю, что делать.

Может есть какой-нибудь совет, ну или ссылка где можно увеличить багаж знаний.


В параметре root= задается девайс с которого загружается kernel. Например, root=/dev/ram rw .
Полезная ссылка - тут


--------------------
Some days you eat the bear. Some days the bear eats you.
Go to the top of the page
 
+Quote Post
PrSt
сообщение Mar 26 2007, 23:07
Сообщение #11


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата(KirillS @ Feb 28 2007, 14:30) *
В параметре root= задается девайс с которого загружается kernel. Например, root=/dev/ram rw .
Полезная ссылка - тут

кстати, может еще кому пригодится...
для начинающих - по ядру не плохо описано здесь - http://linux4u.jinr.ru/docs/add04/kernel-2...nstall-2.0.html


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 23:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.06107 секунд с 7
ELECTRONIX ©2004-2016