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

Разработки проекта PuppyRus => Разработка PFS и Initrd => Initrd UIRD => Тема начата: sfs от 10 Март 2020, 10:04:34

Название: UIRD и zram
Отправлено: sfs от 10 Март 2020, 10:04:34
Лично меня из того , чего нет в прочих инитрд, в юирд интересует :
frugal+save.pfs+zram = экономия RAM
Т.е. неубиваемый фругал со сжатием памяти tmpfs
Юзал zswap  - пока не определился, дает что-то или нет
Есть вообще смысл в zram или zswap (одним скриптом в уже загруженной системе)
uird.rootfs=zram::SIZE=90::ALG=lzo

Может по такой схеме и организовать внедреж юирд  : в центральной теме кратко описать доп. возможности
Отдельными темами , как эта, обсуждать конкретные применения
Может перенести все про юирд в раздел юирд? Т.е. переделать тему (http://forum.puppyrus.org/index.php?topic=16558.0) на раздел
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 10:58:37
По разделению тем как хотите.
По зраму надо разбираться почему не завелось, в магос нормально работает, с айсарчем вроде тоже, но лучше перепроверить.
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 11:28:42
uird.rootfs=zram::SIZE=90::ALG=lzo
все что после zram не обязательно.

В примерах есть еще один вариант со сжатием в RAM без использрвания zram.

А для свопа uird.swap=zram либо uird.swap=auto Во втором варианте zram-swap будет использоваться в случае если не найден своп раздел.
Название: Re: UIRD. zram
Отправлено: sfs от 10 Март 2020, 11:33:06
есть еще один вариант со сжатием в RAM без использрвания zram.
На каком принципе?
А вообще :
Есть вообще смысл в zram или zswap
ни у кого нет впечатлений?
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 11:40:41
На каком принципе?
В tmpfs создается имж файл нужного размера, форматируется в бтрфс и монтируется в /memory/changes с компрессией. Получаем changes в рам со сжатием.
А вообще :
Цитата: sfs от Сегодня в 10:04:34
Есть вообще смысл в zram или zswap
Zswap и zram даже близко не одно и тоже. Мы про что сейчас про своп? Или про рутфс?
Название: Re: UIRD. zram
Отправлено: sfs от 10 Март 2020, 11:44:14
В tmpfs создается имж файл нужного размера, форматируется в бтрфс
жесть :) Оно хоть стоит того
Zswap и zram даже близко не одно и тоже. Мы про что сейчас про своп? Или про рутфс?
Интересует любая экономия RAM для фругала с save.pfs
Чем эффективнее и проще - тем лучше
zswap - очень просто. По эффективности не определился
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 11:54:51
жесть  Оно хоть стоит того
А я не знаю :) Прикол в том, что специально я этого не делал. Оно само заработало, когда добавил возможность создание имж уирдом если не найден.
А сама идея stea61 если не ошибаюсь.
Zram это блочное устройство с прозрачным сжатием, если форматнуть его в своп можно подключить как своп, а если в ext4 то как changes. А можно два зрама и своп и ченджез.
uird.rootfs=zram исполдзую сейчас всегда. Жмет вдое стабильно.
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 12:05:16
 Zram проигрывает tmpfs в качестве рутфс только в том, что зрам не может использовать своп, а тмпфс может.

