iantonenko 0 23 февраля, 2007 Опубликовано 23 февраля, 2007 · Жалоба Всем доброго времени суток. Помогите пожалуйста вот с какой проблемой. У меня стоит RED HAT на VMWare Workstation. Я попытался перекомпелировать ядро LINUX. Я скачал исходники ядра 2.6.20. Когда дошел до команды make bzImage началась компиляция, но заканчилась она не успешным завершением, а сообщением, которое приведено в приложенной картинке. Если кто-нибудь знает в чем дело подскажите пожалуйста. Linux_error.bmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
path_finder 0 23 февраля, 2007 Опубликовано 23 февраля, 2007 · Жалоба скорее всего надо обновить bin-utils. кстати в RH рекомендуется обновляться из rpm-ов. Кстати, какая текущая версия ядра? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iantonenko 0 23 февраля, 2007 Опубликовано 23 февраля, 2007 · Жалоба Текущая версия 2.4.20. А обновляю таким образом, так как нужно сделать своеобразный загрузачный винчестер. Т.е. взять винчестер залить на него загрузчик и ядро, настроить соответствующим образом и подключить к системе с одним только BIOS, надо чтобы это все заработало. Вот я и хочу для начала скомпилировать ядро и посмотреть как загрузчик настраивается. Можно еще в догонку вопрос. Ведь если скопировать просто образ ядра и настроить на него загрузчик(расположенный на винчестере), это работать не будет. Что еще нужно сделать, чтобы такая система начала жить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
forever failure 0 23 февраля, 2007 Опубликовано 23 февраля, 2007 · Жалоба Однако большой бубен, начальник. Переход с ветки 2.4 на 2.6 требует ещё кучу дополнетельных операций. Вам оно точно понадобилось, что б ядро было 2.6.20 ? А может будет проще собрать самое свежее (по моему 2.4.32) ядро из 2.4 ветки ? ЗЫ. Если просто скопировать сжатый образ в нужное место, и сделать на него ссылки в конфиге загрузчика, то это может и работать, при условии, что в ядре нет выгружаемых модулей. Если есть, то надо ещё и установливать модули. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iantonenko 0 24 февраля, 2007 Опубликовано 24 февраля, 2007 · Жалоба Понял, отстал. Будем компилеть 2.4.xx. Хотя надо будет почитать как на 2.6.хх перейти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Damon 0 24 февраля, 2007 Опубликовано 24 февраля, 2007 · Жалоба Ведь если скопировать просто образ ядра и настроить на него загрузчик(расположенный на винчестере), это работать не будет. Что еще нужно сделать, чтобы такая система начала жить? Покури 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iantonenko 0 27 февраля, 2007 Опубликовано 27 февраля, 2007 · Жалоба Да, именно с initrd у меня незадача и вышла. Ядро я перекомпилил, вроде все нормально. Настраиваю Grub на работу с другим ядром, пишу ему root ..... kernel.... root=.... initrd..... Точных параметров не помню, все это дома, а я сейчас пишу с работы. Но общий смысл такой, после root= пишу тот раздел, где команда df олпределяет корневой каталог. Далее перезагружаю, дохожу до момента загрузки, выбираю свое ядро, а дальше после некоторых шагов загрузки получаю kernel panic, связанный с тем, что не может примонтировать VFS. Предварительно сообщает, что патаметр root= задано не правильно. Честно говоря не знаю, что делать. Может есть какой-нибудь совет, ну или ссылка где можно увеличить багаж знаний. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Damon 0 27 февраля, 2007 Опубликовано 27 февраля, 2007 · Жалоба Может есть какой-нибудь совет, ну или ссылка где можно увеличить багаж знаний. Я, когда у меня только начался интерес к процессу загрузки пингвина, ковырял Movix. Его initrd потрошил. Понравилось, как там определение оборудования сделано. Далее перезагружаю, дохожу до момента загрузки, выбираю свое ядро, а дальше после некоторых шагов загрузки получаю kernel panic, связанный с тем, что не может примонтировать VFS. Предварительно сообщает, что патаметр root= задано не правильно. Честно говоря не знаю, что делать. Здесь все просто. В initrd выполняется /initrc (кажется), который может быть скриптом. После выхода из него, ядро пытается примонтировать то, что было задано при компиляции или при загрузке с помощью опции root=... Если такового не существует, ведро впадает в панику. Вывод, здесь два варианта. Первый описан в man initrd, и реализован в в различных дистрибах (в Movix'е в том числе), т.е. подгрузить модуль для дискового девайса и нужной fs и ядро потом само подмонтирует нужный раздел. Второй, и наиболее простой, ИМХО, просто не выходить из /initrc... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Damon 0 27 февраля, 2007 Опубликовано 27 февраля, 2007 (изменено) · Жалоба Точных параметров не помню, все это дома, а я сейчас пишу с работы. Но общий смысл такой, после root= пишу тот раздел, где команда df олпределяет корневой каталог. Упс... Пропустил мимо ушей... В продолжение предыдущего поста. Не люблю гадать на кофейной гуще, но пара вопросов есть. Что у вас за винт/контроллер (SATA/PATA), есть ли поддержка сего в загружаемом ядре. Если скомпилена, то как? Модулем или вкомпилена, если модулем, то его и надо в initrd подгружать (для этого он и придуман ;-). Включена ли в ядре поддержка fs с данного раздела, опять, как она включена... Без всего этого ведро и будет в панику падать. Изменено 27 февраля, 2007 пользователем Damon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
akivas 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба Да, именно с initrd у меня незадача и вышла. Ядро я перекомпилил, вроде все нормально. Настраиваю Grub на работу с другим ядром, пишу ему root ..... kernel.... root=.... initrd..... Точных параметров не помню, все это дома, а я сейчас пишу с работы. Но общий смысл такой, после root= пишу тот раздел, где команда df олпределяет корневой каталог. Далее перезагружаю, дохожу до момента загрузки, выбираю свое ядро, а дальше после некоторых шагов загрузки получаю kernel panic, связанный с тем, что не может примонтировать VFS. Предварительно сообщает, что патаметр root= задано не правильно. Честно говоря не знаю, что делать. Может есть какой-нибудь совет, ну или ссылка где можно увеличить багаж знаний. В параметре root= задается девайс с которого загружается kernel. Например, root=/dev/ram rw . Полезная ссылка - тут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 26 марта, 2007 Опубликовано 26 марта, 2007 · Жалоба В параметре root= задается девайс с которого загружается kernel. Например, root=/dev/ram rw . Полезная ссылка - тут кстати, может еще кому пригодится... для начинающих - по ядру не плохо описано здесь - http://linux4u.jinr.ru/docs/add04/kernel-2...nstall-2.0.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться