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

Разработки проекта PuppyRus => Разработка PFS и Initrd => LF (linux frugal). => Тема начата: betcher от 21 Октябрь 2017, 07:45:48

Название: Сборка Initrd UIRD в PRA
Отправлено: betcher от 21 Октябрь 2017, 07:45:48
UIRD (http://forum.puppyrus.org/index.php?topic=16558.0;topicseen)
http://wiki.puppyrus.org/soft/uird

Собрал uird для pra-roll-170808-xfce.iso. Полет нормальный. Грузится, changes и homes работают. Проверил. Чего еще смотреть?
http://files.magos-linux.ru/betcher/uird.pra-roll.cpio.xz

Свежий (https://mirror.yandex.ru/mirrors/magos/netlive/2016.64/MagOS/)
Распаковать:
binwalk-p-2.1.1_any-sf01.pfs (ftp://ftp.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/binwalk-p-2.1.1_any-sf01.pfs)
#!/bin/sh
 offset=$(binwalk -y xz "$1" | awk '$3 ~ /xz/ { print $1; exit }')
 dd if="$1" bs=$offset skip=1 | xz -dc | cpio -id --no-absolute-filenames
Для использования в арче (пра) - удалите /lib/firmware и /lib/modules и создайте симлинки  /usr/lib/firmware /usr/lib/modules


Инструкция по сборке отличается совсем немного. На всякий случай вот:
доустанавливаем пакманом:
git
make
pkg-config
kmod
gcc
glibc
linux-api-headers
busybox (если загружено с уирд, то бизибокс не нужен)

git clone --recursive https://github.com/neobht/uird.git
cd uird
./make_dracut.sh
cd dracut
make install
cd ..

Далее нужен конфиг, они лежат в /uird/configs/uird_configs/
для pra64 конфиг есть, для ролл пока нет по этому
cp pra64 pra-roll
и заменяем внутри все "pra64" на "prar", остальное по желанию :)

Собираем:
./mkuird pra-roll
В стандартном случае загрузит без параметров (без uird параметров, остальные нужны наверное)

З.Ы, Что нужно проверить?
ЗЗЫ Не нашел sync2layer, pfs-utils не те?
ЗЗЗЫ Не хочет вставать загрузчик в Vbox. Запустить скриптр должно быть достаточно? Спрашивает диск, пробовал и sda и sda1 - не грузится зараза.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 21 Октябрь 2017, 08:29:14
доустанавливаем пакманом:
git
Специфика ПРА: подключаем DEVX (http://wiki.puppyrus.org/puppyrus/pra?&#%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F)

Спасибо+ Буду переносить в вики (http://wiki.puppyrus.org/soft/uird)

busybox
Какой нужен ббокс? В арче 2 : https://www.archlinux.org/packages/?sort=&q=busybox&maintainer=&flagged=
если загружено с уирд, то бизибокс не нужен
Т.е. скрипт как-то догадается и вытащит из инитрд...?

для pra64 конфиг есть, для ролл пока нет по этому
А разве тут есть разница для разным пра... или с другими линуксами...
остальное по желанию
А вот тут бы подробнее насписать
В идеале разделить параметры на группы: сеть и т.п.

Не нашел sync2layer,
/usr/local/bin
pfs-utils не те?
Те. Свежак из гит
Не хочет вставать загрузчик в Vbox.
Да. Есть проблема в 64 пра (http://forum.puppyrus.org/index.php?topic=20128.0)

Что нужно проверить?
pfsunload подключенного (и конечно не занятого) uird-ом модуля
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 21 Октябрь 2017, 08:55:49
при сборке ищет бизибокс в /usr/bin, а его там нет похоже. Если установит все проходит нормально.  В uird есть параметр, чтоб копировать файлы из uird  в систему при загрузке. Для  пра  вписал ьуда бизибокс.
Разница в конфиге минимальна, просто чтоб не указывать uird.from=/prar
sync2layer что-то не нашелся. Может сам протупил, перепроверю.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 21 Октябрь 2017, 09:06:00
при сборке ищет бизибокс в /usr/bin, а его там нет похоже
нет - поэтому и вопрос - какой надо ббокс. Вроде работает только с Вашим
В uird есть параметр, чтоб копировать файлы из uird  в систему при загрузке.
Этот костыль нужен только для ПРА-не-roll
sync2layer что-то не нашелся.
В модуле 089-zz-pfs-utils-cli-170502-sf09.pfs

В идеале бы закончить тему PKGBUILD в AUR и пакетами в репе пра
PKGBUILD Почти сделал. В AUR никогда не размещал
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 21 Октябрь 2017, 09:12:44
тот бизибокс, что ставится пакманом - подходит. Костыль можно и убрать, но тогда для сборки нужно будет снова ставить бизибокс в /usr/bin.
По AUR я вряд ли чем помогу, вообще не в теме.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 21 Октябрь 2017, 09:22:43
тот бизибокс, что ставится пакманом - подходит
Какой из двух?
для сборки нужно будет снова ставить бизибокс в /usr/bin.
Не вижу проблемы - прописать в зависимости пакета
По AUR я вряд ли чем помогу, вообще не в теме.
Обозначил свои планы по этой теме
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 21 Октябрь 2017, 09:59:18
Я сейчас не могу сказать который. Можете посмотреть в моем уирд или загрузить с ним и посмотреть в /usr/bin.
packman -S busybox - поставил подходящий :)
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 21 Октябрь 2017, 20:01:29
pfsunload подключенного (и конечно не занятого) uird-ом модуля
Отключает.  Запускал его циклом по каталогу /memory/bundles, из 23 модулей осталось 14, остальные отключил.
BusyBox v1.27.1
sync2layer на месте и даже работает, не пойму как я его потерял :)
Что еще?
Название: Сборка UIRD в PRAR
Отправлено: FelenAmvrosiy от 21 Ноябрь 2018, 16:49:46
Пытаюсь собрать UIRD по betcher'у
Но не получается из-за того что, modinfo не видит модули ядра из mkuird
Что делать?
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 21 Ноябрь 2018, 17:08:31
Подробнее напишите что как делали или возьмите -pf ядро и готовый initrd-uird
pf ядру для загрузки с cd hdd flash не нужны модули ядра в инитрд. Нужное вкомпилено монолитно
Название: Re: Сборка UIRD в PRAR
Отправлено: FelenAmvrosiy от 21 Ноябрь 2018, 19:48:12
Я делал по спец.теме betcher'a где он все подробно описывал, но mkuird при сборке запускал modinfo, который не находил нужных модулей
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 22 Ноябрь 2018, 09:17:01
Я делал по спец.теме betcher'a
ссылка ?
mkuird при сборке запускал modinfo, который не находил нужных модулей
скрин?
Название: Re: Сборка UIRD в PRAR
Отправлено: Ильфат от 22 Ноябрь 2018, 10:15:13
Пытаюсь собрать UIRD по betcher'у
Но не получается из-за того что, modinfo не видит модули ядра из mkuird
Что делать?
Если вы имеете ввиду что-то вроде этого:
modinfo: ERROR: Module ext3 not found.
modinfo: ERROR: Module cbc not found.
modinfo: ERROR: Module aes-generic not found.
modinfo: ERROR: Module aes-i586 not found.
modinfo: ERROR: Module ahci not found.
modinfo: ERROR: Module sd_mod not found.
modinfo: ERROR: Module scsi_mod not found.
modinfo: ERROR: Module jbd not found.
modinfo: ERROR: Module jbd2 not found.
modinfo: ERROR: Module evdev not found.
То это нормально. Эти модули уже в ядре, поэтому они отсутствуют в виде отдельных модулей, отсюда и ошибка.
Название: Re: Сборка UIRD в PRAR
Отправлено: FelenAmvrosiy от 22 Ноябрь 2018, 15:37:18
И как это пофиксить?
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 22 Ноябрь 2018, 15:50:21
это нормально
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 03 Декабрь 2018, 13:53:03
Загрузил PRAR чтоб собрать uird
Получилось? Выложите... В идеале с пошаговой инструкцией
В итоге по совету betcher'a подложил уирду бинарник бизибокса из системы
Зачем собирать? Надо было просто сравнить его модули
пришлось линковать /usr/lib/modules/4.19 в /lib/modules/4.19.
В дистре - да, а в инитрд зачем?
Название: Re: Сборка UIRD в PRAR
Отправлено: Ильфат от 03 Декабрь 2018, 14:10:48
В идеале с пошаговой инструкцией
Так по инструкции с этого форума и собирал :) Конфиг только магосовский использовался.
Получился 17 мегабайт, в МагОС родной почти 26 мб. Загрузившись на вашем ядре в МагОС собрал еще раз, он получился уже 32 мб. Вот этот момент я вообще не понял )) То что в PRAR он собрался 17 мб понятно, но почему он в МагОС собрался большим размером чем сам магосовский мне не понятно.
Зачем собирать?
Сейчас для сборки уирда бизибокс тоже нужно собирать, так как с системными есть проблемы. А так у всех один и тот же бизибокс получается. В случае проблем проще их находить и исправлять.
В дистре - да, а в инитрд зачем?
Я видимо не уточнил.. Линковал в дистре. Ваш модуль 000-kernel.pfs тоже подключал, но там модули лежат в другом месте, поэтому пришлось создавать линки.
Название: Re: Сборка UIRD в PRAR
Отправлено: betcher от 03 Декабрь 2018, 14:21:30
Загрузившись на вашем ядре в МагОС собрал еще раз, он получился уже 32 мб. Вот этот момент я вообще не понял ))
Думаю причина таже - ядрерные модули. Меньше вкомпилено в ядро - больше попадет в uird.
Цитата: sfs от Сегодня в 13:53:03

    Зачем собирать?