Своп использую с uird.swap=auto
Логика работы в таком режиме следующая. Если найден раздел своп, то подключает его плюс zswap. Если раздел не найден то zram-swap.
Название: Re: UIRD. zram
Отправлено: sfs от 10 Март 2020, 12:07:49
Т.е. юзать zswap без zram ?
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 12:21:48
Лично у меня рутфс это зрам, и zswap дополнительно к разделу со свопом.
Название: Re: UIRD. zram
Отправлено: sfs от 10 Март 2020, 13:40:14
Попробовал на aarch64 :
Код
mount |grep zram
/dev/zram1 on /memory type ext4
Т.е. работает?
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 14:00:27
Вот так можно надежно проверить.
df /memory/
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/zram1         5,4G          52M  5,0G            2% /memory
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 14:44:17
жесть  Оно хоть стоит того
Сейчас пришло в голову как это может быть полезно.
Если использовать такой имж в RAM не для рутфс, а для хомяка можно ограничить этим его размер. Чтоб всю память не засрал.
Название: Re: UIRD. zram
Отправлено: sfs от 10 Март 2020, 15:23:52
От обилия возможностей сносит крышу  :)
Надо как-то упрощать подачу материала. От простого к сложному
Местные юзера не вывезут. Ну и все-таки - uird для опытных , как его не упрощай

Функционал огромный, но я себе ничего особо полезного не нашел
В основном - как в этой теме - усложнение с не всегда однозначным улучшением
Юзаю фругал+save.pfs load noload или фул с aufs заморозкой (что позволяет по горячему подключать модули)
Что из доп. возможностей юирд мне , на ваш взгляд, было бы полезно , например мне, как домашнему юзеру? Т.е. чем бы заинтересовать юзеров...
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 16:46:28
 Мы же делаем сборку для опытных пользователей :)
