LINUX.ORG.RU

Gentoo с чужим ядром.

 ,


1

2

Можно ли взять ядро от арча и запускать с ним gentoo? Просто а варче ядро+iniramfs около 6Мб, а все монолиты, которые я пытался собрать руками было либо больше 6Мб, либо не загружалось совсем. Ну или разжуйте как ядро собрать чтоб оно грузилось? make localmodconfig делает мне нерабочую фигню. Поддержку ext4 включал


Ответ на: комментарий от ass

Ну а если я скачаю исходники той же версии ядра, я смогу например собрать блоб нвидии, чтоб он работал с арчевым ядром.

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

Можно ли взять ядро от арча и запускать с ним gentoo?

Можно. Можно даже ебилд написать, чтобы оно обновлялось.

Deleted
()
Ответ на: комментарий от kostik87

У меня, то которое нормально загружается под 20Мб размером. Не думаю что другое сжатие сильно поможет

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

И initramfs имхо лишний

Я криворукий. У меня без него плохо получается

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

Не умеешь настраивать, учись. Для того что бы ядро могло смонтировать корень в ядре должна быть включена поддержка контроллера жёстких дисков и корневой файловой системы. Всего один драйвер для конкректного класса контроллеров и всего один драйвер для одной файловой системы.

Если их включить монолитно, то initramfs не нужен, если ты не используешь LVM или RAID и не указываешь корень посредством UUID, заместо UUID можно использовать PARTUID, для него не нужен initramfs.

Драйверы остального твоего оборудования собираешь модулями.

Ну и что бы получился 20 мб образ ядра тебе нужно было всё включить монолитно и выбрать gzip алгоритм сжатия образа ядра.

Это уже к тебе вопросы зачем ты так поступил.

Заодно для увеличения размера хорошо бы ещё включить информацию для отладки.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

монолиты

Может, я выскажу весьма крамольную идею, но всё же рискну предположить, что для желаемого результата стоит собирать ядро с модулями, а не монолит

XMs ★★★★★
()

Можно. Я пускал с гентушным ядром мандриву в своё время(так было надо), не вижу никаких причин чтобы гента не заработала с другим ядром.

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

Для того что бы ядро могло смонтировать корень в ядре должна быть включена поддержка контроллера жёстких дисков и корневой файловой системы.

ext4 я всегда включал. Контроллера? Я в арче в /etc/mkinitpio.conf прописал ядро стало гораздо меньше, но грузится прекрасно MODULES=«sd_mod ext4 ata_piix»
BINARIES=«fsck fsck.ext4»
HOOKS=«base»
Я в упор не смог найти в menuconfig ни sd_mod ни ata_piix. Что мне включить?

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

Я в упор не смог найти в menuconfig

Используй поиск по конфигуратору, клавиша «/», нажимаешь её, затем вводишь точное название опции или её часть и нажимаешь Enter.

Что мне включить?

Это и включать, если ты чего-то не видишь в пунктах меню - значит не включены опции от которых это что-то зависит. Смотри результаты поиска в строке depends указаны зависимости.

kostik87 ★★★★★
()

все монолиты, которые я пытался собрать руками было либо больше 6Мб, либо не загружалось совсем.