Сейчас для сборки уирда бизибокс тоже нужно собирать, так как с системными есть проблемы. А так у всех один и тот же бизибокс получается. В случае проблем проще их находить и исправлять.
Все верно, сталкивались, с тем что с родными бизибоксами что-то да не работало. Господа дистроклепатели любят что нибудь понастраивать, нам ли не знать :)

Если правильно понял, вся проблема в том, что не собрался бизибокс. Если подходит от пра можно использовать его.  Либо, что правильнее, разобраться чего не хватает для сборки.
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 03 Декабрь 2018, 14:29:19
по инструкции с этого форума и собирал
Дайте ссылку
для сборки уирда бизибокс тоже нужно собирать
Ну так 1 раз , наверное, достаточно собрать - он везде подойдет
с родными бизибоксами что-то да не работало. Господа дистроклепатели любят что нибудь понастраивать,
Не знаю как в других дистрах, но в арче маленький bbox рассчитан на работу в составе archiso
Предявлять ему за uird не справедливо
И есть большой - он , наверное покатил бы
Если правильно понял, вся проблема в том, что не собрался бизибокс. Если подходит от пра можно использовать его.  Либо, что правильнее, разобраться чего не хватает для сборки.
Да. Готов поучаствовать если надо
Перл в пра отдельным модулем в DEVX. Возможно trim перестарался
Название: Re: Сборка UIRD в PRAR
Отправлено: Ильфат от 03 Декабрь 2018, 14:30:36
Меньше вкомпилено в ядро
Вообще ядро Манжаро по размеру больше Магосовского, может быть за счет свежести, код все-таки всем миром пишут, понаписали за 10 то релизов )) Наверное да, в ядре меньше модулей.
Либо, что правильнее, разобраться чего не хватает для сборки.
Надо узнать в каких пакетах в Арче находятся недостающие файлы, о которых я писал. В МагОС пакетный менеджер показал, что они у нас в Perl, что подтверждает Google. Может они просто не попали в PATH. Не сообразил find'ом пройтись.
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 03 Декабрь 2018, 14:32:14
узнать в каких пакетах в Арче находятся недостающие файлы, о которых я писал
pkgfile файл
Название: Re: Сборка UIRD в PRAR
Отправлено: betcher от 03 Декабрь 2018, 14:34:25
Надо узнать в каких пакетах в Арче находятся недостающие файлы, о которых я писал. В МагОС пакетный менеджер показал, что они у нас в Perl, что подтверждает Google. Может они просто не попали в PATH. Не сообразил find'ом пройтись.
Самый прямой вариант это разобрать src пакет бизибокса от арча и посмотреть что там в зависимостях.
Ну так 1 раз , наверное, достаточно собрать - он везде подойдет
Да все верно. Также и с дракутом.
Название: Re: Сборка UIRD в PRAR
Отправлено: Ильфат от 03 Декабрь 2018, 14:35:57
Дайте ссылку
Сборка Initrd UIRD в PRA (http://forum.puppyrus.org/index.php?topic=20164.0)
pkgfile файл
Возьму на заметку, спасибо)
Название: Re: Сборка UIRD в PRAR
Отправлено: betcher от 03 Декабрь 2018, 14:41:46
Инструкция устаревшая. Сейчас немного не так.
По зависимостям  надо уточнить, скорее всего изменений для uird нет. Может что-то надо для бизибокса еще.
По сборке.
./make_dracut.sh
./make_busybox.sh
./mkuird pra64

Первые две команды выполняются один раз.
./mkuird при каждой сборке.
Название: Re: Сборка UIRD в PRAR
Отправлено: sfs от 03 Декабрь 2018, 14:45:01
разобрать src пакет бизибокса от арча и посмотреть что там в зависимостях.
У маленького (https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/mkinitcpio-busybox) glibc
Большой - похоже, статический (https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/busybox) на miusl
Возьму на заметку, спасибо)
Вот так и пересаживаются на арч-манджаро  :D
Тогда еще полезного (http://wiki.puppyrus.org/setups/pacman)
Сборка Initrd UIRD в PRA
Тогда объединю темы
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 03 Декабрь 2018, 14:49:29
А вообще - я перешел на модель - инитрд отдельно - модули ядра отдельно
Так проще. Просто грузим initrd initrd1 initrd-kernelОпять же удобно пробовать разные инитрд (uird rootaufs2)
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 03 Декабрь 2018, 14:54:39
А вообще - я перешел на модель - инитрд отдельно - модули ядра отдельно
Так проще. Просто грузим
UIrd тоже можно так собрать. Как пример посмотрите скрипты make_uird_*. Готового именно под такую задачу нет, но можно сделать чтоб один скрипт собирал uird_base, а второй uird_kernel_modules.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 03 Декабрь 2018, 15:07:22
можно сделать чтоб один скрипт собирал uird_base
Вот этот бы Вам и выкладывать, чтобы другие не собирали
Можно пересобрать обычный. Или , если размер и время загрузки не критичны, а ядро другое - не помешает (можно не пересобирать)
второй uird_kernel_modules.
А этот скрипт как-нибудь бы упростить (чтобы без дракут и пр.) , чтобы на входе - ядро с модулями,  на выходе инитрд2
И будет всем счастье

Выложите свежий проверенный uird... или ссылку на всегда свежий
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: Pro от 03 Декабрь 2018, 15:50:05
Раз busybox для initrd, то логичнее сказать ему чтобы man'ы не собирал, тогда perl не понадобится
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 03 Декабрь 2018, 15:51:14
Ну мы для пра не собираем. Не было такой задачи. А uird  для магос - в магос :)
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 03 Декабрь 2018, 16:51:52
мы для пра не собираем.
Кроме модулей ядра - чем он будет отличаться  ;)
uird  для магос - в магос
Можно где-то качнуть только свежий initrd без остального? В идеале - постоянно свежий
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 03 Декабрь 2018, 17:13:25
https://mirror.yandex.ru/mirrors/magos/netlive/2016.64/MagOS/
Здесь ядро и  uird  от магос, обновляется ежемесячно.
Но правильнее как мне кажется наладить сборку в пра с родным конфигом и дровами под ваши ядра.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 03 Декабрь 2018, 17:33:40
наладить сборку в пра с родным конфигом
Может быть имеет смысл собрать под монолитное ядро pf и без сети
И хорошо бы опакетить
В остальном оптимально так (http://forum.puppyrus.org/index.php?topic=20164.msg151301#msg151301)
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 03 Декабрь 2018, 17:58:53
Может быть имеет смысл собрать под монолитное ядро pf и без сети
То, что вкомпилено в ядро в uird не попадет. А в остальном открывайте ./mkuird и удаляйте все что считаете лишним.
По разделению на основу и драйвера с Антоном переговорю еще. Может рано наобещал :)
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: neobht от 03 Декабрь 2018, 18:11:34
по разделению: uird_minimal+uird_kernel - это и есть то, что делает слоеный initrd.