А от людей, да, лишнее надо прятать в расширенные меню вики и т.д.
Название: Re: UIRD. zram
Отправлено: sfs от 10 Март 2020, 16:50:35
Мы же делаем сборку для опытных пользователей
Тогда достаточно вбросить PKGBUILD на арч форум или сразу в AUR (я не умею)  :)
Название: Re: UIRD. zram
Отправлено: kostyalamer от 10 Март 2020, 18:51:47
Мы же делаем сборку для опытных пользователей
Тогда достаточно вбросить PKGBUILD на арч форум или сразу в AUR (я не умею)  :)
Александр , мы с тобой эту тему уже обсуждали : http://forum.puppyrus.org/index.php?topic=22233.0
В чем затык ? Может подскажу что-нибудь если надо.
Название: Re: UIRD. zram
Отправлено: krasnyh от 10 Март 2020, 20:14:31
В чем затык ? Может подскажу что-нибудь если надо.
Здесь (https://mirror.yandex.ru/puppyrus/puppyrus-a/PKGBUILD/uird-2002.03.01/) взять два файла 50-dracut.install и PKGBUILD и собрать командой makepkg. На выходе должно получиться три файла uird-*, uird-dracut, uird-busybox.

Sfs написал PKGBUILD, проверил на aarch64 (http://forum.puppyrus.org/index.php?topic=22543.msg167488#msg167488), все ok. Я же на IceArch как ни собираю постоянно:
    ==> ОШИБКА: Произошел сбой в package_uird-busybox().
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 20:17:50
ОШИБКА: Произошел сбой в package_uird-busybox().
После появления ошибки попробуйте собирать бизибокс скриптом  make_dracut.sh, поссотрим на что ругается. Скорее всего упустили что-то в зависимостях.
Название: Re: UIRD. zram
Отправлено: betcher от 10 Март 2020, 20:21:55
Помнится с cpio для дракута в айсарче проблема была. Есть он в списке?
Название: Re: UIRD. zram
Отправлено: kostyalamer от 10 Март 2020, 21:56:42
Ошибку сборки подтверждаю , пакет cpio установлен :
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -D_FORTIFY_SOURCE=2  -c -o install/dracut-install.o install/dracut-install.c
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -D_FORTIFY_SOURCE=2  -c -o install/hashmap.o install/hashmap.c
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -D_FORTIFY_SOURCE=2  -c -o install/log.o install/log.c
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -D_FORTIFY_SOURCE=2  -c -o install/strv.o install/strv.c
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -D_FORTIFY_SOURCE=2  -c -o install/util.o install/util.c
cc -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o install/dracut-install install/dracut-install.o install/hashmap.o install/log.o install/strv.o install/util.o  -lkmod
ln -fs install/dracut-install dracut-install
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -D_FORTIFY_SOURCE=2  -c -o skipcpio/skipcpio.o skipcpio/skipcpio.c
cc -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now  skipcpio/skipcpio.o   -o skipcpio/skipcpio

==> Вход в окружение fakeroot...
==> Запускается package_uird-busybox()...
install: не удалось выполнить stat для '/home/k/sfs_drac/src/uird/busybox/busybox': Нет такого файла или каталога
==> ОШИБКА: Произошел сбой в package_uird-busybox().
    Прерывание...


И правда нет такого файла :
k@icearch:~/sfs_drac/src/uird/busybox/$ ls
applets/                coreutils/    INSTALL          Makefile.flags           procps/                  testsuite/
applets_sh/             debianutils/  klibc-utils/     Makefile.help            qemu_multiarch_testing/  TODO
arch/                   docs/         libbb/           make_single_applets.sh*  README                   TODO_unicode
archival/               e2fsprogs/    libpwdgrp/       miscutils/               runit/                   util-linux/
AUTHORS                 editors/      LICENSE          modutils/                scripts/
busybox_unstripped.out  examples/     loginutils/      networking/              selinux/
Config.in               findutils/    mailutils/       NOFORK_NOEXEC.lst        shell/
configs/                include/      Makefile         NOFORK_NOEXEC.sh*        size_single_applets.sh*
console-tools/          init/         Makefile.custom  printutils/              sysklogd/

Название: Re: UIRD. zram
Отправлено: kostyalamer от 10 Март 2020, 22:05:55
Возможно поможет вот это - busybox_unstripped_out :
Output of:
gcc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -Wall -Wshadow -Wwrite-strings
 -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function
 -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wno-format-security
 -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0
 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability
 -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1
 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables
 -fno-builtin-printf -Os -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o
 busybox_unstripped -Wl,--sort-common -Wl,--sort-section,alignment -Wl,--gc-sections -Wl,--start-group
applets/built-in.o archival/lib.a archival/libarchive/lib.a
 console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a
 klibc-utils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a
libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a
 modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a
printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a
util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o
 console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o
 debianutils/built-in.o klibc-utils/built-in.o e2fsprogs/built-in.o editors/built-in.o
 findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o
 loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o
networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o
 printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o
 sysklogd/built-in.o util-linux/built-in.o
util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group -lcrypt -lm -lresolv -Wl,--end-group
==========
/usr/bin/ld: coreutils/lib.a(mktemp.o): в функции «mktemp_main»:
mktemp.c:(.text.mktemp_main+0x96): предупреждение: the use of `mktemp' is dangerous,
 better use `mkstemp' or `mkdtemp'
/usr/bin/ld: util-linux/lib.a(rdate.o): в функции «rdate_main»:
rdate.c:(.text.rdate_main+0x104): неопределённая ссылка на «stime»
/usr/bin/ld: coreutils/lib.a(date.o): в функции «date_main»:
date.c:(.text.date_main+0x25e): неопределённая ссылка на «stime»
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

Название: Re: UIRD. zram
Отправлено: krasnyh от 10 Март 2020, 22:10:31
Как я понял проблема с устаревшим busybox. В IceArch же все самое свежее, отсюда наверно и конфликты. Читать отсюда (http://forum.puppyrus.org/index.php?topic=22543.msg167551#msg167551) и ниже.

Его для сборки 'морозят', т.е. используют стабильную ветку git. Где-то прокатывает, а в IceArch все сыплется ошибками. При этом pacman -S busybox не вариант, пробовал.
Название: Re: UIRD. zram
Отправлено: kostyalamer от 10 Март 2020, 22:43:12
Только что для контроля собрал  https://aur.archlinux.org/packages/busybox-git/
все прекрасно собралось , но глядя в оба PKGBUILD-а настораживает вот что :
1) Сборочные зависимости
У Александра :
makedepends=('make' 'gcc' 'pkgconfig' 'git')
В busybox-git:
makedepends=('git' 'kernel-headers-musl' 'musl' 'ncurses')
2) Сборка
У Александра :
build() {
    msg "If you want to disable an applet, comment pkgbuild variables"
    cd "${srcdir}/${_gitname}"
    [ "${uirdbusybox}" ] && ./make_busybox.sh
    [ "${uirddracut}" ]  && ./make_dracut.sh
    echo
}
и
package_uird-busybox() {
pkgdesc="UIRD busybox"
    cd "${srcdir}/${_gitname}/busybox"
#    make DESTDIR="$pkgdir/usr/lib/uird/busybox" install
    mkdir -p "${pkgdir}"/usr/lib/uird/busybox
    install -m755 "${srcdir}"/${_gitname}/busybox/busybox "${pkgdir}"/usr/lib/uird/busybox
}

В busybox-git :
build() {
  cd "busybox"

  cp "$srcdir/config" ".config"
  yes "" | make oldconfig

  export KCONFIG_NOTIMESTAMP=1  # reproducible build
  make CC=musl-gcc
}
Видно что из git-а он собирается по-другому
Название: Re: UIRD. zram
Отправлено: kostyalamer от 10 Март 2020, 23:32:46
Вот еще make_busybox.sh :
#!/bin/bash
git submodule init
git submodule update
cd busybox
make defconfig
make
# make install
cd ..
которым все и собирается , глядя на предыдущий пост явно не хватает каких-то ключей . Но это все из области предположений  ;)
Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 01:21:02
export KCONFIG_NOTIMESTAMP=1
Вполне может быть. В ошибке как раз что-то про time. Но со свежего среза гит бизибокса собирается и без этого и с make defconfig это важно.
Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 04:56:03
Что из доп. возможностей юирд мне , на ваш взгляд, было бы полезно , например мне, как домашнему юзеру?
- хомяк в папке или файле
- управление размером и типом рутфс (zram)
- toxzm (в магос давно прижился machcines, так toxzm это аналог, только более настраиваемый)
- загрузка фулл с фругальными фишками (toxzm, подключение модулей, теже своп и рутфс)
- монтирование системных каталогов в папки на диск, например для сохранения логов или /var/tmp
- ini конечно же, главное туда примеров накидать закомментареных

