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

Автор Тема: [INITRAMFS] pinitrd - новый рамдиск для щенка, копмилируем sh-скрипты  (Прочитано 3815 раз)

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

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
Стандартная загрузка без диалогов. С опцией config или при ошибке - открывается меню
Это понятно. В меню то что? Что кроме синенького фона даст dialog против обычного:
echo "Please enter PRA dir name":
read DIRNAME

Какие вообще меню предполагаются? То есть что от пользователя требуется вводить/выбирать?
Где будет храниться введенное? На одну загрузку или внешний конфиг для инитрд?
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн Pasha__kun

  • Пользователь
  • **
  • Сообщений: 26
  • Репутация: +1/-0
Какие вообще меню предполагаются
Главное меню, настройка модулей, настройка загрузки (опции ядра), параметры системы (опции ядра, читаемые не ядром/initrd), сохранение и выход.

Где будет храниться введенное? На одну загрузку или внешний конфиг для инитрд?
На одну загрузку, с возможностью сохранить в каталог паппи.

Оффлайн Pasha__kun

  • Пользователь
  • **
  • Сообщений: 26
  • Репутация: +1/-0
Пока есть беда с ncurses и русским языком, пол дня уже ничего не работает. В консоли (echo) русский текст работает. Dialog на хосте с русским работает. Тот же самый dialog в initrd не работает. Выглядит это вот так:


Может кто знает, как побороть?

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
Главное меню, настройка модулей, настройка загрузки (опции ядра), параметры системы (опции ядра, читаемые не ядром/initrd), сохранение и выход.
Как вы собираетесь передавать ядру не из cmdline ядра? Система будет брать параметры тоже из /proc/cmdline, не думаю, что туда можно записать. Если вся задумка только в том как разрулить для новичка load/noload может проще добавить интерактивный режим загрузки при котором перед подключением каждого найденного модуля (игнорируя noload)  спрашивать подключать его или нет. Или я вообще не о том?
На одну загрузку, с возможностью сохранить в каталог паппи.
Если на одну загрузку как это поможет юзверю? Если с сохранением, то опять проблема. О том откуда  читается ядро и инитрд знает только загрузчик. То есть инитрд не  в курсе откуда его прочитали, а значит не в курсе где брать этот конфиг если путь не передать параметром через тот же cmdline ядра. Это же относится и к файлу со списком модулей. Есть мысли как обойти? Особенно учитывая заявленную вами возможность загрузки по сети.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
Пока есть беда с ncurses и русским языком, пол дня уже ничего не работает. В консоли (echo) русский текст работает. Dialog на хосте с русским работает. Тот же самый dialog в initrd не работает. Выглядит это вот так:
Были такие проблемы с mc в uird. Если вспомню напишу как лечиться.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 9996
  • Репутация: +103/-0
Dialog можно статический собрать? Если да то попробовать
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Pasha__kun

  • Пользователь
  • **
  • Сообщений: 26
  • Репутация: +1/-0
Как вы собираетесь передавать ядру не из cmdline ядра?
Include в конфиге grub, например.
# grub.conf
menuentry 'Puppy linux' {
  set prefix=hd0,gpt1
  . /puppy/puppy_boot.conf
}

перед подключением каждого найденного модуля спрашивать подключать его или нет
Можно и так

Если на одну загрузку как это поможет юзверю?
Например: Обновление сломало систему. Отключаем модуль с обновлением, загружаемся, откатываем (или ставим другое обновление).

О том откуда  читается ядро и инитрд знает только загрузчик
Не, ну каталог с модулями initrd знает.

Особенно учитывая заявленную вами возможность загрузки по сети
Думаю отказаться от нее и сделать упор на простоту настройки через dialog.

Пока идей очень много

Dialog можно статический собрать
Он у меня статически собран

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
Include в конфиге grub, например.
Это добавит параметр в cmdline при загрузке ядра. А из интрд то как? Ядро загружено.
Например: Обновление сломало систему. Отключаем модуль с обновлением, загружаемся, откатываем (или ставим другое обновление).
Проще в меню груба добавить пункт загрузки без модулей с обновлениями. Нет?
Не, ну каталог с модулями initrd знает.
Тогда выходит как про яйцо и курицу. Вы не можете передать в инитрд из конфига расположение папки с модулями ибо для поиска конфига нужна инфа о рапосложении папки с модулями :)


http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн Pasha__kun

  • Пользователь
  • **
  • Сообщений: 26
  • Репутация: +1/-0
Ядро загружено.
После перезагрузки. Далеко не все опции реально нужны ядру. Например, сохраненка или модули.

Проще в меню груба добавить пункт загрузки без модулей с обновлениями. Нет?
Возможно, кому-то проще.

Вы не можете передать в инитрд из конфига расположение папки с модулями ибо для поиска конфига нужна инфа о рапосложении папки с модулями
Часто ли вы перемещаете модули? Расположение папки с модулями не изменяется. Оно записывается в конфиг при установке и изменяется при переустановке initrd.

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
После перезагрузки
То есть предлагаете из инитрд писать в конфиги загрузчика? Не думаю, что хорошая идея. Инитрд в общем случае не знает ни где загрузчик, ни что за загрузчик. Можно конечно прибить гвоздями, но в итоге получится система которая нормально работает только в стандартных стерильных условиях со своим загрузчиком из одной папки и т.д.
Расположение папки с модулями не изменяется. Оно записывается в конфиг при установке и изменяется при переустановке initrd.
То есть если я хочу параллельно со сборкой в /pra64 завести для тестов такую же сборку в папке /pra_test мне нужно пересобрать инитрд?
З.Ы. Не подумайте, что придираюсь. Как раз наоборот хочу понять нехватка каких возможностей в стандартном инитрд pra или тем паче в uird сподвигла вас на написание собственной реализации. Пока не уяснил. Может в результате обсуждения что-то родится :)
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6293
  • Репутация: +161/-0
  • Старый чайник
Далеко не все опции реально нужны ядру. Например, сохраненка или модули.
То есть предлагаете из инитрд писать в конфиги загрузчика?
Зачем? Вы привыкли передавать параметры загрузки скрипту init через cmdline. Но это костыль, этого можно и не делать, а задавать их "на лету".
Вот мой cmdline: # cat /proc/cmdline
dev=sda1 dir=BB_64 UUID="5682bcea-ad74-486f-892b-f82c534922d1" video=LVDS-1:d
Устройство, каталог, /home (по UUID), последний параметр специально для моей видеокарты. Но если я уберу эти параметры, система тоже загрузится, только несколько медленнее из-за поиска файлов. Если приостановить исполнение скрипта init (linuxrc.sh) в самом начале после mount -t rootfs , то можно добавить|изменить любые параметры загрузки в командной строке или через dialog, это как вам больше нравится.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150)
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (Intel Atom N270, intel GMA 950)
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150)

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
Зачем? Вы привыкли передавать параметры загрузки скрипту init через cmdline
Это я понимаю. Более того в магос и сейчас так. Можно добавить в cmdline "qs", загрузка остановится в начале работы uird, все локальные носители будут смонтированы в /mnt/sda1, /mnt/sda2 и т.д. Далее можно отредактировать хоть конфиг uird, хоть конфиг самого магос. А после можно перезагрузить либо продолжить загрузку.
Но тут речь о параметрах ядра, а их без ребута не применить, а значит придется писать в конфиг загрузчика.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6293
  • Репутация: +161/-0
  • Старый чайник
Но тут речь о параметрах ядра
Я понял так, что редактироваться будут только параметры загрузки системы. Параметры ядра да, только через конфиг загрузчика.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150)
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (Intel Atom N270, intel GMA 950)
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150)

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 9996
  • Репутация: +103/-0
У меня для вас вести от пользователей, в моем лице:
"Я не желаю менять загрузку и заниматься какими то выборами на этапе загрузки. Я хочу чтобы система загрузилась максимально быстро, а уж потом я поменяю чего надо в загрузчике и перезагружусь." 
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Онлайн betcher

  • Ветеран
  • *****
  • Сообщений: 1408
  • Репутация: +14/-0
    • Беседка магос
Я не желаю менять загрузку и заниматься какими то выборами на этапе загрузки. Я хочу чтобы система загрузилась максимально быстро,
Штатно так и должно быть.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)