Сайт | Скачать | Видео | Wiki

Автор Тема: Монолитное ядро. Преобразования любого конфига  (Прочитано 15183 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
В качестве бреда.

- Заменил папку /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.
- Перепаковал в 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.
« Последнее редактирование: 20 Август 2021, 12:47:09 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Интересный эксперимент. Может и nvidia и пр. от других ядер подойдут....
достаточно скомпилить vmlinuz с aufs
монолитно. Только я не знаю как такое сделать. Проще компилить маленькое ядро. А кому надо модули к нему от родного pf подтянет
Ну а вообще метод стремный - надо тестировать

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
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 - надо ли что-то больше маленького ядра...

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
В качестве бреда.
Попробовал повторить.
Система грузится, модули отключаются/включаются на горячую
Да. потому что ауфс монолитно.
Но lsmod пустой и modprobe любого модуля дает Exec format err
Ничего не путаете?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Проверял в вирте, не долго. И речь о *.pfs модулях, я проверял именно работу aufs, которого нет исходном бинарнике pf-linux.


И да, это всего лишь тест, не обязательный к практике.
« Последнее редактирование: 11 Октябрь 2021, 18:43:13 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
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.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
513-pf-lf собрано : CONFIG_TCP_CONG_BBR=m
CONFIG_TCP_CONG_BBR2=m
Не работает? Нужно что-то еще?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Здесь ситуация как в соседней теме с планшетом, вроде все в наличии, но не работает.

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
не работает.
В 513-pf-lf5 тоже? Там как раз плясали от авторского конфига
осмысленно
У меня нет такой квалификации по ядру. Максимум что смогу - прикрутить к авторскому ауфс

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
У меня нет такой квалификации по ядру.
Как вариант, погонять железо с Modprobed-db, затем создать .config_pra, который очень сильно похудеет, и сравнить с авторским с помощью diff. И уже вот этот .config_diff и взять в разработку.

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


Надеюсь смог внятно объяснить.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
погонять железо с Modprobed-db
Чье? С этим есть смысл баловаться только индивидуально под свое железо. У нас был скрипт из пупи, который коцал модули ядра. Потом втыкаешь что-нибудь в юсб и облом :))
А точнее смысла нет вообще, т.к. маленькие модули актуальны только для copy2ram. А из 000-kernel все нужное при старте системы  загружается в память. Т.е. без copy2ram 000-kernel флэшку с системой получалось вытащить. Экспериментировал давно
Т.е малый размер 000-kernel актуален только для таких извращений
И даже наоборот. Впихивание много чего монолитно = увеличение размера kernel, который всегда в памяти. А вот количество .ko память не жрет, т.к. udev загружает только нужные вашему железу

По ядром планирую : компилить раз в год маленькое ядро pf c конфигом от Pro. По моему опыту оно подходит к большинству железа
У кого с такими ядрами что-то не пошло по железу - там же есть большие ядра. Самое свежее с ауфс - 57manjaro. Можно бы и обновить. Вот список доноров. Сделаете?

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

По хитрым фишкам типа uksm le9 и т.п. - думаю что народ не вдупляет и всем пофигу. В большинстве дистров этого нет
У меня по ядрам особой квалификации нет и особо увеличивать ее не планирую
Весь мой опыт в PKGBUILD последнего моего ядра. Если вам тема интересна - занимайтесь . Что сам знаю - подскажу
« Последнее редактирование: 21 Декабрь 2021, 10:29:57 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Надеюсь смог внятно объяснить.
Не смог. Попробую еще раз.


Суть проблемы с нашими 'резанными' ядрами, что за основу берется древний конфиг 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.
« Последнее редактирование: 21 Декабрь 2021, 12:40:05 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
У кого с такими ядрами что-то не пошло по железу - там же есть большие ядра. Самое свежее с ауфс - 57manjaro.
По уму, le9 должен быть обязательным для всех наших ядер.

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

Сделаете?
Я уже больше недели юзаю авторское бинарное 5.15-pf4, и планирую продолжать и далее. Надеюсь в будущем подвезут и горячее подключение. Пока же доволен работающими всеми авторскими фичами и оптимизациями.
« Последнее редактирование: 21 Декабрь 2021, 12:35:55 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
У меня по ядрам особой квалификации нет и особо увеличивать ее не планирую
Значит мой большой пост выше считать не актуальным, но удалять не буду.