Я думаю действительно нужно меню.лст где будет пунктов 3-5 основных моментов и расширенное, которое будет использоваться скорее как примеры для своих пунктов. Имею ввиду в сборках для "людей", то что сейчас делаем можно не разбивать. Сейчас главное чтоб все работало и легко переносилось на любую другую вашу сборку
Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 05:14:00
Тогда достаточно вбросить PKGBUILD на арч форум или сразу в AUR (я не умею) 
Боюсь нас с вами не поймут. Для обычно установленного линукс дистра uird это навороченный аналог rosa freeze :) Сложно будет объяснить нафига вообще все это нужно, учитывая, что объяснить плюсы фругала уже проблема.
Название: Re: UIRD. zram
Отправлено: sfs от 11 Март 2020, 09:24:10
В чем затык ?
В том, что не считаю свои "шедевры" достойными AUR
Если neobht считает, что c PKGBUILD все ок - можете сами выложить.
makedepends=('git' 'kernel-headers-musl' 'musl'
Тогда он соберется под musl . Размер будет меньше, но в инитрд есть и еще бинарники
Придется добавлять или оба (musl и glibs) или компилить все бинарники по musl
Причем, наверное, dracut сам musl-glibc не разберет
Короче - не надо сейчас тут musl

- хомяк в папке или файле
По мне : фругал + rw сохраненка = недо-фул
Уж лучше тогда фул сразу и поставить

управление размером и типом рутфс (zram)
Из этой темы понял, что все не просто. Особеннно это
Zram проигрывает tmpfs в качестве рутфс только в том, что зрам не может использовать своп, а тмпфс может.
Попробую, но чудес не жду
RAM хватает. больба чисто теоретическая
ini конечно же, главное туда примеров накидать закомментареных
Пока не понял как и для чего применять
И главное - не понял чем это лучше просто скрипта, запускаемого уже в системе

Боюсь нас с вами не поймут.
Да. Почему-то большинство фругал игнорирует...
Хотя докер любят. Похоже все идет к тому, что весь софт в докере будет...
Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 09:35:19
По мне : фругал + rw сохраненка = недо-фул
Уж лучше тогда фул сразу и поставить
У фулл не будет возможности отката, не будет возможности подключать модули. Как ни крути фругал+рв интереснее. Как по мне чистый режим + хомяк в папку самый оптимальный режим для установки фругала на диск. Т.е. не для флешки, а как основная система.
Попробую, но чудес не жду
Ну выходит, что в отсутствии свопа zram однозначно лучше чем tmpfs для рутфс. А со свопом уже нужно думать что будет удобнее в конкретном случае. Я бы зрам по умолчанию включал, а тмпф как возможность если нужно, чтоб рутфс мог использовать своп.
Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 09:51:06
Пока не понял как и для чего применять
И главное - не понял чем это лучше просто скрипта, запускаемого уже в системе
Ини это единый файл настройки системы. Там собраны все действия с рутфс после ее сборки уирдом и до старта /сбин/инит (системд).
В первую очередь используем для изменения значений переменных в конфигах /etc, уже это позволяет настроить почти что угодно. Но также можно создавать новые файлы, в том числе исполняемые и выполнить их в системе до старта системд. К примеру сменить пароль пользователя.
Для того чтоб ини пользовались его нужно наполнить закомментаренными примерами с пояснением. Тогда большая часть настроеку вас будет в одном файле. Время, переключение раскладки и т.д.
Название: Re: UIRD. zram
Отправлено: sfs от 11 Март 2020, 10:47:54
У фулл не будет возможности отката, не будет возможности подключать модули.
Если его заморозить через aufs - будет. И на мой взгляд, если надо rw сохраненку - так удобнее
Как ни крути фругал+рв интереснее.
А как ставить обновления? Особенно в бодром арче...
установки фругала на диск. Т.е. не для флешки, а как основная система.
Так вот и получается, что на стационаре не так фругал и удобен
Особенно если линукс - чистый (полностью на родных пакетах)
Вообще тут каждому свое, но в итоге основных вариантов 2:
1. модульный неубиваемый  фругал с ro сохраненкой
2. фул c опциональной aufs заморозкой
Все остальное - где-то между и очень на любителя
Этого остального в uird много, но если не все с фругалом захотят разбираться - с юирд-ом тем более не захотят
Это я рассуждаю на тему популяризации
По хорошему - надо понять просто идею фругала на чем-то простом
А когда захочется большего - юирд
Короче - надо позиционировать "не для новичков"
Название: Re: UIRD. zram
Отправлено: sfs от 11 Март 2020, 10:50:06
Ини это единый файл настройки системы.
В чем прелесть его на стадии инитрд запускать? Почему не в загруженной системе?
Задача инитрд - собрать корень и запустить систему в нем
Надо ли перегружать инитрд...
Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 12:26:42
А когда захочется большего - юирд
Короче - надо позиционировать "не для новичков"
Просто не нужно все вываливать на неокрепшие головы. Простые варианты уирд тоже грузит ведь.
Хотя "не для новичков" может наоборот кого-то заинтересовать. "Че я лошара? Новичковые линуксы юзать :)"
 А по поводу популяризации согласен - тяжело :(

Название: Re: UIRD. zram
Отправлено: betcher от 11 Март 2020, 12:34:24
В чем прелесть его на стадии инитрд запускать
Многие настройки нужны до старта системд или иксов. Например сменить фоновую картинку. Ини же работает и в чистом режиме тоже, вообще без сохраненок.