Сборка ядра (make или make rpm ?)
Модератор: Модераторы разделов
-
vovanvster
- Сообщения: 266
- ОС: Gentoo-x86_64
Сборка ядра
Вопросик появился... В ридми сырца для SUSE написано:
make
make install
make modules_install
А в руководстве 'Сборка_ядра_Linux_-_SuSE_метод' по другому:
make rpm
и всё. Получается что в 'SuSE_метод' модули сами установятся ?
Как всётаки правильно ?
make
make install
make modules_install
А в руководстве 'Сборка_ядра_Linux_-_SuSE_метод' по другому:
make rpm
и всё. Получается что в 'SuSE_метод' модули сами установятся ?
Как всётаки правильно ?
-
mechanic_ru
- Сообщения: 244
- ОС: openSUSE 11.0
Re: Сборка ядра
а зачем четыре одинаковых темы плодить то?
-
Olegator
- Сообщения: 2493
- ОС: SuseLinux 11.2 KDE 4.3
Re: Сборка ядра
зачем вы собираете ядро? какие цели приследуете?
-
vovanvster
- Сообщения: 266
- ОС: Gentoo-x86_64
Re: Сборка ядра
Инет глюкнул
Да какая разница ? По делу-то есть что ?
-
mvt
- Сообщения: 734
Re: Сборка ядра
Ну и соберите пакет rpm и поставьте через yast - очевидно, так "кошернее"
-
tmp13
- Сообщения: 986
- ОС: openSuse 11.2
Re: Сборка ядра
вот такую статью нашёл
Красных бей и белых бей!
Вот вам иерархия!
Я люблю тебя за это, милая моя,
Разудалая, хмельная мать моя – Анархия!
Вот вам иерархия!
Я люблю тебя за это, милая моя,
Разудалая, хмельная мать моя – Анархия!
-
vovanvster
- Сообщения: 266
- ОС: Gentoo-x86_64
Re: Сборка ядра
Я перевод этой статьи читал, но за оригинал спасибо.
У меня и без понимания этой кухни получаться стало но интересно в чём разница ?
mvt писал(а): ↑18.10.2008 15:32
Ну и соберите пакет rpm и поставьте через yast - очевидно, так "кошернее"
Я понять хочу в чём разница способов
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Сборка ядра
ну, make rpm, насколько я понимаю, собрать РПМ с ядром, это если нужно потом поставить это ядро на несколько машин. при этом не получится иметь два ядра на одной машине(вообще рпм позволяет иметь два пакета с одним именем, но ругается
), а с make all все просто - просто инсталлится ядро, пишется строчка в загрузчик, и вперед. чтобы перенести ядро на другую машину, придетс головой подумать, но зато можно держать два ядра без конфликтов в БД рпм.
ну вот как-то так.
ну вот как-то так.
-
bakulenko
- Сообщения: 202
- ОС: Ubuntu 12.04
Re: Сборка ядра
Дабы не плодить тем, воскрешу эту.
make rpm места отжирает немеряно. Сама rpm-ка получилась на почти 300 метров. Что она там в себя вбирает, если ядро из репозиториев весит в 10 раз меньше?
Или она вбирает в себя исходники?
make rpm места отжирает немеряно. Сама rpm-ка получилась на почти 300 метров. Что она там в себя вбирает, если ядро из репозиториев весит в 10 раз меньше?
Или она вбирает в себя исходники?
-
k0da
- Бывший модератор
- Сообщения: 6043
- Статус: SuSE QA Engineer
- ОС: Factory
Re: Сборка ядра
пожоже на сорцы.
Проверить можно изучив rpm -ql <package>
Проверить можно изучив 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
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: Сборка ядра
Собрал вчерась пакет. Вес 215 мегов. Установил. Само ядро весит 40 метров, что в 10 раз выше любого другого ядра в директории /boot. И оно ведь .gz как и те, получено выкидыванием опций из оригинального конфига, собрано по сусевской инструкции, о которой поминал топикстартер.
Что я делаю не так? Почему такие результаты?
Что я делаю не так? Почему такие результаты?
-
Sleeping Daemon
- Сообщения: 1450
Re: Сборка ядра
bakulenko писал(а): ↑25.05.2010 08:28Собрал вчерась пакет. Вес 215 мегов. Установил. Само ядро весит 40 метров, что в 10 раз выше любого другого ядра в директории /boot. И оно ведь .gz как и те, получено выкидыванием опций из оригинального конфига, собрано по сусевской инструкции, о которой поминал топикстартер.
Что я делаю не так? Почему такие результаты?
В смысле? Вы компилили ядро, руководствуясь статьёй 4-х летней давности?
И да, make help Вы смотрели?
-
bakulenko
- Сообщения: 202
- ОС: Ubuntu 12.04
Re: Сборка ядра
Sleeping Daemon писал(а): ↑25.05.2010 09:58В смысле? Вы компилили ядро, руководствуясь статьёй 4-х летней давности?
И да, make help Вы смотрели?
Не знал, что процесс компилляции софта так принципиально меняется от версии к версии.
Почитаю, чего там пишут.
-
k0da
- Бывший модератор
- Сообщения: 6043
- Статус: SuSE QA Engineer
- ОС: Factory
Re: Сборка ядра
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
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: Сборка ядра
Да как такое может быть?
Взял старый конфиг из папки /boot. Сделал make menuconfig, загрузил его туда, а дальше только снимал флажки.
Да что то мне подсказывает, что если все включить, ядро с 4 мегов до 40 не разрастется.
Есть подозрение, что сжатие какое то неправильное у меня получилось.
Вообще, не могу понять картину целиком. До этого ядра только на FreeBSD собирал, но там расписано два варианта сборки в handbook описано. Да и то, один советуют не пользовать.
Ядро получается маленькое, имя у него kernel. Ставится легко и прозаично.
Здесь же начал читать make help, тут вариаций немеряно. И жатое ядро, и нежатое, и непонятно, жатое оно само по себе или только если в опциях укажешь. На одном ресурсе через make && make install делают, на другом пишут, что делать надо по-другому. Черт ногу сломит. Где бы мануал найти толковый с описанием вариантов. А то ядро стандартно называют vmlinuz, вероятно оттого, что жатое, но попадается на глаза и bzImage - что это за зверь? Те же яйца, только название файла отличается или другое сжатие или другой принцип загрузки?
В общем, в голове каша и ничего кроме каши.
-
Sleeping Daemon
- Сообщения: 1450
Re: Сборка ядра
bakulenko писал(а): ↑25.05.2010 19:32
Да как такое может быть?
Взял старый конфиг из папки /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: Сборка ядра
Тоже заинтеросовал вопрос почему rpm пакет получается такого огромного размера? Так как включил немного изменений в конфиг дефолтного ядра, то легко было сравнить. В итоге получилось, что количество модулей практически не изменилось, но размер модулей собранного ядра отличался в большую сторону по отношению к одноименным модулям дефолтного. Почему размер модулей собранного ядра отличается в большую сторону по отношению к одноименным модулям дефолтного? Кроме того, из-за недостаточного объёма оперативной памяти, в ходе сборки автоматически был выбран метод сжатия gz (kernel-...tar.gz) вместо lzma, указанного в конфиге - случайно обратил внимание на проплывающую мимо строчку. Размер ram диска (initrd-собранного.ядра), после команды mkinitrd, тоже отличается в разы, почему?
-
k0da
- Бывший модератор
- Сообщения: 6043
- Статус: SuSE QA Engineer
- ОС: Factory
Re: Сборка ядра
На размер очень сильно влияют еще 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
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: Сборка ядра
Так откуда они берутся, если правится готовый конфиг установленного рабочего ядра?
Сегодня сделал просто make. Получил bzImage в размере 3 мегов, что на мег меньше дефолтного. Пока не знаю, можно ли грузить его как обычный vmlinuz. И не понял назначения initrd. Это, как я понимаю, хрень для рам-диска. А она для каждого ядра отличается или я могу свежескомпилленое ядро загрузить этим же initrd?
Завтра опробую варианты, предложенные Sleeping Daemon.
-
Sleeping Daemon
- Сообщения: 1450
Re: Сборка ядра
bakulenko писал(а): ↑26.05.2010 15:36
Так откуда они берутся, если правится готовый конфиг установленного рабочего ядра?
Сегодня сделал просто make. Получил bzImage в размере 3 мегов, что на мег меньше дефолтного. Пока не знаю, можно ли грузить его как обычный vmlinuz. И не понял назначения initrd. Это, как я понимаю, хрень для рам-диска. А она для каждого ядра отличается или я могу свежескомпилленое ядро загрузить этим же initrd?
Завтра опробую варианты, предложенные Sleeping Daemon.
initrd нужен, как минимум для того, что бы при старте можно было загрузить необходимые модули не включённые(вкомпиленные) в ядро.
-
AndroidAZ
- Сообщения: 49
-
bakulenko
- Сообщения: 202
- ОС: Ubuntu 12.04
Re: Сборка ядра
Сделал вчерась вечером make install. Ядро в /boot попало нормального размера.
Делаю mkinitrd и вижу:
initrd создался только для рабочего ядра.
Для самосборного - нет. От Warning'ов удалось избавиться, удалив упоминание рейда в device.map и сделав grub --batch < /etc/grub.conf, но это не помогло решить проблему.
Как принудительно сделать initrd? Прочитал справку по initrd, но так и не вкурил назначение ключей -i и -k.
На работе создается для двух ядер без проблем.
Делаю 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: Сборка ядра
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: Сборка ядра
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?
Насчет разностей компилляции.
Первоначальные вопросы всплыли по сборке ядра на работе. Там Суся 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: Сборка ядра
Попробуйте так: mkinitrd -k /boot/*новое ядро*
Собираете 2.6.34х86_64? У меня с ним такая-же проблема в убунте - не генерируется автоматом рам-диск, только в ручную.
Собираете 2.6.34х86_64? У меня с ним такая-же проблема в убунте - не генерируется автоматом рам-диск, только в ручную.
root@brain # mv -rf /* /dev/null
-
bakulenko
- Сообщения: 202
- ОС: Ubuntu 12.04
Re: Сборка ядра
Не, у меня у меня еще 31 версия. Вручную пробовал, но у меня ругалось, что указаны параметры -k и -i, либо вообще ничего не указано. Как то так. А по хелпу я понял, что путь к ядру не надо задавать, по умолчанию берется из /boot.
-
bakulenko
- Сообщения: 202
- ОС: Ubuntu 12.04
Re: Сборка ядра
Попробовал сегодня загрузить собранное ядро на 32-х битке. То самое, что создалось без особых проблем.
Не грузится x-сервер, не загружается драйвер нвидии.
Не могу понять почему.
Может такое быть, что у каждого ядра своя директория с подгружаемыми модулями? И должна ли повторная установка исправить положение.
Я, во всяком разе, попробовал переустановить их через yast: сделал поиск по слову нвидиа в управлении ПО и пакеты, помеченные как "i" еще раз установил.
Не помогло.
В /var/log/messages ни единого упоминания nvidia не нашел.
Хотел через modprobe загрузить найденный в системе nvidia.ko, но он не грузится, говорит, что модуль не найден, наверное ищет в каком то специфическом месте.
Где вообще прописывается загрузка модулей в suse? Как указывается путь, где искать модули ядра?
Не грузится x-сервер, не загружается драйвер нвидии.
Не могу понять почему.
Может такое быть, что у каждого ядра своя директория с подгружаемыми модулями? И должна ли повторная установка исправить положение.
Я, во всяком разе, попробовал переустановить их через yast: сделал поиск по слову нвидиа в управлении ПО и пакеты, помеченные как "i" еще раз установил.
Не помогло.
В /var/log/messages ни единого упоминания nvidia не нашел.
Хотел через modprobe загрузить найденный в системе nvidia.ko, но он не грузится, говорит, что модуль не найден, наверное ищет в каком то специфическом месте.
Где вообще прописывается загрузка модулей в suse? Как указывается путь, где искать модули ядра?
-
AgentSS
- Сообщения: 71
-
bakulenko
- Сообщения: 202
- ОС: Ubuntu 12.04
Re: Сборка ядра
Дык, драйвер то проприетарный, он разве не отдельным собранным модулём идет?
Как то ж свежие ядра из репозитория становятся без проблем, копируют в свою папку с модулями симлинк из папки с первоначальным ядром (во всяком разе у меня так) и все работает.
-
zenwolf
- Бывший модератор
- Сообщения: 3139
- Статус: Страшный и злой
- ОС: Slackware..Salix..x86_64
Re: Сборка ядра
видимо установить драйвер имелось ввиду скаченный с оффициального сайта
Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.