специально для pra создавал пару лет назад такое разделение.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 06 Декабрь 2018, 17:07:29
Выдрал (рецепт в шапке) нужное из родного МагОс initrfd
http://file.puppyrus.org/users/pra64/kernel/initrd-uird1811.xz
Гружу бутербродом с правильными модулями ядра по мануалу (http://wiki.puppyrus.org/soft/uird)

Full: uird.from=/dev/sda1 uird.ro=*0/dirname uird.load=dirname - запуск дистрибутива из каталога dirname на sda1
Почему-то грузится только в qs режиме ...

Frugal: uird.from=/prar1811 или uird.from=/prar1811
Модули в /prar1811/base - не находит. blkid видит cd , но почему, то не монтирует

Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 06 Декабрь 2018, 18:57:14
А с каким конфигом собран uird? Или вы наш взяли? Параметров в конфиге больше чем вы приводите, возможно в uird.ro  нет  pfs.
Инструкция по сборке слегка не правильная в шапке. Выше писал чего надо поменять.
Если нужен какой-то новый конфиг давайте добавлю.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 07 Декабрь 2018, 09:57:07
вы наш взяли?
да
в uird.ro  нет  pfs.
uird.ro=*0/dirname.*.pfs - так?

Главное что меня сейчас интересует в uird - ful c сохраненкой в папке на этом же разделе средствами aufs
У меня получилось только с overlayfs - соответственно без возможности горячего подключения
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: Ильфат от 07 Декабрь 2018, 10:46:13
возможно в uird.ro  нет  pfs
Есть pfs:
uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs
запуск дистрибутива из каталога dirname на sda1
Чтоб из папки надо:
uird.ro=*layer-base/0
uird.load=*
uird.from=/dev/sda1/dirname
В UIRD есть каталог с конфигами, там посмотрите варианты.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 07 Декабрь 2018, 11:52:38
Для загрузки из папки оба варианта  выглядят правильными. То есть если внутри dirname корень линукс дистра, то должно грузиться. В обоих случаях.
Про pfs говорил для фругал. Но если хотите подключать модули слоями после dirname, то надо добавить в uird.ro через запятую *.pfs, а в uird.load  добавить папку с модулями. Если папка не на sda1,  то нужно добавить в uird.from второй источник.
Если точно опишите что и как должно быть подключено, навание папок и разделов где они лежат постараюсь сочинить конфиг.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 07 Декабрь 2018, 15:26:26
Если точно опишите что и как должно быть подключено, навание папок и разделов где они лежат постараюсь сочинить конфиг
/mnt/sda1/prar1811/prar1811 - корень / в папке.
/mnt/sda1/prar1811/changes - сохранение в папку средствами aufs
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: betcher от 07 Декабрь 2018, 16:08:05
/mnt/sda1/prar1811/prar1811 - корень / в папке.
/mnt/sda1/prar1811/changes - сохранение в папку средствами aufs

Возможно проблемы были связаны с одинаковыми именами папок. Но попробую так. Параллельно подробно опишу.
Вариант номер Раз.
uird.from=/dev/sda1
      /memory/data/from/0 - это корень /sda1
      /memory/layer-base/0 - тоже корень /sda1
uird.ro=*prar1811/prar1811
      подключаем папку в режиме ro, то есть как модуль. Две папки из-за дублирования названий, чтоб первую не подключил
uird.load=prar1811
      Это чтоб в других папках не искал, можно и *

Вариант номер Два.
uird.from=/dev/sda1/prar1811
      /memory/data/from/0 - это корень /sda1
      /memory/layer-base/0 - это уже /dev/sda1/prar1811
uird.ro=*0/prar1811
      подключаем папку в режиме ro, то есть как модуль.
uird.load=*
      тут не соображу сработает ли prar1811


Это продолжение для обоих вариантов.

uird.mode=changes
      Включаем changes на диске
uird.changes=/dev/sda1/prar1811/changes
      Указываем где сохранять (можно и просто changes, должен найти)
      
uird.config="" - не искать конфиг
uird.ramsize=70% - размер tmpfs
uird.find_params=-maxdepth_3 - глубина поиска в источнике

Надеюсь ничего не напутал, если не получится выкладывайте как-то вашу конструкцию буду усебя пробовать.
Название: Re: Сборка Initrd UIRD в PRA
Отправлено: sfs от 07 Декабрь 2018, 16:13:20
спасибо. Как опробую - отпишусь
А в целом - бутурбродная рагрузка - один инитрд с модулями + 2 варианта (uird + rootaifs2) получается хорошо. В арче инитрд с модулями можно арч-средствами собирать
Остальные - апдейтить только когда надо, а не при смене ядра