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

Автор Тема: Автозагрузка модулей при старте системы  (Прочитано 46015 раз)

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

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Автозагрузка модулей при старте системы
« Ответ #30 : 27 Ноябрь 2012, 14:42:55 »
Все сказанное - исключительно к /tmp/permanent_pfs_load.log который , видимо, потянет проблемы с отключалками и т.п. Проверил - unloader_pfs - без permanent_pfs_load.log не работает
А чем хуже будет использовать в rc.sysinit pfsload?
Ничем, кроме усложнения. Плодим ненужные сущности и получаем в результате неразбериху.
Почему подключение выше должно быть стандартом так и не понял
Какой стандарт? Просто кое у кого идея фикс. Выше базы подключать только то, что необходимо.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Автозагрузка модулей при старте системы
« Ответ #31 : 28 Ноябрь 2012, 09:53:30 »
sfs, посмотрел бегло Ваш файл, но лучше выложите код на странице (так удобнее читать, без старых закоментированных кусков).
На первый взгляд не увидел записи в лог /tmp/permanent_pfs_load.log (этот файл читают некоторые скрипты PFS).
Нашел у себя пару ошибок. Переделал c учетом замечаний. Проверил -ок
Код
#!/bin/sh
###
basepfs="`basename "$(echo ${PUPSFS} | cut -d ',' -f3)"`"
ln -s "/initrd/pup_ro2" "/mnt/.${basepfs}"
echo "${basepfs}" >/tmp/permanent_pfs_load.log

zdrvpfs="`basename "$(echo ${ZDRV} | cut -d ',' -f3)"`"
ln -s "/initrd/pup_z" "/mnt/.${zdrvpfs}"
echo "${zdrvpfs}" >/tmp/permanent_pfs_load.log
###

#load_soft Version 09, GPL, sfs
PSUBDIR=$(dirname $(echo $PUPSFS | cut -f3 -d ','))
["$PSUBDIR"="/"] && PSUBDIR=""
[ $pfsdir ] && SFSDIR=$pfsdir || SFSDIR=packages

MNTPT=$(mount | grep '/initrd/mnt/dev'| cut -f3 -d' ')
[ $PDEV1 ] || PDEV1=$(echo $PUPSFS | cut -f1 -d ',')
if [ "$MNTPT" = "" ]; then
mount /dev/${PDEV1} /initrd/mnt/dev_ro2
MNTPT=/initrd/mnt/dev_ro2
fi
if ! grep 'pfix=ram' /proc/cmdline > /dev/null; then
 if [ -d ${MNTPT}${PSUBDIR}/userfs ]; then
 mount -o remount,add:0:${MNTPT}${PSUBDIR}/userfs/ /
  elif [ -f ${MNTPT}${PSUBDIR}/userfs.sfs ]; then
  busybox mount -o loop ${MNTPT}${PSUBDIR}/userfs.sfs /initrd/pup_ro3
  mount -o remount,add:1:/initrd/pup_ro3/ /
  echo "PRECHOICE='no'" >> /etc/rc.d/PUPSTATE
   elif [ -f ${MNTPT}/${SFSDIR}/userfs.sfs ]; then
   busybox mount -o loop ${MNTPT}/${SFSDIR}/userfs.sfs /initrd/pup_ro3
   mount -o remount,add:1:/initrd/pup_ro3/ /
   echo "PRECHOICE='no'" >> /etc/rc.d/PUPSTATE
 fi
fi

[ "$SAVE_LAYER" = "" ] && PUP_HOME=/mnt/dev_ro2
 
if ! grep 'nousoft=1' /proc/cmdline > /dev/null; then
    ls -1 ${MNTPT}${PSUBDIR}/*.[ps]fs  2>/dev/null |
    while read SOFT
    do
     if [ "`echo "$(basename "${SOFT}")" |egrep '^[[:lower:]]'`" = "" ] ;then
     pfsramload -u "${SOFT}"
     [ $? -eq 0 ] && echo "$(basename "${SOFT}")" >>/tmp/permanent_pfs_load.log
      else
     pfsramload -l "${SOFT}"
     [ $? -eq 0 ] && echo "$(basename "${SOFT}")" >>/tmp/permanent_pfs_load.log
     fi
    done
fi

if ! grep 'nousoft=1' /proc/cmdline > /dev/null; then
    ls -1 ${MNTPT}/${SFSDIR}/*.[ps]fs 2>/dev/null |
    while read SOFT
    do
     if [ "`echo "$(basename "${SOFT}")" |egrep '^[[:lower:]]'`" = "" ] ;then
     pfsload -u -n "${SOFT}"
     [ $? -eq 0 ] && echo "$(basename "${SOFT}")" >>/tmp/permanent_pfs_load.log
      else
     pfsload  -l -n "${SOFT}"
     [ $? -eq 0 ] && echo "$(basename "${SOFT}")" >>/tmp/permanent_pfs_load.log
     fi
    done
fi
#end load_soft
« Последнее редактирование: 28 Ноябрь 2012, 15:46:28 от sfs »

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Автозагрузка модулей при старте системы
« Ответ #32 : 28 Ноябрь 2012, 12:14:35 »
Почему подключение выше должно быть стандартом так и не понял
Когда основным способом использования программ была установка PET - по умолчанию существующие в системе файлы заменялись файлами из пакета при его установке.
Но теперь основной способ использования программ - не установка PET, а подключение PFS.

Во время разработки спецификации PFS (и чуть раньше) было обсуждение, в котором было принято решение что по умолчанию (по левому клику) PFS-файлы должны монтироваться в верхний слой.
Сейчас в процессе работы системы PFS-файлы практически всегда монтируются в верхний слой. Это является стандартным поведением.

По возможности нужно свести к минимуму разницу между работой с постоянно подключёнными и временно подключёнными модулями.
Если при горячем подключении все PFS-файлы по умолчанию подключаются выше базы - то и при загрузке (по умолчанию) система должна работать так же.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Автозагрузка модулей при старте системы
« Ответ #33 : 28 Ноябрь 2012, 12:34:09 »
Когда основным способом использования программ была установка PET - по умолчанию существующие в системе файлы заменялись файлами из пакета при его установке.
И разве глюков при этом не было? Вспомните историю с GIMP, чёрный экран после удаления пакета.
Категорически настаиваю - монтировать ниже базы, кроме случаев крайней необходимости.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Автозагрузка модулей при старте системы
« Ответ #34 : 28 Ноябрь 2012, 13:50:56 »
Надо ли спорить - выше-ниже? Вопрос религиозный. http://forum.puppyrus.org/index.php/topic,13104.msg70035.html#msg70035 включает в себя все варианты. Кого такой подход не устраивает и чем?
Сделать еще gui c такими же вариантами подключения , который вызывается с .p(s)fs (типа mnt_sfs )
И закрыть тему

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Автозагрузка модулей при старте системы
« Ответ #35 : 28 Ноябрь 2012, 15:27:47 »
И разве глюков при этом не было? Вспомните историю с GIMP, чёрный экран после удаления пакета.
А вот тут преимущества монтирования перед установкой становятся очевидны. После перезагрузки все восстановится.

Кого такой подход не устраивает и чем?
Тем что модуль с названием file.pfs автоматически подключится ниже базы.
По умолчанию всё PFS должны подключаться выше. Если нужно ниже - то только если это явно указано (например спец. префиксом в имени).

gui c такими же вариантами подключения
В open_pfs есть возможность подключить PFS ниже базы.
Но использовать её будут только те, кто понимает зачем это надо.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Автозагрузка модулей при старте системы
« Ответ #36 : 28 Ноябрь 2012, 15:52:35 »
модуль с названием file.pfs автоматически подключится ниже базы.
А чем плохо переименовать его в File.pfs и станет как Вы хотите?
Ну или sfrugal включить - там "полный фарш" по подключению - выше\ниже\ram в любом порядке
В open_pfs есть возможность подключить PFS ниже базы.
А нельзя туда еще добавить "в RAM" для полноты возможностей?
« Последнее редактирование: 28 Ноябрь 2012, 16:10:31 от sfs »

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Автозагрузка модулей при старте системы
« Ответ #37 : 29 Ноябрь 2012, 11:49:16 »
А чем плохо переименовать его в File.pfs и станет как Вы хотите?
Ну я же писал:
Цитата
По умолчанию всё PFS должны подключаться выше. Если нужно ниже - то только если это явно указано (например спец. префиксом в имени).
А тут получается разное поведение по умолчанию.

А нельзя туда еще добавить "в RAM" для полноты возможностей?
Сейчас подумал, можно сделать в open_pfs что-то вроде кнопки "расширенные возможности" или "режим эксперта", и добавить туда это.

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Автозагрузка модулей при старте системы
« Ответ #38 : 29 Ноябрь 2012, 12:34:02 »
господа, мелкая просьба, не забудьте про параметр загрузки nopfs или nosfs или nousoft
Очень нада для тестирования базового sfs - т.к. подгружаются дополнения и мешают адекватно посмотреть на результат
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Автозагрузка модулей при старте системы
« Ответ #39 : 29 Ноябрь 2012, 12:38:38 »
В моем варианте load_soft есть: nousoft=1

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Автозагрузка модулей при старте системы
« Ответ #40 : 29 Ноябрь 2012, 12:42:16 »
эм, не тру, pfix=nousoft будет тру.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Автозагрузка модулей при старте системы
« Ответ #41 : 29 Ноябрь 2012, 13:30:03 »
Переделал на pfix=nousoft

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Автозагрузка модулей при старте системы
« Ответ #42 : 29 Ноябрь 2012, 13:44:34 »
nousoft всех устраивает? или nopfs будет приличнее?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Автозагрузка модулей при старте системы
« Ответ #43 : 29 Ноябрь 2012, 14:03:15 »
Лучше бы не трогать - мотивируя - как в 216
А то опять религиозные войны pfs\sfs начнутся  ;) Там ведь и .sfs тоже подключаются...

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Автозагрузка модулей при старте системы
« Ответ #44 : 30 Ноябрь 2012, 10:23:15 »
nousoft всех устраивает? или nopfs будет приличнее?
Можно два параметра, nopfs и nosfs - для PFS и SFS соответственно. Либо один параметр, но с другим названием.
Usoft больше нигде не используется, не логично будет.