Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Программирование и компиляция => Компиляция ядра Linux => Тема начата: sfs от 17 Август 2021, 16:43:49

Название: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 17 Август 2021, 16:43:49
Итог (https://forum.puppyrus.org/index.php?topic=23523.msg178777#msg178777)
Итог (https://forum.puppyrus.org/index.php?topic=23523.msg181750#msg181750)
Монолитное ядро - это такое, которое грузится без дополнительных модулей ядра в инитрд
алгоритм такой. Скачиваем https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.13.tar.xz, выполняем make menuconfig, получая файл config. Далее сравниваем с config от pf-kernel, отмечая изменения внесенные post-factum, назовем их diff-pf-config.
И уже потом прореживаем, отталкиваясь от конфига Pro, но помня о приоритете diff-pf-config. Тем самым удастся сохранить и не выключить все новые оптимизации pf, о которых еще не знал Pro, почему их и нет в его конфигах.
Думаю, проще сделать наоборот.
Цитата: sfs от 29 Июль 2021, 09:59:19
сравнить конфиги и сделать скрипт который делает монолитное ядро из любого конфига. Т.е. переводит модули ядра в монолит, чтобы не таскать в инитрд udev
В mono.tar.gz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.12.0-pf6-lf/mono.tar.gz) :
config_arch_generic  (https://build.opensuse.org/package/show/home:post-factum:kernels/linux-pf-generic) , т.е. исходный конфиг
mono - строки =y монолитного конфига (от моего 5.12.0-pf-lf), т.е. то, что должно оказаться монолитно, а не модулем.ko в ядре
mono - это список того , что будет исправлено m на у + добавлено то, чего нет в config_arch_generic, но есть в mono
config_arch_generic-mono - итоговый конфиг, полученный скриптом kernel-mono.sh
Скрипт меняет все =m в исходном на =y , перечисленные в mono и добавляет в конец , то чего вообще не было в исходном после ===== ADD ====
Теперь надо хорошенько почистить mono руками
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 17 Август 2021, 18:17:05
Теперь надо хорошенько почистить mono руками
Удаляю - это значит, что в итоговом конфиге это значение останется от pf (из config_arch_generic)
Удаляю все :
ACPI
AMD
ARCH
ATH
ATM
AUTOFS
B43
B44
BT
CIFS
COMPAT
CPU
CRUPTO
GENERIC
HAVE
MOUSE
NET
SERIAL
SND
WLAN
X86_
и по мелочи. Итог в аттаче
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 17 Август 2021, 18:30:42
В исходном config_arch_generic:
Цитата
CONFIG_TCP_CONG_BBR=m 
CONFIG_TCP_CONG_BBR2=m

В итоговом mono2 этого нет. Т.е. не только меняется m на y, но и режутся полезные функции. Экономить следует не на оптимизациях, а на поддержке железа, которое не используется форумчанами и т.д.


upd. Наверно не лучший пример, это типа для серверов?
Включение TCP BBR ускоряем сеть в Ubuntu Linux (https://www.k7d.ru/linux/vklyuchenie-tcp-bbr-uskoryaem-set-v-ubuntu-linux/)
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 18 Август 2021, 04:23:37
сравнить конфиги
Полезные скрипты уже присутствуют в исходниках ядра. Я не спец по ядрам, поэтому был не в курсе.
scripts/diffconfig
scripts/kconfig/merge_config.sh
scripts/config


Имхо, merge_config.sh может быть полезным. Типа merge_config.sh .configPro config_arch_generic, а результат грепать на "New value"/"Requested value". Полученный результат все же придется вручную прошерстить. А потом, если правильно понял, применить к .configPro.


upd. Для удобства ручного редактирования, использовать значения в "New value" как есть. Это сэкономит много времени. А вот добавленные функции в "Requested value" уже можно пропустить через сито.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 18 Август 2021, 09:18:18
В итоговом mono2 этого нет. Т.е. не только меняется m на y, но и режутся полезные функции.
Скрипт меняет все =m в исходном на =y , перечисленные в mono
mono - список того, что нужно менять.
config_arch_generic-mono - итоговый конфиг, полученный скриптом kernel-mono.sh
Все что было в config_arch_generic -  осталось в config_arch_generic-mono. Скрипт вообще ничего не удаляет. Только меняет m на y и добавляет в конец конфига
Экономить следует не на оптимизациях, а на поддержке железа, которое не используется форумчанами и т.д.
Что именно? Наверное лучше скомпилить пакет по полной, а потом удалить лишние модули.ko из 000-kernel*.pfs. Кому понадобятся - возьмут из пакета
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 19 Август 2021, 16:50:31
scripts/kconfig/merge_config.sh
Вот пример (https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=linux-cx2072x) использования
Код
./scripts/kconfig/merge_config.sh -m .config ../config.fragment
По сути я такой же скрипт и написал. Лучше пользоваться родным (из src)

Скомпилил с конфигом собранным merge_config.sh -m config_arch_generic mono2 (https://forum.puppyrus.org/index.php?topic=23523.msg178737#msg178737)
vmlinuz получился 16мб, т.е в 2 раза больше, чем 5.12 с конфигом от Pro. Тут только сравнивать конфиги и убирать лишние =y
Модулей ядра тоже в 2 раза больше. С этим проще - удалить лишнее
В mono2 перестарался с чисткой. Без дополнительных .ko не грузится.
Не стал выкладывать

Скомпилил с конфигом от 512-pf-lf + lf+.cfg (zstd ntfs3)  https://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.13.0-pf5-lf/
И аналогично для i686 https://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/new/4.14.105-pf10-le9eb/ - конфиг от Pro + наложил патч le9 -  проверьте на старом железе. планирую в исо

Потом https://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.13.0-pf5-lf5/
merge_config.sh -m config_arch_generic mono
Потом хитрым скриптом выделил все монолитное из config_arch_generic, которого нет в 512-pf-lf и переделал это на модули вместо монолита
vmlinuz получился на 600кб больше. Модулей много. Вряд ли столько нужно. Далее буду компилить только маленькое ядро

https://sysadmin.pm/bbr-algo/
Почему-то с этим параметрами i686 ядро не компилилось
Если включить zstd в i686 тоже какая-то лажа - см. скрин
http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/new/5.13.0-pf5-lf

Если кто найдет в lf5 что то чего нет в lf - пишите - следующий раз добавлю
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 19 Август 2021, 17:47:13
Конфиг ядра это очень тонкая материя. Там одно цепляет за другое. Я приводил пример не попадания BBR в ядро и это был всего лишь пример:
В исходном config_arch_generic:
Цитата
CONFIG_TCP_CONG_BBR=m 
CONFIG_TCP_CONG_BBR2=m
Ведь чтобы включить эту функцию требуется большее:
Цитата
grep -E "CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ" config_arch_generic

Имхо, проще использовать config_arch_generic как есть, иначе пролетаем мимо многих оптимизаций, которые не спецу не разглядеть и не вычленить в конфиге. Тогда уж проще использовать дефолтное ядро Линукса и резать его как душе угодно.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 19 Август 2021, 18:23:40
использовать config_arch_generic как есть
lf5 это и есть "как есть"
Код
# grep -E "CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ" config_arch_generic
CONFIG_TCP_CONG_BBR=m
CONFIG_TCP_CONG_BBR2=m
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_FQ_PIE=m

# grep -E "CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ" .config-lf5
CONFIG_TCP_CONG_BBR=m
CONFIG_TCP_CONG_BBR2=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_FQ_CODEL=m
Только некоторые модули поменяны с монолит - модуль
Тогда уж проще использовать дефолтное ядро Линукса
Нет aufs uksmd le9
Тогда уж. pf от автора (без aufs) или из Магеи (aufs есть, остальное - не смотрел)
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 19 Август 2021, 21:24:29
На размер ядра влияет и сжатие модулей. В оригинальном linux-pf-generic-5.13.5-1-x86_64.pkg.tar.zst:
Цитата
$ lh fs/ksmbd/ksmbd*
-rw-r--r-- 1 live live 161K авг 12 22:30 ksmbd.ko.zst
В 000-kernel-5.13.0-pf5-lf5_64.pfs:
Цитата
$ lh fs/ksmbd/ksmbd*
-rw-r--r-- 1 root root 466K авг 18 18:06 ksmbd.ko
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Август 2021, 09:08:23
На размер ядра влияет и сжатие модулей
Сжатие vmlinuz, как я понял,  задается отдельно. В 513 я изменил gzip на zstd. Изменить на скомпиленном нельзя или я не знаю как)
Сжатие .ko легко переделать в любой момент в mc - поиск + выделить найденное + (раз)архивировать выделенное + depmod
Уже давно определил, что архивы в squash получаются больше размером
Никто не протестировал вчерашние ядра?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 20 Август 2021, 09:35:26
Наверно это, как минимум размер уменьшится в 2 раза.
Цитата
# CONFIG_MODULE_COMPRESS_NONE is not set
# CONFIG_MODULE_COMPRESS_GZIP is not set
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULE_COMPRESS_ZSTD=y

Поставил вчера 000-kernel-5.13.0-pf5-lf5_64.pfs, пока мало времени прошло, чтобы делать выводы.


upd. Или при сборке в модуль *.pfs, там уже все сжимается и так?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Август 2021, 10:16:22
CONFIG_NET_SCH_FQ
513 для i686 не ест такие конфиги. Откуда взяли?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 20 Август 2021, 10:17:47
https://sysadmin.pm/bbr-algo/
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Август 2021, 10:21:35
https://sysadmin.pm/bbr-algo/
Прчему-то с этим параметрами i686 ядро не компилилось
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Август 2021, 10:26:57
с этим параметрами i686 ядро не компилилось
Если включить zstd тоже какая-то лажа - см. скрин
Посмотреть доступные : cat /sys/block/zram0/comp_algoritm
В 414 : [lzo] lz4
В 513 : все возможные, в том числе и zstd
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Август 2021, 11:03:47
http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/new/5.13.0-pf5-lf
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 20 Август 2021, 12:41:16
В качестве бреда.

- Заменил папку /usr/lib/modules/5.13.0-pf5-lf5 в 000-kernel-5.13.0-pf5-lf5_64.pfs на /usr/lib/modules/5.13.0-pf5 из linux-pf-generic-5.13.5-1-x86_64.pkg.tar.zst (https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/linux-pf-generic-5.13.5-1-x86_64.pkg.tar.zst).
- Перепаковал в 000-kernel-5.13.0-pf5-lf6_64.pfs
- Использовал vmlinuz-5.13.0-pf5-lf5_64. Запускал с uird, Initializing filesystem: aufs.

Система грузится, модули отключаются/включаются на горячую.
Т.е. достаточно скомпилить vmlinuz с aufs, а все остальное для 000-kernel взять готовое с бинарного пакета? Это бы сэкономило и время и ресурсы железа.


p.s. Проверял в вирте, на флешке, prar2103.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Август 2021, 12:58:54
Интересный эксперимент. Может и nvidia и пр. от других ядер подойдут....
достаточно скомпилить vmlinuz с aufs
монолитно. Только я не знаю как такое сделать. Проще компилить маленькое ядро. А кому надо модули к нему от родного pf подтянет
Ну а вообще метод стремный - надо тестировать
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 11 Октябрь 2021, 11:54:03
http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/new/5.13.0-pf5-lf
Не загрузился с флэшки fat32.
Для iwd тоже не хватило компонентов. Удалю это ядро
Заменил папку /usr/lib/modules/5.13.0-pf5-lf5 в 000-kernel-5.13.0-pf5-lf5_64.pfs на /usr/lib/modules/5.13.0-pf5 из linux-pf-generic-5.13.5-1-x86_64.pkg.tar.zst.
Если с 5.13.0-pf5-lf такое прокатит и например , это поможет iwd - надо ли что-то больше маленького ядра...
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 11 Октябрь 2021, 13:24:08
В качестве бреда.
Попробовал повторить.
Система грузится, модули отключаются/включаются на горячую
Да. потому что ауфс монолитно.
Но lsmod пустой и modprobe любого модуля дает Exec format err
Ничего не путаете?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 11 Октябрь 2021, 18:39:23
Проверял в вирте, не долго. И речь о *.pfs модулях, я проверял именно работу aufs, которого нет исходном бинарнике (https://gitlab.com/post-factum/pf-kernel/-/wikis/README#but-i-want-binary-builds) pf-linux.


И да, это всего лишь тест, не обязательный к практике.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 20 Декабрь 2021, 14:15:15
https://sysadmin.pm/bbr-algo/
Подставлять не bbr, а bbr2. Подсмотрел при тестировании ядра xanmod, там это включено по умолчанию.
Код
live@roll2110 ~ % sudo sysctl -a | grep congestion           
net.ipv4.tcp_allowed_congestion_control = reno cubic bbr2
net.ipv4.tcp_available_congestion_control = reno cubic bbr2
net.ipv4.tcp_congestion_control = bbr2

live@roll2110 ~ % sudo sysctl net.core.default_qdisc
net.core.default_qdisc = fq_codel

Последняя команда, выше, не работает в наших 'резаных' ядрах, но в полном 5.15-pf4 - ok.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Декабрь 2021, 14:27:18
513-pf-lf собрано : CONFIG_TCP_CONG_BBR=m
CONFIG_TCP_CONG_BBR2=m
Не работает? Нужно что-то еще?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 20 Декабрь 2021, 14:41:05
Здесь ситуация как в соседней теме с планшетом, вроде все в наличии, но не работает.

Имхо, надо не с конфигом от Pro работать, добавляя нужные параметры, что напоминает латание дыр. А брать полный .config от автора и уже его резать потихоньку и осмысленно.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 20 Декабрь 2021, 14:55:18
не работает.
В 513-pf-lf5 тоже? Там как раз плясали от авторского конфига
осмысленно
У меня нет такой квалификации по ядру. Максимум что смогу - прикрутить к авторскому ауфс
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 20 Декабрь 2021, 16:04:12
У меня нет такой квалификации по ядру.
Как вариант, погонять железо с Modprobed-db (https://wiki.archlinux.org/title/Modprobed-db), затем создать .config_pra, который очень сильно похудеет, и сравнить с авторским с помощью diff. И уже вот этот .config_diff и взять в разработку.

Суть идеи, что в .config_diff будет указано только не поддерживаемое железо, а все авторские фичи и оптимизации останутся в .config_pra. И прореживать придется не полный конфиг, а только .config_diff. И здесь уже может пригодиться конфиг Pro, для сравнения, поддержку какого железа оставить.


Надеюсь смог внятно объяснить.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 21 Декабрь 2021, 10:27:48
погонять железо с Modprobed-db
Чье? С этим есть смысл баловаться только индивидуально под свое железо. У нас был скрипт из пупи, который коцал модули ядра. Потом втыкаешь что-нибудь в юсб и облом :))
А точнее смысла нет вообще, т.к. маленькие модули актуальны только для copy2ram. А из 000-kernel все нужное при старте системы  загружается в память. Т.е. без copy2ram 000-kernel флэшку с системой получалось вытащить. Экспериментировал давно
Т.е малый размер 000-kernel актуален только для таких извращений
И даже наоборот. Впихивание много чего монолитно = увеличение размера kernel, который всегда в памяти. А вот количество .ko память не жрет, т.к. udev загружает только нужные вашему железу

По ядром планирую : компилить раз в год маленькое ядро pf c конфигом от Pro. По моему опыту оно подходит к большинству железа
У кого с такими ядрами что-то не пошло по железу - там же есть большие ядра. Самое свежее с ауфс - 57manjaro. Можно бы и обновить. Вот (https://forum.puppyrus.org/index.php?topic=16675.msg100386#msg100386) список доноров. Сделаете?

По маленьким ядрам экспериментировал - конфиг от porteus + src от pfs, гибрид конфигов Pro+pf. В итоге вылезала лажа. Смирился

По хитрым фишкам типа uksm le9 и т.п. - думаю что народ не вдупляет и всем пофигу. В большинстве дистров этого нет
У меня по ядрам особой квалификации нет и особо увеличивать ее не планирую
Весь мой опыт в PKGBUILD последнего моего ядра. Если вам тема интересна - занимайтесь . Что сам знаю - подскажу
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 21 Декабрь 2021, 12:25:21
Надеюсь смог внятно объяснить.
Не смог. Попробую еще раз.


Суть проблемы с нашими 'резанными' ядрами, что за основу берется древний конфиг Pro, который создавался при царе Горохе и многих авторских фич и оптимизаций там просто нет, плюс нет поддержки железа до 2021 года включительно.
Если бы у автора pf было на gitlab указание по годам, что он добавил в ядра, какие изменения, было бы проще. 'Мы' бы брали конфиг Pro как основу и добавляли эти изменения. Но такого нет, у post-factum только кратенький анонс некоторых фич, все остальное скрыто под 'капотом'.
Но ведь тогда вроде возникает прекрасная идея диффнуть авторский конфиг относительно Pro, как сейчас и делает sfs. Но вот здесь и требуется высокая квалификация сборщика - что вернуть обратно, а что нет, при этом не сломав настроенное автором. И этой квалификации нет у sfs, как он сам и признает.


Что я предложил вчерашним постом, попытаюсь дать более развернутый ответ:
- Откинуть из авторского конфига полностью все железо с помощью Modprobed-db, запущенного на любом гипотетическом компе... sfs. ) Это будет подобно выжатой мокрой тряпке, авторский .config очень сильно 'похудеет'. Вся вода - это .config_iron_diff (железо). В сухом остатке - .config_optimizations (все фичи, оптимизации и настройки), в него не лезем, т.к. не имеем "понимания".
- Берем пустой .config_pra, копируем в него .config_optimizations, как есть, и только теперь начинаем вдумчиво добавлять параметры из .config_iron_diff. Здесь может помочь на начальном этапе конфиг Pro, т.е. все совпадения с .config_iron_diff берем не задумываясь. А вот дальше уже надо думать..., наверно 'шерстить' наши темы, типа соседней темы с планшетом.



p.s. Для понимания, зачем такие 'извращения' и почему бы не брать полное авторское ядро, прикрутив к нему aufs:
- Чем меньше конфиг, тем быстрее соберется ядро, с меньшими затратами процессорного времени. Есть и другие резоны, типа маленькое ядро удобней при использовании copy2ram, но считаю это менее важным, чем исключить многочасовой обогрев атмосферы. Не думаю, что конфигурация железа sfs заточена на компиляцию разных тяжелых проектов.

Возможно, если бы post-factum добавил поддержку aufs в свои ядра, было бы проще. Учитывая, что он выкладывает бинарные сборки, достаточно было бы собрать модуль aufs c dkms. Но общая тенденция в мире линукс, отказ от него в пользу overlay.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 21 Декабрь 2021, 12:30:23
У кого с такими ядрами что-то не пошло по железу - там же есть большие ядра. Самое свежее с ауфс - 57manjaro.
По уму, le9 должен быть обязательным для всех наших ядер.

По хитрым фишкам типа uksm le9 и т.п. - думаю что народ не вдупляет и всем пофигу. В большинстве дистров этого нет
Во-первых, были положительные отзывы и среди форумчан. Во-вторых, именно такая позиция и работает во вред популяризации линукс. Попробовав его впервые, забив память и столкнувшись с дичайшими тормозами при подключении свопа, новичок 'плюется' и возвращается на Windows, где работа с памятью более оптимизирована.

Сделаете?
Я уже больше недели юзаю авторское бинарное 5.15-pf4, и планирую продолжать и далее. Надеюсь в будущем подвезут и горячее подключение. Пока же доволен работающими всеми авторскими фичами и оптимизациями.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: krasnyh от 21 Декабрь 2021, 12:34:06
У меня по ядрам особой квалификации нет и особо увеличивать ее не планирую
Значит мой большой пост выше считать не актуальным, но удалять не буду.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 21 Декабрь 2021, 13:21:28
за основу берется древний конфиг Pro, который создавался при царе Горохе и многих авторских фич и оптимизаций там просто нет,
Вот вы поюзали свежее ядро от пф. Что по итогу удалось выявить чего нет в 513пф-лф?
По последним выявленным косякам с железом мы все-равно не пришли к чему-то больше чем "видимо с этой версией ядра это не работает"
Что я предложил вчерашним постом
Почему сами не хотите это попробовать? У меня по ядру знаний не больше чем у вас. Или к кому обращение?
По уму, le9 должен быть обязательным для всех наших ядер.
513 с этой фичей есть под 32 и 64 и еще есть 414 под 32
А восторгов по le9 от юзеров нет
народ не вдупляет и всем пофигу
были положительные отзывы и среди форумчан.
Можно ссылки?
такая позиция и работает во вред популяризации линукс
Выше головы не прыгнуть. Лучше четко понимать что делать не умеешь и искать других путей, чем накосячить и всем такое рекламировать
юзаю авторское бинарное 5.15-pf4, и планирую продолжать и далее.
Да. Это очень интересно. Держите в курсе. Может  вдохновит меня или еще кого

Вот список доноров.
Думаю попробовать mageia . Там самое свежее 515
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: DdShurick от 21 Декабрь 2021, 17:22:58
Думаю попробовать mageia . Там самое свежее 515
Код
bash-4.4# get_txz -l kernel
/a/kernel-firmware-20211216_f682ecb-noarch-1.txz
/a/kernel-generic-5.15.10-x86_64-1.txz
/a/kernel-huge-5.15.10-x86_64-1.txz
/a/kernel-modules-5.15.10-x86_64-1.txz
/d/kernel-headers-5.15.10-x86-1.txz
/k/kernel-source-5.15.10-noarch-1.txz
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 21 Декабрь 2021, 17:28:40
kernel-generic-5.15.10-x86_64-1.txz
Из слаки? ауфс есть?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: DdShurick от 21 Декабрь 2021, 18:15:04
ауфс есть?
В generic скорее всего нет.
Возьми мой скрипт get_txz, выкачай и посмотри.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 29 Декабрь 2021, 15:47:22
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-am
Скомпилил : арч конфиг +pf +aufs + перевод некоторых модулей в монолитные (cм. файл mono) для загрузки с инитрд без модулей ядра - т.е. это большое, но монолитное pf ядро с aufs
PKGBUILD приложен
vmlinuz великоват получился - 15мб. Можно пересмотреть mono в сторону уменьшения...
В прошлой попытке получилась лажа с фат. На уровне инитрд фат не монттировался (т.е. с него было дистр не загрузить). Теперь норм (проверил загрузку с ext ntfs3 fat)

http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-aufs - только добавил aufs. Т.е. остальное как у автора pf (конфиг у него полностью из арча, добавлено только BFQ)
Инитрд надо собирать с модулями (пока не собирал)

Какое ставить в пра-ролл.iso ?

Сейчас компилю маленькое ядро : конфиг из пупи слако (https://archive.org/download/Puppy_Linux_Huge-Kernels/huge-5.15.6-slac64oz.tar.bz2) +pf +необходимое для iwd
Т.е. возврат к истокам :)
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 29 Декабрь 2021, 17:21:51
Да. можно и так
компилю маленькое ядро : конфиг из пупи слако +pf +необходимое для iwd
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-ps
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: DdShurick от 29 Декабрь 2021, 17:30:18
5.15.0-pf5-am
В Richy64 работает, но не запустились автоматом при старте retrovol и trayNet. Из консоли запускаются.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 29 Декабрь 2021, 17:49:03
В Richy64 работает, но не запустились автоматом
А с другими ядрами работает? Попробуйте sleep 3 && retrovol
Может не успевает до старта Х
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 31 Декабрь 2021, 20:01:32
компилю маленькое ядро : конфиг из пупи слако +pf +необходимое для iwd
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-ps
ядро 8мб - не так уж и мало. Вспомнил про porteus (https://forum.porteus.org/viewtopic.php?p=52232#p52232)
https://www.mediafire.com/file/oh33nqzh6gevnwz/mkKernel-21.12.26-noarch-1.xzm
Скомпилил - 5,7 . Проверил загрузку с ntfs3 ext4 fat, uksm - норм. Проблемы с amd  нет
Не работает radeon ,т.е. на ATI видяхах разрешение экрана маленькое и не увеличить

Немного подразобрался с компиляцией ядра. Подредактировал cfg.tar.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-pt3/cfg.tar.xz)
64bit.config - конфиг porteus (маленький монолитный)
config_arch_generic0 - конфиг arch (большой модульный)
pf_defconfig-lf - мои правки поверх конфига

Пришел к выводу, что надо стремиться с минимальному vmlinuz (т.к. он всегда в памяти). Количество модулей.ko всегда можно уменьшить простым удалением

1.  берем конфиг портеус + через pf_defconfig-lf-lpt3 удаляем в модули.ko  ФС , редко используемые для загрузки фругала
Код
# grep "_FS=m" pf_defconfig-lf-pt3 
CONFIG_NTFS_FS=m
CONFIG_BTRFS_FS=m
CONFIG_NTFS_FS=m
CONFIG_REISERFS_FS=m
CONFIG_XFS_FS=m
NTFS3 монолитно.
Получаем  монолитный (не требуется собрать инитрд с модулями.ko) vmlinuz 4,9мб  http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-pt3
Пробовал убирать scsi raid - выигрыш в размере несущественный, т.е. это предел для монолита

Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: DdShurick от 31 Декабрь 2021, 21:59:54
kernel-5.15.0-pf5-pt3
Загрузилось легко и непринуждённо (на Richy). Проблема та-же, причина - не срабатывает "export DISPLAY" в trayNetUp. На 5.13 - норм.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 01 Январь 2022, 01:40:11
5.15.0-pf5-pt3 - конфиг портеуса более урезанный, чем у Pro  (на котором 513-pf-lf). Cюрпризы возможны. Тестируем. Сам пока ничего не выявил
Завтра выложу большое монолитное 9,8 мб

Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: DdShurick от 01 Январь 2022, 10:41:38
Cюрпризы возможны.
udev ругается на отсутствие групп netdev, dialout, input, cdrom, tape, plugdev, на 5.13.0 не было. При vga=791 вместо кириллицы квадратики, vga=normal - нормально, на 5.13.0 тоже это наблюдается.
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 01 Январь 2022, 12:37:04
udev ругается на отсутствие групп netdev, dialout, input, cdrom, tape, plugdev,
В Ричи? Как это увидеть? В итоге из-за этого что-то не работает?
vga=791 вместо кириллицы квадратики
В параметрах ядра? Квадратики в консоле до Х? Зачем такое задавать?
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: DdShurick от 01 Январь 2022, 15:30:06
Как это увидеть?
Глазами.
В итоге из-за этого что-то не работает?
Всё работает, но на всякий случай создал недостаюшие группы.
Квадратики в консоле до Х?
В первичной (initrd)
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 04 Январь 2022, 17:38:21
У меня есть, а в новых ядрах?
В моих ядрах до 2022 года от pf был только uksm, т.к. использовался (https://aur.archlinux.org/cgit/aur.git/tree/pf_defconfig?h=linux-pf) не авторский конфиг  :'(

Переделал систему сборки PKGBUILD-pf-pt14.tar.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/PKGBUILD-pf-pt14.tar.xz)

http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-pt14o3
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-pt14
Оба маленькие (на базе конфига porteus) монолитные (без пересборки инитрд).
Должны (не все проверил) грузиться с ext ntfs3 fat разделов всех носителей . btrfs и пр. FS
 есть, но модулем (т.е. надо собирать rootaufs или uird initrd с udev и модулями.ko)

Отличаются CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3=y 6,2M : vmlinuz-5.15.0-pf5-pt14o3_64
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set  :     4,6M   vmlinuz-5.15.0-pf5-pt14_64
CONFIG_ZSWAP is not set , т.к. у нас  и в porteus не используется, а CONFIG_ZSWAP =m нельзя. Чтобы не раздувать vmlinuz. Не путать с zram (который есть)
Здесь есть все pf (https://build.opensuse.org/package/view_file/home:post-factum:kernels/linux-pf-generic/config_arch_generic?expand=1)  : PKGBUILD-pf-pt14/pf+.config

стоит ли так "пересушивать" ядро?
В LFD10 будет маленький монолитный 5.15.0-pf5-pt14 (https://forum.puppyrus.org/index.php?topic=23523.msg181750#msg181750), но с усеченным функционалом, который требуется редко.
Если потребовался - переходим на большое ядро (https://forum.puppyrus.org/index.php?topic=23523.msg182014#msg182014) :
в prar.iso mg2 поставить : полумонолитный - загрузка с ext ntfs3 fat разделов HDD SSD. C DVD USBflash и пр. FS загрузится только с initrd-raf2 или uird .
По итогу часто востребованное можно перенести в маленькое ядро
Большое ядро c porteus-initrd (без udev) не грузится только с DVD и USB - там удобнее маленькое ядро

initrd получается "привязанный"
rootaufs2 инитрд легко собирается в любом арче. uird везде.  Для сборки в прар надо подключить 070-prar-full

initrd-raf2-5.16.0-pf1-mg2-fallback.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.16.0-pf1-mg2/initrd-raf2-5.16.0-pf1-mg2-fallback.xz)
uird.lfa.cpio.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.16.0-pf1-mg2/uird.lfa.cpio.xz)
000-kernel-5.16.0-pf1-mg2-net+_64.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.16.0-pf1-mg2/drv/000-kernel-5.16.0-pf1-mg2-net+_64.pfs) - куча дополнительных дров сетевух сделанные этим (https://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/kernel-net-dkms-220107.sh) скриптом. Если без него у вас видны все сетевухи = он вам не нужен
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 04 Январь 2022, 19:59:33
А вот большое монолитное
Большой конфиг взят из Магеи (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.10-desktop-1.mga9-drv/) . В нем меньше монолита (который не нужен в инитрд и может быть в .ko) по сравнению а арчем (pf)
OPTIMIZE_FOR_PERFORMANCE_O3 (без него vmlinuz на 1mb меньше) - могу выложить
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-mgm
Остальное (все pf фичи и т.п.) навернуты поверх, как в pt14*
CONFIG_ZSWAP =y

Что интересно, скорость загрузки системы с этим ядром на треть меньше  (10 сек) по сравнению с pt14* (16 сек)
За счет чего - непонятно...
Название: Re: Монолитное ядро. Скрипт преобразования любого конфига
Отправлено: sfs от 05 Январь 2022, 12:07:37
Во всех моих ядрах 5.15-pf 2022 года должен работать iwd. Надо будет изучить его...
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 11 Январь 2022, 16:16:32
Выпуск 5.16
Уже компилю чтобы порешать с фат. На 515mgm опять проблема с загрузкой с фат. Видимо не хватает монолитных nls
Да. nls_437 nls_iso8859_1 помогли, но дальше попробовал с сд (исо в виртуалке) - еще повылезало. Потом попробовал с usb - еще повылезало. Если все это добавить монолитно - будет совсем большой размер vmlinuz

В итоге решил, что буду компилить одно большое немонолитное ядро (с пересборкой инитрд).
Всетаки маленькое ядро удобнее и Компилится быстрее. Сам не сталкивался пока, чтобы в нем чего-то мне не хватало. Пока с этим не определились надо делать 2
Пойдет в прар lfds. Сейчас компилю 516

И одно маленькое монолитное https://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.15.0-pf5-pt14/ Сейчас на базе конфига porteus.  Пойдет в LFD
Можно вместо него rконфиг от пупи. Еще где есть хорошие маленькие ядра - не знаю. Предлагайте
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 11 Январь 2022, 18:00:54
Сейчас компилю 516
Все фичи pf как в авторском. Исходный конфиг от mageia
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.16.0-pf1-mg2 Частично монолитное. C porteus-initrd не грузится с CD и USB. C HDD SSD - норм (ext fat ntfs3)
http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.16.0-pf1-mg3 - немонолитное. Инитрд выложу позже
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: DdShurick от 11 Январь 2022, 18:42:49
5.16.0-pf1-mg2
В Richy не работает (kernel panic). Доходит до "Поиск системных файлов"
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 12 Январь 2022, 11:46:53
5.16.0-pf1-mg2
В Richy не работает (kernel panic). Доходит до "Поиск системных файлов"
У меня на 2х пк с ext4 - норм. с pra-porteus-initrd (без udev и дополнительных .ko)
Вы со своим инитрд пробовали?
Попробуйте с моим http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.16.0-pf1-mg2/initrd-raf2-5.16.0-pf1-mg2-fs.xz - это с полной поддержкой железа. Должно работать везде
kernel-5.15.0-pf5-pt3
Загрузилось легко и непринуждённо (на Richy). Проблема та-же, причина - не срабатывает "export DISPLAY" в trayNetUp. На 5.13 - норм.
А kernel-5.15.0-pf5-pt14 не пробовали? Он монолитный
А в прар не пробовали? trayNetUp проблема есть?
Т.е. в чем проблема - в ядре дистре или проге?

Кто еще пробовал мои 5.16? Думаю - в prar.iso mg2 поставить : полумонолитный - загрузка с ext ntfs3 fat разделов HDD SSD. C DVD USBflash и пр. FS загрузится только с initrd-raf2 или uird . То что без сильного раздувания vmlinuz и без .ko в инитрд грузится с HDD SSD - удобно
Надо бы определиться - какой вариант далее компилить mg2 или mg3...
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: DdShurick от 12 Январь 2022, 12:55:29
Вы со своим инитрд пробовали?
Да.
Попробуйте с моим
С Richy не прокатит.
Попробовал войти в первичную консоль (rdsh=0), посмотреть подробнее, что там, не видит клавиатуру :(.
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 12 Январь 2022, 15:40:01
Если у вас  udev + доп модули ядра в инитрд не организовать - вам только 5.15.0-pf5-pt14 подойдет
В 5.16.0-pf1-mg2 по минимуму. В 5.16.0-pf1-mg3 почти ничего
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: DdShurick от 12 Январь 2022, 20:41:08
В 5.16.0-pf1-mg2 по минимуму. В 5.16.0-pf1-mg3 почти ничего
А стоит ли так "пересушивать" ядро? Ведь initrd получается "привязанный". Понятно, что уменьшится расход RAM, но, как ты сам любишь говорить, "по сравнению с браузенром...."
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 13 Январь 2022, 09:48:49
Ответил в конце этого (https://forum.puppyrus.org/index.php?topic=23523.msg181750#msg181750) сообщения
Название: Re: Монолитное ядро. Преобразования любого конфига
Отправлено: sfs от 13 Январь 2022, 17:16:20
initrd-raf2-5.16.0-pf1-mg2-fallback.xz
uird.lfa.cpio.xz
000-kernel-5.16.0-pf1-mg2-net+_64.pfs - куча дополнительных дров сетевух сделанные этим скриптом. Если без него у вас видны все сетевухи = он вам не нужен