Перейти к содержанию
    

Компиляция ядра LINUX

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

 

Помогите пожалуйста вот с какой проблемой. У меня стоит RED HAT на VMWare Workstation. Я попытался перекомпелировать ядро LINUX. Я скачал исходники ядра 2.6.20. Когда дошел до команды make bzImage началась компиляция, но заканчилась она не успешным завершением, а сообщением, которое приведено в приложенной картинке. Если кто-нибудь знает в чем дело подскажите пожалуйста.

Linux_error.bmp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скорее всего надо обновить bin-utils.

кстати в RH рекомендуется обновляться из rpm-ов.

Кстати, какая текущая версия ядра?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Текущая версия 2.4.20.

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

 

Можно еще в догонку вопрос. Ведь если скопировать просто образ ядра и настроить на него загрузчик(расположенный на винчестере), это работать не будет. Что еще нужно сделать, чтобы такая система начала жить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А может будет проще собрать самое свежее (по моему 2.4.32) ядро из 2.4 ветки ?

 

ЗЫ. Если просто скопировать сжатый образ в нужное место, и сделать на него ссылки в конфиге загрузчика, то это может и работать, при условии, что в ядре нет выгружаемых модулей. Если есть, то надо ещё и установливать модули.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понял, отстал.

Будем компилеть 2.4.xx. Хотя надо будет почитать как на 2.6.хх перейти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ведь если скопировать просто образ ядра и настроить на него загрузчик(расположенный на винчестере), это работать не будет. Что еще нужно сделать, чтобы такая система начала жить?

Покури 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, именно с initrd у меня незадача и вышла.

Ядро я перекомпилил, вроде все нормально. Настраиваю Grub на работу с другим ядром, пишу ему

root .....

kernel.... root=....

initrd.....

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Здесь все просто. В initrd выполняется /initrc (кажется), который может быть скриптом. После выхода из него, ядро пытается примонтировать то, что было задано при компиляции или при загрузке с помощью опции root=... Если такового не существует, ведро впадает в панику. Вывод, здесь два варианта.

Первый описан в man initrd, и реализован в в различных дистрибах (в Movix'е в том числе), т.е. подгрузить модуль для дискового девайса и нужной fs и ядро потом само подмонтирует нужный раздел.

Второй, и наиболее простой, ИМХО, просто не выходить из /initrc...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Упс... Пропустил мимо ушей... В продолжение предыдущего поста.

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

Изменено пользователем Damon

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, именно с initrd у меня незадача и вышла.

Ядро я перекомпилил, вроде все нормально. Настраиваю Grub на работу с другим ядром, пишу ему

root .....

kernel.... root=....

initrd.....

 

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

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

 

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

 

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

Полезная ссылка - тут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Полезная ссылка - тут

кстати, может еще кому пригодится...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...