MagOS-модуль он осуществляет предварительную настройку дистра еще до старта системы.
Было :
МагОС-модуль для Магеи :
В моей сборке Это 55-magos.xzm
Моя сборка для Магеи - https://forum.mageia.org.ru/viewtopic.p … 958#p15958
55-MagOS.xzm - https://cloud.mail.ru/public/Jr37/t6TFbyqQK
МагОС-модуль для MagOS-Linux :
MagOS-Linux - http://magos-linux.ru/
89-magos и папка KERNEL-Mga - https://cloud.mail.ru/public/3XHR/BNE2gtd6o
Где KERNEL-Mga - Ядро от Магеи для Росы. Работает swap и загрузчик, сделанный в Магее
Все изменения проверены на сборке MagOS-Linux
89-magos.xzm - устанавливается в папку /Magos/base. Вместо 88-magos.xzm
Или в загрузчеке написать: uird.noload=88
Дополнительные функции для 89-magos (для MagOS-Linux) и 55-magos.xzm (Mageia) :
Теперь один ZM-magosm3.xzm - https://cloud.mail.ru/public/5A7V/4EhPZFUPk
- Работает с Магеей, МагОС(Роса), Убунту
К удивлению Убунту лучше состыковывается с Магеей, чем МагОС(Роса)
В частности sddm для Убунту подошел от Магеи.
Правда сам /etc/sddm.conf от МагОС(Роса) но с учетом Магеи
Но /usr/share/xsessions/lxqt.desktop взял от МагОС(Роса), т к имя сервиса (Name=LXQT) простое и логичное
В Магее кажется Name=LXQtDesktop а в Убунту Name=Lubuntu. В общем кто на что горазд.
Но и МагОС(Роса) пришлось для sddm править.
/usr/share/sddm/scripts/Xsession ( корректно не работает в Росе) заменил на ссылку на /usr/share/X11/xdm/Xsession
В итоге получилось на всех трех дистрах в /etc/sddm.conf
SessionCommand=/usr/share/sddm/scripts/Xsession
Конечно сервисы 52-desktop и 51-autologin в /usr/lib/magos/rc.preinit.d пришлось править
В основном это чистка Магеи и Убунту от "лишнего" в /usr/share/xsessions
И обеспечение работы 52-desktop для Убунту
- штатно обновляться с реопозитариев дистра сборки.
Запись модуля происходит штатно, потом отмонтирование модулей флэшки и выключение.
Запись управляется из MagOS.ini каждого дистра
Для /Linux/MagOS/MagOS.ini:
SAVETOMODULE=yes
SAVERPM=no
DISTR=MagOS
BASEDIR=/Linux/$DISTR/base
SAVE_BASE=91-save-base.pfs
FIRSTBOOT=90-firstboot.xzm
RPMBASE=93-rpmbase.xzm
HOMEDIR=/Linux/$DISTR/modulhome
SAVE_HOME=95-save-home.pfs
DYNAMIC=/Linux/$DISTR/temp
MACHINES_FL=/Linux/$DISTR/machines/dynamic
Для Linux/Mageia/MagOS.ini :
SAVETOMODULE=yes
SAVERPM=no
DISTR=Mageia
BASEDIR=/Linux/$DISTR/base
SAVE_BASE=45-save-base.pfs
FIRSTBOOT=40-firstboot.xzm
RPMBASE=54-rpmbase.xzm
HOMEDIR=/Linux/$DISTR/modulhome
SAVE_HOME=73-save-home.pfs
DYNAMIC=/Linux/$DISTR/temp
MACHINES_FL=/Linux/$DISTR/machines/dynamic
SAVETOMODULE=yes - разрешает запись изменений (no -запрещает)
SAVERPM=yes разрешает формирования отдельного модуля для var/lib/rpm (no -запрещает)
uird.mode=machines Главный режим. Будет писаться только machines
uird.mode=changes uird.changes=changes Тут надо установить - SAVETOMODULE=no
/usr/lib/magos/rc.halt/81-savetomodule-post сам скрипт для записи изменений
usr/lib/magos/rc.halt/80-savetomodule разбирается с режимами и готовит задание для 81-savetomodule-post
/usr/lib/magos/rc.preinit.d/06-sysflash вычисляет при старте системы адрес активной флэшки для 80-savetomodule
/memory/etc/MagOS режимы загрузки (/etc/sysconfig/MagOS это теперь ссылка на /memory/etc/MagOS )
Необходимость смены etc/sysconfig/MagOS на /memory/etc/MagOS связана с логикой работы 81-savetomodule-post
У меня два чистых режима :
Linux-admin - вход и работа под root,, установка обновлений, пакетов. Машинно-зависимые файлы и папка /home фильтруются.
Сохранение в папку /MagOS/base
Linux-user - Это вход и работа под обычным пользователем, кроме установки обновлений, пакетов
Машинно-зависимые файлы сохраняется и папка /root фильтруется.
Сохранение в папку /MagOS/modulhome
Фильтры для различных режимов лежат в /usr/lib/magos/rc.desktop/FILTRES
При запуске чистой сборки ее надо настроить . И у любого юзера могут быть свои предпочтения
Запуск Linux-admin настраивает систему
Запуск Linux-user настраивает пользователя. Инет, пароли и т д
Настройка производится путем поочередного запуска каждого из режимов
Теперь самое интересное :
Если запустить режим uird.mode=machines, то уже будут присутствовать сделанные настройки.
Если с режимом uird.mode=machines вдруг что то не так. Допустим перестал модуль сохранения для uird.mode=machines запускаться.
Достаточно будет зайти в чистом режиме (у меня это Linux-admin) и удалить модуль сохранения для uird.mode=machines
Но произведенные ранее настройки сохранятся
Самое главное, что никуда не надо заходить и ничего переименовывать и када то переносить
Пробовал я режим uird.home=home.img
Но он как то работает сам по себе и не поддерживает опытным путем найденную логику работы
И в режиме uird.home=home.img загружается не настроенный $HOME а чистый. И его надо настраивать снова. Что не очень удобно.
Разбирательство отложил до лучших времен
- /usr/lib/magos/scripts/AutoDesktop
Загрузка иконок на рабочий стол и желаемых настроек для Plasma и LXQt при загрузке рабочего стола отличных от дефолтных
Иначе придется настраивать каждого созданного юзера
Управляется в MagOS.ini ;
включение
AUTODESKTOP=yes
выключение
AUTODESKTOP=no
Или оперативно в действующей сесии в /memory/etc/MagOS (/etc/sysconfig/MagOS )
Изменения :
С моими правками магос-модуль теперь работает на Магее и на Росе
Только проверенные модули можно посмотреть в 56-MagOS для Магеи
Можно ли обойтись без магос-модуля ? Конечно можно.
Загрузить систему. Настроить ее. Запомнить изменения. Перезагрузиться
Длинноватая строчка. С магос-модулем все делается просто из меню загрузчика. Перед стартом.
Тестирование :
51-desktop_autologin-m - подправил 52-desktop-m
52-desktop-m и 51-autologin объеденил. Рработает и в Росе и в Магее
Ввел переменные раб-стола и менеджера дисплея по дефолту в /usr/lib/magos/os-config
У меня стр. 154 :
#rc.preinit.d/52-desktop-m
DM_DEFAULT=sddm
DSK_DEFAULT=Plasma
Были проблемы с sddm. Для совместимости с МагОС в Магее исправил в /usr/share/xsessions :
01-plasma.desktop на plasma.desktop
В lxqt.desktop исправил Name=LXQt Desktop на Name=LXQT . Что мне кажется логичнее
53-language - исправил еще в магее 5 53-language-m
В Магее file:///etc/locale.conf такой :
LANGUAGE=ru_RU.UTF-8:ru
LANG=ru_RU.UTF-8
А этот вариант, если подключить логи для Магос,
LC_PAPER=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LANGUAGE=ru_RU.UTF-8:ru
LC_NUMERIC=ru_RU.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_COLLATE=ru_RU.UTF-8
LANG=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
SYSFONT=UniCyr_8x16
LC_TELEPHONE=ru_RU.UTF-8
LC_CTYPE=ru_RU.UTF-8
пишет ошибки в file:///var/log/magos/rc.preinit.log и в file:///var/log/magos/30-network.log.
Если не подключать логи для Магос, то все запускается, естественно, без ошибок
Переделал по магеевски в /usr/share/magos/langs ошибки исчезли. И 53-language работает.
Может сделал что то не так. Не буду спорить. Но оба скрипта, с моими изменениями, в Магее работают без ошибок.
Добавил функции :
20-services - 20-services-m
SERVICESNOSTART маскирует сервис, а мне надо было сервис просто не запускать. Что бы потом было легко запустить из системы
Теперь :
if [ -n "$SERVICES_START" ] ;then
for a in $(echo $SERVICES_START | tr , " ") ;do
if [ -x bin/systemd ] ;then
chroot . systemctl unmask $a.service
chroot . systemctl enable $a.service || chroot . chkconfig --add $a
else
chroot . chkconfig --add $a
fi
done
fi
if [ -n "$SERVICES_NOSTART" ] ;then
for a in $(echo $SERVICES_NOSTART | tr , " ") ;do
if [ -x bin/systemd ] ;then
chroot . systemctl disable $a.service || chroot . chkconfig --del $a
# chroot . systemctl mask $a.service
else
chroot . chkconfig --del $a
fi
done
fi
if [ -n "$SERVICES_MASK" ] ;then
for a in $(echo $SERVICES_MASK | tr , " ") ;do
if [ -x bin/systemd ] ;then
chroot . systemctl disable $a.service || chroot . chkconfig --del $a
chroot . systemctl mask $a.service
else
chroot . chkconfig --del $a
fi
done
fi
30-network - 30-network-m Добавил $HOSTNAME в etc/sysconfig/network
В Магее надо не только устанавливать hostname в file:///etc/hostname
Но и делать запись в file:///etc/sysconfig/network
HOSTNAME=magos
NETWORKING=yes
NETWORKING_IPV6=NO
CRDA_DOMAIN=RU
Иначе drakconnect будет работать с hostname=localhost.localdomain
По крайней мере drakconnect работает так. Разбирался опытным путем. Как то бедновата Магея на инфу.
50-xorg-m - код не поменян
Но формирует /etc/X11/xorg.conf только при harddrake=no (задается в меню)
при harddrake=yes /etc/X11/xorg.conf формирует Магея
rc.local.d/01-background-m добавил картинку на раб стол для магеи. По дефолту это просто картинка. Ну это дело вкуса
rc.post.d/11-xorg-m - Добавил формирование MODELINE
Теперь /etc/X11/xorg.conf.d/00-modes.conf :
Section "Monitor"
Identifier "monitor1"
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync -vsync
EndSection
Section "Screen"
Identifier "screen1"
Device "device1"
Monitor "monitor1"
SubSection "monitor1"
Modes "1280x1024"
EndSubSection
EndSection
И ваша MasgOS-Linux наконец то запустилась у меня с разрешением 1280x1024
А то запускалась c 1024x768 (видимо монитор не определялся)
И теперь я разрешение системы могу задать из меню параметром xres например:
xres=1280x1024
05-newkernel-rosa.xzm - последнее ядро 4.19.13-desktop-1.mga7 для Росы
Запускает и MagOS-Linux и даже, что странно, с uird сформированном в Магее
Уже пересобрал сборку и без ядра 4.9
Т к своп в ядре 4.19.13-desktop-1.mga7 уже работает.
Тут на Магея 7 запустил и начал сбоить 11-partitions-m
if [ "$TMPFS" == "no" ] ;then
ln -sf /dev/null etc/systemd/system/tmp.mount
fi
if [ "$VARTMPFS" = "no" -a -h var/tmp ] ;then
rm -f var/tmp 2>/dev/null
mkdir -m 1777 var/tmp
elif [ "$VARTMPFS" != "no" -a ! -h var/tmp ] ;then
rm -fr var/tmp 2>/dev/null
ln -s ../tmp var/tmp
fi
Оставил то что работает :
#Creating partitions in /etc/fstab
if [ "$TMPFS" == "no" ] ;then
echo "TMPFS == no" >> /var/log/magos/11-partitions.log
ln -sf /dev/null etc/systemd/system/tmp.mount
fi
1) Из новых сервисов /usr/lib/magos/scripts/AutoDesktop
Это настройки плазмы изначально были одни, а мне хотелось другие.
Как по дефолту поменять не понял. Вот и придумал при загрузке раб-стола записывать в $HOME другие настройки.
Ну и до кучи организовал загрузку значков приложений на раб-стол.
С этим в Росе получилась заминка.
Не получалось копирование значков по переменной в $HOME/user-dirs.dirs:
XDG_DESKTOP_DIR="$HOME/Рабочий стол"
Пишет, что нет такого адреса. Пришлось в русской локали поменять как в Магее :
XDG_DESKTOP_DIR="$HOME/Desktop"
Сервис спорный, но если нет в конфигах инфы о разрешении экрана то работает.
2) Сохранение сис-изменений в модуль :
/usr/lib/magos/rc.halt/80-savetomodule - подготовка режима записи
/usr/lib/magos/rc.halt/81-savetomodule-post - сам процесс записи
У меня сохранился еще первый режим - это запуск из системы
Путь и имя сохраняемого модуля задается в MagOS.ini
Включается режим записи :
SAVETOMODULE=yes
Два режима Admin и User
Admin - модуль сохраняется в MagOS/base Это установка пакетов и работа под root
User - - модуль сохраняется в MagOS/modules Это вся остальная работа.
Если в загрузчике запущен HOME режимы (uird.mode=machines и uird.mode=changes)
То сохранение будет с логикой этих режимов
Для каждого режима свой фильтр в /usr/lib/magos/rc.desktop/FILTRES - для формирования модуля
Для uird.mode=machines свой филтр. И это отдельный режим
Только для uird.mode=changes ничего записывать не надо
Для него надо писать :
SAVETOMODULE=no
Долго думал что мне делать с первым режимом, раз есть уже uird.mode=machines и решил так :
Первый режим это настоечный.
Режим Admin (Вход как root) настраивает систему
Режим User - Какие то пользовательские настройки
Потом работаешь с uird.mode=machines. Если что не так то удалить модуль из /MagOS/machines/dynamic
А настройки заданные первым режимом останутся.
3) /usr/lib/magos/rc.preinit.d/06-sysflash
Вычисление адреса монтирования активной флэшки.
Необходимость этого скрипта связана тем, что у меня модульная Магея установлена и на жестком диске и на флэшке.
И система порою путалась в установленных Магосах и каждый раз разбираться какой МагОС активный как то хлопотно.
Сохраняется в /memory/etc/sysflash
4) Сюда же переместил /etc/sysconfig/MagOS в - /usr/lib/magos/rc.preinit/01-inifile-m
Теперь /etc/sysconfig/MagOS это ссылка на /memory/etc/MagOS
Необходимость правки связана с тем, что 81-savetomodule-post позволяет делать запись длительностью 20 мин.
И после 5 мин записи он уже не может найти в системе не только /etc/sysconfig/MagOS но и вроде все что дальше /memory, что само по себе не очень хорошо.
А папка /memory/etc всегда под рукой
Все измененные скрипты проверил на последней MagOS-Linux :
Plymouth
Plymouth в системе должен запускаться.. При этом он может ввыводить на экан логи системы или гр. заставку.
Команда в строке ядра
splash Запускает графическую заставку.
Отсутствие splash включает логи системы на экране и гр. заставка не запускается
quiet Отключает режим подробного вывода логов системы
Отсутствие quiet включает режим подробного вывода логов системы
Команда в строке ядра plymouth.enable=0 нежелательна и вредна, т к она отключает plymouth,
А plymouth, формирует file:///var/log/boot.log
И загрузчики от MagOS не включают графическую заставку plymouth при старте.
Просто наладил запуск plymouth из системы и процесс загрузки и формирование /var/log/boot.log нормализовалось.
Что очень важно, то что логи системы стали одинаковыми, как с наличием splash, так и с отсутствием splash
Вот plymouth-halt,plymouth-poweroff,plymouth-reboot желательно вообще исключить из системы
В /memory/etc/MagOS (/etc/sysconfig/MagOS ) записать :
SERVICES_MASK=plymouth-halt,plymouth-poweroff,plymouth-reboot