LINUX.ORG.RU

сборка ядра Fedora 14,не могу..


0

1

Потребовалось пересобрать kernel-2.6.35.fc14 на ноутбуке,в виду того что acpi_cpufreq работает странно,а speedstep-centrino в дефолтном ядре отсутствует.Сделал все по инструкции,все собралось и установилось,но пропали все изменения сделанные make menconfig. ( Cам .config ничем ни отличается от старого /boot/config-2.6.35.11-83.fc14.i686 ).Пробовал еще - результат тот же. Ничего не понимаю.Что я упустил? Из любви к искусству пересобрал на другом ноуте kernel-2.6.35.x86_64.fc14,все получилось с превого раза.


Имхо,дело в kernel.spec,файл .config заменяется дефолтным после запуска rpmbuild .Вот же не было печали... :)

dusia
() автор топика

>make menconfig

так то make menuconfig

походу ты не умеешь компилить! Линукс для домохозяек - компилируем ядро! (это запрос в гугл)

ipwww ★★
()
Ответ на: комментарий от ipwww

Ну дык ясен пень,что menconfig это menuconfig.Очевидно же. Сохранял файл .config разумеется.Перед rpmbuild он какой и должен быть,с изменениями,почти в самом начале процесса файл .config заменяется на дефолтные настройки,видно в less.Смотрел diff .config это копия дефолтного из /boot.Собственно как-то так и предусмотрено зачем-то в kernel.spec,насколько я понял.Думал может уже кто сталкивался с такой штукой.Попробовал заменить на свой файлы:

rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686/configs/kernel-2.6.35.11-i686.config.old

rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686/configs/kernel-2.6.35.11-i686.config/configs/kernel--2.6.35.i686.config

Бесполезно.В rpmbuild/SORUCES/ файлы как и положено,сохраняются копии моего .config.

dusia
() автор топика
Ответ на: комментарий от dusia

Черт,эти менял:

rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686/.config.old

rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686/configs/kernel-2.6.35.11-i686.config

anonymous
()

Вероятно, Вам сюда. Рекомендую перечитать полностью трэд по ссылке. Там как раз на эту тему народ «рассусоливает». Если что, там и воркэраунд есть (грубо говоря, хак). Но у меня с первого раза получилось без воркэраунда.

carasin ★★★★★
()
Ответ на: комментарий от carasin

Большое спасибо.Действительно,по ссылке вроде моя проблемка.Начал читать,инструкция по сборке которая там приведена это перевод той по которой я собирал.Как я заметил,получается такое:после запуска rpmbuild мой .conifg удаляется и через некоторое время кладется дефолтный,по которому и идет сборка.

dusia
() автор топика
Ответ на: комментарий от carasin

> Но у меня с первого раза получилось без воркэраунда.

С таким же ядром но x86_64 на другом ноутбуке пресобрал с первого раза.

dusia
() автор топика
Ответ на: комментарий от dusia

Там в конце трэда написано объяснение этой проблемы. Дело в том, что свой конфиг нужно копировать в соответствующую директорию под именем уже существующего файла. То есть, допустим, если в make menuconfig выставлен параметр «использовать до 64 ГБ оперативки», то конфиг должен заменить собой файл с нгазванием ...-PAE (естесственно, сохранив его название). И т.д. и т.п.. Если скопировать свой конфиг в эту директорию под собственным уникальным именем (придуманным Вами, например), то будет использован дефолтный конфиг.

carasin ★★★★★
()
Ответ на: комментарий от carasin

> Дело в том, что свой конфиг нужно копировать в соответствующую директорию под именем уже существующего файла.

Соответсвующая директория в данном случае /usr/src/kernels/2.6.35.11-83.fc14.i686.В инструкции об этом ни слова,да и с ядром x86_64 все собралось без лишних телодвижений. Делал резервную копию системы и потом пробовал собирать и собственным именем и с дефолтным.Результат был один и тот же,.сonfig заменялся.Тред по ссылке прочел,сделал как там советуют.Кстати, можно то же самое и немного по другому,суть-менять то,чего менять вроде как не нужно,да и возможно только под root.В моем kernel.spec для x86 c какой-то неясной целью прописана замена .config на конфиг из /usr/src/kernels/2.6.35.11-83.fc14.i686/ Причем, насколько помню, этот файл я тоже пробовал менять на свой,т.е. он тоже перезаписывался в процессе rpmbuild.(хотя может и ошибаюсь).Общий итог - сборка пошла с нужным конфигом,времени ждать окончания не было,только проверил что конфиг не заменен.

dusia
() автор топика
Ответ на: комментарий от dusia

Сам пакет kernel***src.rpm устанавливать не было необходимости, вся сборка производится в домашнем каталоге, в директории rpmbuild. Я делал всё по инструкции - получилось с первого раза без дополнительных шаманств.

carasin ★★★★★
()
Ответ на: комментарий от carasin

>Cам пакет kernel***src.rpm устанавливать не было необходимости

Это как так?

>Я делал всё по инструкции

Пункт четвертый инструкции Building a custom kernel From FedoraProject:

Install kernel-<version>.src.rpm with the following command:

rpm -Uvh kernel-<version>.src.rpm

Конечно,я тоже собирал всё в rpmbuild в домашней директории,потом уже попробовал под root в /root.Вы собирали ядро x86 или x86_64?

dusia
() автор топика
Ответ на: комментарий от dusia

Я собирал PAE-ядро версии 2.6.37-2 с задействованием собственного кастомного DSDT и оптимизацией под Intel Atom. За исходный config (при конфигурации в make menuconfig) брал тот, что шёл с изначальным 2.6.37-2, а потом правил уже его.
А по поводу приведённой Вами цитаты из инструкции:

Читаем дальше...

Эта команда запишет содержимое rpm-пакета в ${HOME}/rpmbuild/SOURCES and ${HOME}/rpmbuild/SPECS, где ${HOME} это ваш домашний каталог.

carasin ★★★★★
()
Ответ на: комментарий от carasin

Мы с Вами об одном и том же но разными словами..:) Команда rpm -Uvh kernel-<version> вводится от того кто собственно и собирает.Я собирал под юзером,делал rpm под юзером,не собиралось как положено,из интереса пробовал и под root,соотвественно делал под rpm -Uvh под root,собирал в /root/rpmbuild. За основу я брал файл config-2.6.35.11-83.fc14.i686 из /boot,он для того же ядра,копировал его в rpmbuild/BUILD/kernel<...>/linux<..>/.config и в нем уже делал изменения make menuconfig. Черт его знает в чем причина постоянной замены .config на дефолтный при сборке ядра i686,не очень охота ковырять kernel.spec.Возможно для ядра PAE замена .config не производится,или производится правильно,в отличии от ядра i686.

dusia
() автор топика
Ответ на: комментарий от carasin

ЗЫ.Хотите,сами попробуйте.;)Возьмите за основу файл для i686 (не PAE),cкопируйте в ~/rpmbuild/BUILD/kernel<..>/linux<..>/.config,там же make menuconfig,cd ~/rpmbuild/SPECS/,make -bb --with baseonly --with firmware --without debuginfo --target=`uname -m` kernel.spec

less ~/rpmbuild/BUILD/kernel<..>/linux<..>/.conig

anonymous
()
Ответ на: комментарий от dusia

Можно сделать воркэраунд. Вне зависимости от того, задаётся ли в make menuconfig параметр, отвечающий за сборку PAE-ядра, при непосредственно сборке и формировании пакетов ядра будут образованы и i686, и PAE пакеты. То есть можно активировать параметр «использовать до 64 ГБ оперативки», заменить получившимся конфигом файлик, соответствующий PAE-ядру, запустить сборку и использовать потом те пакеты, которые собрались для i686. Хак, конечно, но у меня нормально собрались и PAE, и i686.
Ещё есть предложение создать два почти одинаковых конфига (так сказать, для верности), отличающихся лишь тем, что в одном задействовано PAE, а в другом - нет. Заменить ими соответствующие дефолтные файлики. А во всём остальном действовать по инструкции.
Как-то так.

carasin ★★★★★
()
Ответ на: комментарий от carasin

У меня PAE не собирались.Точнее не во всех случаях собирались.

rpmbuild -bb baseonly (Извиняюсь за описку в предыдущем посте «make -bb --with baseonly») Будет время соберу себе i686 (c исправленым kernel.spec) и заодно попробую посмотреть как там с ядром PAE (с неисправленым kernel.spec).Вообще же,все это нужно смотреть в kernel.spec,там прописано достаточно манипуляций с конфигами для всех архитектур.

«использовать до 64 ГБ оперативки»

Оно:# CONFIG_HIGHMEM64G is not set ? Это из моего .сonfig

dusia
() автор топика
Ответ на: комментарий от dusia

dusia

Оно:# CONFIG_HIGHMEM64G is not set ? Это из моего .сonfig

Скорее всего, да. Я через make menuconfig делал.

carasin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.