Сборка ядра (make или make rpm ?)

openSUSE, SUSE Linux Enterprise

Модератор: Модераторы разделов

Аватара пользователя
vovanvster
Сообщения: 266
ОС: Gentoo-x86_64

Сборка ядра

Сообщение vovanvster »

Вопросик появился... В ридми сырца для SUSE написано:
make
make install
make modules_install

А в руководстве 'Сборка_ядра_Linux_-_SuSE_метод' по другому:
make rpm

и всё. Получается что в 'SuSE_метод' модули сами установятся ?
Как всётаки правильно ?
Спасибо сказали:
mechanic_ru
Сообщения: 244
ОС: openSUSE 11.0

Re: Сборка ядра

Сообщение mechanic_ru »

а зачем четыре одинаковых темы плодить то?
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Сборка ядра

Сообщение Olegator »

зачем вы собираете ядро? какие цели приследуете?
Спасибо сказали:
Аватара пользователя
vovanvster
Сообщения: 266
ОС: Gentoo-x86_64

Re: Сборка ядра

Сообщение vovanvster »

mechanic_ru писал(а):
17.10.2008 22:21
а зачем четыре одинаковых темы плодить то?

Инет глюкнул

Olegator писал(а):
17.10.2008 22:23
зачем вы собираете ядро? какие цели приследуете?

Да какая разница ? По делу-то есть что ?
Спасибо сказали:
Аватара пользователя
mvt
Сообщения: 734

Re: Сборка ядра

Сообщение mvt »

vovanvster писал(а):
17.10.2008 22:48
mechanic_ru писал(а):
17.10.2008 22:21
а зачем четыре одинаковых темы плодить то?

Инет глюкнул

Olegator писал(а):
17.10.2008 22:23
зачем вы собираете ядро? какие цели приследуете?

Да какая разница ? По делу-то есть что ?

Ну и соберите пакет rpm и поставьте через yast - очевидно, так "кошернее" :)
Спасибо сказали:
Аватара пользователя
tmp13
Сообщения: 986
ОС: openSuse 11.2

Re: Сборка ядра

Сообщение tmp13 »

вот такую статью нашёл
Красных бей и белых бей!
Вот вам иерархия!
Я люблю тебя за это, милая моя,
Разудалая, хмельная мать моя – Анархия!
Спасибо сказали:
Аватара пользователя
vovanvster
Сообщения: 266
ОС: Gentoo-x86_64

Re: Сборка ядра

Сообщение vovanvster »

tmp13 писал(а):
18.10.2008 15:42
вот такую статью нашёл

Я перевод этой статьи читал, но за оригинал спасибо.
У меня и без понимания этой кухни получаться стало но интересно в чём разница ?

mvt писал(а):
18.10.2008 15:32
vovanvster писал(а):
17.10.2008 22:48
mechanic_ru писал(а):
17.10.2008 22:21
а зачем четыре одинаковых темы плодить то?

Инет глюкнул

Olegator писал(а):
17.10.2008 22:23
зачем вы собираете ядро? какие цели приследуете?

Да какая разница ? По делу-то есть что ?

Ну и соберите пакет rpm и поставьте через yast - очевидно, так "кошернее" :)

Я понять хочу в чём разница способов
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Сборка ядра

Сообщение Bluetooth »

ну, make rpm, насколько я понимаю, собрать РПМ с ядром, это если нужно потом поставить это ядро на несколько машин. при этом не получится иметь два ядра на одной машине(вообще рпм позволяет иметь два пакета с одним именем, но ругается :) ), а с make all все просто - просто инсталлится ядро, пишется строчка в загрузчик, и вперед. чтобы перенести ядро на другую машину, придетс головой подумать, но зато можно держать два ядра без конфликтов в БД рпм.
ну вот как-то так.
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Дабы не плодить тем, воскрешу эту.

make rpm места отжирает немеряно. Сама rpm-ка получилась на почти 300 метров. Что она там в себя вбирает, если ядро из репозиториев весит в 10 раз меньше?
Или она вбирает в себя исходники?

Спасибо сказали:
Аватара пользователя
k0da
Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory

Re: Сборка ядра

Сообщение k0da »

пожоже на сорцы.

Проверить можно изучив rpm -ql <package>
Fury in my eyes, sword on my side
Afro on my head, I'm a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Собрал вчерась пакет. Вес 215 мегов. Установил. Само ядро весит 40 метров, что в 10 раз выше любого другого ядра в директории /boot. И оно ведь .gz как и те, получено выкидыванием опций из оригинального конфига, собрано по сусевской инструкции, о которой поминал топикстартер.
Что я делаю не так? Почему такие результаты?
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Сборка ядра

Сообщение Sleeping Daemon »