pinkbyte@oas1 ~ $ ls -lah /boot/*$(uname -r)
-rw-r--r-- 1 root root  88K янв  4 19:25 /boot/config-4.4.39-gentoo-UNDYNE
-rw-r--r-- 1 root root 2,4M янв  4 19:25 /boot/initramfs-genkernel-x86_64-4.4.39-gentoo-UNDYNE
-rw-r--r-- 1 root root 2,8M янв  4 19:25 /boot/System.map-4.4.39-gentoo-UNDYNE
-rw-r--r-- 1 root root 4,0M янв  4 19:25 /boot/vmlinuz-4.4.39-gentoo-UNDYNE

Итого - ядро на 4 Мб да initramfs на ~2,5(нужен, ибо корень на LVM). Сжатие стоит XZ

Ну или разжуйте как ядро собрать чтоб оно грузилось?

Грузимся с live-cd(например systemrescuecd). Собираем инфу о загруженных модулях для pci-устройств через lspci -k. Докидываем сюда модули файловых системы которые используем и блочных устройств не на шине PCI и/или виртуальных(LVM, софтовые рейд и т.д.).

Убеждаемся что всё это включено в конфиге МОНОЛИТНО(или делаем правильный initramfs, например, через genkernel).

Далее когда всё запустится - можешь заняться филигранным выпиливанием. Например отделить драйвера на USB модулями(если корень находится не на USB-устройстве). Драйвера на видяху можно туда же(проприетарные не в счёт - они и так будут собираться модулями). И так далее.

А можешь забить и остаться с первоначально-сгенеренным монолитом на базе всех имеющихся у тебя устройств.

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

Device Drivers --->

<*> Serial ATA and Parallel ATA drivers (libata) --->

  • ATA BMDMA support

    *** SATA SFF controllers with BMDMA ***

    <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support

ass ★★★★
()

ты такой придурок. в Арче почти все драйвера и прочий функционал идёт модулями, вот и ядро небольшого размера.

Deleted
()

make localmodconfig

что это? по какомк мануалу собирал?
а вообще разве
make xconfig;make&make install в арче сломали?

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

А вот и первый жопочтенец! У меня ядро+initramfs вместе занимают около 5Мб. Потому что у меня initramfs кастомный(а модули внезапно там лежат)

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

Скачал короче с kernel.org ядро 4.4
Распаковал, перешёл в каталог
Сделал make menuconfig
Перешёл по твоим пунктам всё по дефолту было включено.
cat .config | grep EXT4
CONFIG_EXT4_FS=y
Сделал make
Сделал sudo make install
Скопировал bzImage в /boot
Получилось(6Мб)
Попытался загрузиться с таким ядром в арч: заморгали, потом засветились лампочки на клавиатуре. Больше никаких признаков жизни. Индикатор харддиска не свеетился
Сматерился и загрузился со старым ядром.
Да как вы блин эти вашия ядра собираете?

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

Когда выйду на пенсию (если доживу , что весьма сомнительно) то обязательно перейду с арчика на gentoo . Gentoo круче , но требует больше времени .

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

Наверное, при том, что initramfs (initrd уже давно того) включает в себя много необязательно или не нужного?

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

То же самое. По дефолту «y» стоит

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

все монолиты, которые я пытался собрать руками было либо больше 6Мб, либо не загружалось совсем

А что такого страшного когда ядро у тебя 10Мб? Не хватает места для любимого сериала?

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

Оно читается чуть дольше. Ну и я однажды собрал каким-то чудом маленькое ядро под свою систему(правда это на ноутбуке было и я юзал сначала genkernel а потом localmodconfig) дак вот openrc раз в 10 быстрее всё загрузил. Я получил рабочий стол секунды за 4-5 после нажатия кнопки запуска.(впрочем сеть и звук с этим ядром не завелись). Видимо ядро как-то влияет на init

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

В генту ты можешь добавить и использовать ядро с любым конфигом, какая разница-то?

Просто а варче ядро+iniramfs

Нахер сдался iniramfs, если у тебя не шифрованный раздел?

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

Нахер сдался iniramfs, если у тебя не шифрованный раздел?

У меня не получается без него загрузиться либо кернел паникует либо просто лампочки на клавиатуре мигают и всё

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

Комьюнити, которе не смогло запилить годный колясочный скрипт для автоматической подстройки под оборудование и сборки ядра

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

Охохох, вот это запросы. Иш чо, ему кто-то что-то должен. Тут вам не там. Что-то не нравится? Ну так вперед, исправляй. Ну или плати человеку, кто будет исправлять. А если нет, лес там ->

У всех грузится система, а у одного тебя одного не грузится. А не грузится у тебя потому, что руки кривые и ЧСВ слишком раздутое чтоб это принять.

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

Ну или плати человеку, кто будет исправлять.

Ок давай я тебе дам lsusb, lsmod ну или что там нужно, а ты мне соберёшь ядро под моё оборудование? 1000 тебе хватит за это?(Если оно конечно загрузится)

sszb
() автор топика
Ответ на: комментарий от sszb
  • берешь конфиг от нужного арчевского ядра
  • кидаешь нужный конфиг как /usr/src/linux/.config (дотфайл, обрати внимание) после емержа нужной версии ядра
  • cd /usr/src/linux
  • make menuconfig, отключаешь iniramfs (оставь пустым CONFIG_INITRAMFS_SOURCE="" , сохраняешь и выходишь
  • по-желанию сравниваешь получившийся конфиг с .config.old
  • собираешь и устанавливаешь ядро:
    • make -j4 bzImage
    • make -j4 modules
    • make modules_install
    • make install

кидадешь в efi или настраиваешь загрузчик.

У меня не получается без него загрузиться либо кернел паникует либо просто лампочки на клавиатуре мигают и всё

шифрованный раздел?

slon
()
Последнее исправление: slon (всего исправлений: 2)
Ответ на: комментарий от Deleted

Ядро нефиг делать писать. Куча их. А вот драйвера туда прикрутить. И портировать все gnu-шные приблуды проблема

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

make -j4 bzImage
make -j4 modules
make modules_install
make install

Эм. У меня кроме ядра(ровно три метра таки) ещё initrd в 10Мб собрался. Это норма?

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

Он «операционную систему» делал

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

Оно читается чуть дольше

На тормознейшем диске с чтением в 50Мб/с разница между 5 и 10 мб это 0.1сек. В этой теме ты уже потерял времени больше, чем ты за всю жизни на всех своих линуксах мог бы выиграть на этом времени. Мог бы, потому что собранное сегодня ядро до конца твоей жизни без пересборки прожить не сможет, а перекомпиляция добавит к времени окупания ещё сотню-другую лет.

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