bakulenko писал(а):
25.05.2010 08:28
Собрал вчерась пакет. Вес 215 мегов. Установил. Само ядро весит 40 метров, что в 10 раз выше любого другого ядра в директории /boot. И оно ведь .gz как и те, получено выкидыванием опций из оригинального конфига, собрано по сусевской инструкции, о которой поминал топикстартер.
Что я делаю не так? Почему такие результаты?

В смысле? Вы компилили ядро, руководствуясь статьёй 4-х летней давности?
И да, make help Вы смотрели?
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Sleeping Daemon писал(а):
25.05.2010 09:58
В смысле? Вы компилили ядро, руководствуясь статьёй 4-х летней давности?
И да, make help Вы смотрели?


Не знал, что процесс компилляции софта так принципиально меняется от версии к версии.
Почитаю, чего там пишут.
Спасибо сказали:
Аватара пользователя
k0da
Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory

Re: Сборка ядра

Сообщение k0da »

bakulenko
Видимо вы туда включили все что только возможно
Fury in my eyes, sword on my side
Afro on my head, I'm a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

k0da писал(а):
25.05.2010 13:38
bakulenko
Видимо вы туда включили все что только возможно


Да как такое может быть?
Взял старый конфиг из папки /boot. Сделал make menuconfig, загрузил его туда, а дальше только снимал флажки.
Да что то мне подсказывает, что если все включить, ядро с 4 мегов до 40 не разрастется.
Есть подозрение, что сжатие какое то неправильное у меня получилось.

Вообще, не могу понять картину целиком. До этого ядра только на FreeBSD собирал, но там расписано два варианта сборки в handbook описано. Да и то, один советуют не пользовать.
Ядро получается маленькое, имя у него kernel. Ставится легко и прозаично.
Здесь же начал читать make help, тут вариаций немеряно. И жатое ядро, и нежатое, и непонятно, жатое оно само по себе или только если в опциях укажешь. На одном ресурсе через make && make install делают, на другом пишут, что делать надо по-другому. Черт ногу сломит. Где бы мануал найти толковый с описанием вариантов. А то ядро стандартно называют vmlinuz, вероятно оттого, что жатое, но попадается на глаза и bzImage - что это за зверь? Те же яйца, только название файла отличается или другое сжатие или другой принцип загрузки?
В общем, в голове каша и ничего кроме каши.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Сборка ядра

Сообщение Sleeping Daemon »

bakulenko писал(а):
25.05.2010 19:32
k0da писал(а):
25.05.2010 13:38
bakulenko
Видимо вы туда включили все что только возможно


Да как такое может быть?
Взял старый конфиг из папки /boot. Сделал make menuconfig, загрузил его туда, а дальше только снимал флажки.
Да что то мне подсказывает, что если все включить, ядро с 4 мегов до 40 не разрастется.
Есть подозрение, что сжатие какое то неправильное у меня получилось.

Вообще, не могу понять картину целиком. До этого ядра только на FreeBSD собирал, но там расписано два варианта сборки в handbook описано. Да и то, один советуют не пользовать.
Ядро получается маленькое, имя у него kernel. Ставится легко и прозаично.
Здесь же начал читать make help, тут вариаций немеряно. И жатое ядро, и нежатое, и непонятно, жатое оно само по себе или только если в опциях укажешь. На одном ресурсе через make && make install делают, на другом пишут, что делать надо по-другому. Черт ногу сломит. Где бы мануал найти толковый с описанием вариантов. А то ядро стандартно называют vmlinuz, вероятно оттого, что жатое, но попадается на глаза и bzImage - что это за зверь? Те же яйца, только название файла отличается или другое сжатие или другой принцип загрузки?
В общем, в голове каша и ничего кроме каши.

После make menuconfig
Сделайте так:
make all. Посмотрите размер ядра.
make binrpm-pkg. Посмотрите размер ядра внутри rpm.
make rpm-pkg. Так же посмотрите размер ядра внутри.

Спасибо сказали:
AndroidAZ
Сообщения: 49

Re: Сборка ядра

Сообщение AndroidAZ »

Тоже заинтеросовал вопрос почему rpm пакет получается такого огромного размера? Так как включил немного изменений в конфиг дефолтного ядра, то легко было сравнить. В итоге получилось, что количество модулей практически не изменилось, но размер модулей собранного ядра отличался в большую сторону по отношению к одноименным модулям дефолтного. Почему размер модулей собранного ядра отличается в большую сторону по отношению к одноименным модулям дефолтного? Кроме того, из-за недостаточного объёма оперативной памяти, в ходе сборки автоматически был выбран метод сжатия gz (kernel-...tar.gz) вместо lzma, указанного в конфиге - случайно обратил внимание на проплывающую мимо строчку. Размер ram диска (initrd-собранного.ядра), после команды mkinitrd, тоже отличается в разы, почему?
Спасибо сказали:
Аватара пользователя
k0da
Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory

Re: Сборка ядра

Сообщение k0da »

На размер очень сильно влияют еще debug символы
Fury in my eyes, sword on my side
Afro on my head, I'm a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

k0da писал(а):
26.05.2010 14:22
На размер очень сильно влияют еще debug символы


Так откуда они берутся, если правится готовый конфиг установленного рабочего ядра?

Сегодня сделал просто make. Получил bzImage в размере 3 мегов, что на мег меньше дефолтного. Пока не знаю, можно ли грузить его как обычный vmlinuz. И не понял назначения initrd. Это, как я понимаю, хрень для рам-диска. А она для каждого ядра отличается или я могу свежескомпилленое ядро загрузить этим же initrd?
Завтра опробую варианты, предложенные Sleeping Daemon.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Сборка ядра

Сообщение Sleeping Daemon »

bakulenko писал(а):
26.05.2010 15:36
k0da писал(а):
26.05.2010 14:22
На размер очень сильно влияют еще debug символы


Так откуда они берутся, если правится готовый конфиг установленного рабочего ядра?

Сегодня сделал просто make. Получил bzImage в размере 3 мегов, что на мег меньше дефолтного. Пока не знаю, можно ли грузить его как обычный vmlinuz. И не понял назначения initrd. Это, как я понимаю, хрень для рам-диска. А она для каждого ядра отличается или я могу свежескомпилленое ядро загрузить этим же initrd?
Завтра опробую варианты, предложенные Sleeping Daemon.

initrd нужен, как минимум для того, что бы при старте можно было загрузить необходимые модули не включённые(вкомпиленные) в ядро.
Спасибо сказали:
AndroidAZ
Сообщения: 49

Re: Сборка ядра

Сообщение AndroidAZ »

k0da писал(а):
26.05.2010 14:22
На размер очень сильно влияют еще debug символы

Что собой представляют debug символы (представьте пример) и можно ли от них избавиться до начала сборки?
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Сделал вчерась вечером make install. Ядро в /boot попало нормального размера.
Делаю mkinitrd и вижу:

Код: Выделить всё

Kernel image:   /boot/vmlinuz-2.6.31.12-0.2-desktop
Initrd image:   /boot/initrd-2.6.31.12-0.2-desktop
Root device:    /dev/disk/by-id/ata-ST3500630AS_9QG8E9BL-part5 (/dev/sda5) (mounted on / as ext4)
Kernel Modules: pata_jmicron ata_generic ide-core ide-pci-generic jbd2 crc16 ext4 thermal_sys processor fan
Features:       block usb resume.userspace resume.kernel
Bootsplash:     openSUSE (1280x1024)
29729 блоков
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.


initrd создался только для рабочего ядра.
Для самосборного - нет. От Warning'ов удалось избавиться, удалив упоминание рейда в device.map и сделав grub --batch < /etc/grub.conf, но это не помогло решить проблему.
Как принудительно сделать initrd? Прочитал справку по initrd, но так и не вкурил назначение ключей -i и -k.

На работе создается для двух ядер без проблем.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Сборка ядра

Сообщение Sleeping Daemon »

bakulenko писал(а):
27.05.2010 05:27
Сделал вчерась вечером make install. Ядро в /boot попало нормального размера.
Делаю mkinitrd и вижу:

Код: Выделить всё

Kernel image:   /boot/vmlinuz-2.6.31.12-0.2-desktop
Initrd image:   /boot/initrd-2.6.31.12-0.2-desktop
Root device:    /dev/disk/by-id/ata-ST3500630AS_9QG8E9BL-part5 (/dev/sda5) (mounted on / as ext4)
Kernel Modules: pata_jmicron ata_generic ide-core ide-pci-generic jbd2 crc16 ext4 thermal_sys processor fan
Features:       block usb resume.userspace resume.kernel
Bootsplash:     openSUSE (1280x1024)
29729 блоков
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.
2010-05-27 09:15:54 WARNING: GRUB::GrubDev2UnixDev: No partition found for /dev/disk/by-id/raid-isw_dcbiaibhda_STRIPE with 1.


initrd создался только для рабочего ядра.
Для самосборного - нет. От Warning'ов удалось избавиться, удалив упоминание рейда в device.map и сделав grub --batch < /etc/grub.conf, но это не помогло решить проблему.
Как принудительно сделать initrd? Прочитал справку по initrd, но так и не вкурил назначение ключей -i и -k.

На работе создается для двух ядер без проблем.

Неужели для разных дистрибутивов, да же компиляция ядра разная? С трудом верится.
Когда я делаю make install, то inird формируется и устанавливается в процессе.
Может надо после make all выполнить сначала make modules_install ?
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Sleeping Daemon
Насчет разностей компилляции.
Первоначальные вопросы всплыли по сборке ядра на работе. Там Суся 32-бита.
Собственно, на ней make rpm выдавал гигантские размеры, что повлекло появления вопросов.
Метод через обычный make работает нормально. Просто боязливо было делать make install , поэтому задавал вопросы по промежуточным итогам. Собиралось много чего и разныхз размеров, но при make install в /boot пихается маленькое жатое ядро, так что, по этой части вопросов уже нет.
Дома стоит 64 бита и вчерась на ней первый раз собрал ядро, когда на работе удалось получить более или менее устраивающий меня вариант.

Но дома был настроен RAID и я его изничтожил пару дней назад, а в грабовских файлах упоминание его оставалось, и mkinitrd ругался. Сегодня удалось вычистить упоминание RAID из граба, но mkinitrd почему то сделал initrd только для рабочего ядра, хотя должен был (и на работе это подтвердилось) сделать для кажного ядра в /boot.
В общем, резюмируя, на работе все сделалось как надо. Есть самосборное ядро, с нормальным размером, корректно прописавшееся автоматом в menu.lst и initrd под него. Дома же есть самосборное ядро, прописанное в грабе, но не имеющее initrd. Собственно, вся разница.
Ошибок от mkinitrd никаких не получил, отсюда и непонятнки. Может mkinitrd определить автоматом, что необходимые для загрузки модули вкомпилены в ядро и не делать initrd?
Спасибо сказали:
Аватара пользователя
Warchief
Сообщения: 84
ОС: арч , Гента

Re: Сборка ядра

Сообщение Warchief »

Попробуйте так: mkinitrd -k /boot/*новое ядро*

Собираете 2.6.34х86_64? У меня с ним такая-же проблема в убунте - не генерируется автоматом рам-диск, только в ручную.
root@brain # mv -rf /* /dev/null
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Warchief писал(а):
27.05.2010 15:08
Попробуйте так: mkinitrd -k /boot/*новое ядро*

Собираете 2.6.34х86_64? У меня с ним такая-же проблема в убунте - не генерируется автоматом рам-диск, только в ручную.


Не, у меня у меня еще 31 версия. Вручную пробовал, но у меня ругалось, что указаны параметры -k и -i, либо вообще ничего не указано. Как то так. А по хелпу я понял, что путь к ядру не надо задавать, по умолчанию берется из /boot.
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

Попробовал сегодня загрузить собранное ядро на 32-х битке. То самое, что создалось без особых проблем.
Не грузится x-сервер, не загружается драйвер нвидии.
Не могу понять почему.
Может такое быть, что у каждого ядра своя директория с подгружаемыми модулями? И должна ли повторная установка исправить положение.
Я, во всяком разе, попробовал переустановить их через yast: сделал поиск по слову нвидиа в управлении ПО и пакеты, помеченные как "i" еще раз установил.
Не помогло.
В /var/log/messages ни единого упоминания nvidia не нашел.
Хотел через modprobe загрузить найденный в системе nvidia.ko, но он не грузится, говорит, что модуль не найден, наверное ищет в каком то специфическом месте.
Где вообще прописывается загрузка модулей в suse? Как указывается путь, где искать модули ядра?
Спасибо сказали:
AgentSS
Сообщения: 71

Re: Сборка ядра

Сообщение AgentSS »

bakulenko писал(а):
28.05.2010 07:18
Не грузится x-сервер, не загружается драйвер нвидии.

теперь под свежесобранное ядро пересоберите видео драйвер
Спасибо сказали:
bakulenko
Сообщения: 202
ОС: Ubuntu 12.04

Re: Сборка ядра

Сообщение bakulenko »

AgentSS писал(а):
28.05.2010 09:21
bakulenko писал(а):
28.05.2010 07:18
Не грузится x-сервер, не загружается драйвер нвидии.

теперь под свежесобранное ядро пересоберите видео драйвер


Дык, драйвер то проприетарный, он разве не отдельным собранным модулём идет?
Как то ж свежие ядра из репозитория становятся без проблем, копируют в свою папку с модулями симлинк из папки с первоначальным ядром (во всяком разе у меня так) и все работает.
Спасибо сказали:
Аватара пользователя
zenwolf
Бывший модератор
Сообщения: 3139
Статус: Страшный и злой
ОС: Slackware..Salix..x86_64

Re: Сборка ядра

Сообщение zenwolf »

AgentSS писал(а):
28.05.2010 09:21
bakulenko писал(а):
28.05.2010 07:18
Не грузится x-сервер, не загружается драйвер нвидии.

теперь под свежесобранное ядро пересоберите видео драйвер

видимо установить драйвер имелось ввиду скаченный с оффициального сайта
Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.
Спасибо сказали: