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

Автор Тема: pra-porteus-initrd + обычное aufs ядро  (Прочитано 29284 раз)

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

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
  • Автор темы
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #60 : 10 Февраль 2016, 19:17:39 »
Цитата
Есть модуль 000-kernel.pfs
Нужно из него сделать 000-kernel-`uname -r`.pfs
Как сделать "uname -r " для ядра, которое еще не загружено?
А внутри этого 000-kernel модули лежат в соответствующей директории.
/usr/lib/modules/`uname -r`/...

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #61 : 10 Февраль 2016, 19:23:17 »
ander - thanks. Я так и сделал сначала, а 4.4.0-1-MANJARO заставило меня усомниться в правильности переименования. Теперь буду уверен, что все правильно.

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
  • Автор темы
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #62 : 10 Февраль 2016, 19:46:18 »
Еще одна тема осталась недораскрытой.  Поскольку sfs упоминал, что в существующем инитрд vga_detect практически не работает из-за устаревших сигнатур видеокарт, надо это как-то чинить.
Попробовал я делать такие вещи:
Код
cat /sys/bus/pci/devices/*/modalias >pci.aliases
modinfo i915 |awk '/^alias:/{gsub(/\*/,".*",$2); print $2}' >video_intel.aliases
grep -f video_intel.aliases pci.aliases
==>pci:v00008086d00000F31sv00008086sd00000F31bc03sc00i00
То есть наличие интеловской видеокарты, обслуживаемой модулем i915 таким образом легко определяется.

Других видеокарт у меня нет так что попробовать определить таким образом nvidia или amd надо кому-нибудь, у кого они есть.
Если с ними сработает, то можно в инитрд вместо lspci и сигнатур пользоваться video_*.aliases и grep

Дальше придется решать, куда эти файлики включить.  Можно в инитрд, они небольшие, но тогда по мере появления новых карт и драйверов придется время от времени инитрд перебирать, заменяя файлы свежими.  Можно в сами nvidia-*.pfs включить и в процессе загрузки доставать оттуда.  Пробовал делать modinfo в процессе загрузки - не сработало, в busybox modinfo другой.

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #63 : 10 Февраль 2016, 20:09:35 »
Предлагаю протестировать и на этом остановиться
В base два ядра: 4.3 и 4.4М

menu.lst:

title ▒▒ PRA64 %l% 4.3.3 + porteus-initrd.
set d=pra6406/pra64
kernel /%d%/vmlinuz64-4.3.3-pf3 sort=4-9  dir=%d% ukm quiet copy2ram noswap %x% %v%
initrd /%d%/initrd160210.xz

title ▒▒ PRA64. manj44 + 2-initrds
set d=pra6406/pra64
find --set-root --ignore-floppies --ignore-cd /%d%/initrd160210.xz
kernel /%d%/vmlinuz-4.4-x86_64 %bl%   dir=%d% noswap  quiet %c%
initrd  /%d%/initrd160210.xz /%d%/initrd-mj44+c.xz

M44+initrd160210+initrd-mj44+c - не нравится моя флешка: "Неподдерживаемое или устаревшее... скопируйте... попробуйте..."
Флешка: ID-1: USB /dev/sda model: TransMemory size: 4.0GB

Обычное ядро грузится без проблем
Лог porteus-initrd: # Опознаны устройства:
/dev/sda1: UUID="BC87-E51A" TYPE="vfat"
Что с ukm, что без него 58 модулей.

попробовать определить таким образом nvidia
Работает с nvidia nouveau:
Код
live@pra64:~$ cat /sys/bus/pci/devices/*/modalias >pci.aliases
live@pra64:~$ modinfo nouveau |awk '/^alias:/{gsub(/\*/,".*",$2); print $2}' >video_nvidia.aliases
live@pra64:~$ grep -f video_nvidia.aliases pci.aliases
pci:v000010DEd000002E1sv00000000sd00000000bc03sc00i00

« Последнее редактирование: 10 Февраль 2016, 20:12:49 от I-Jurij »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34007
  • Репутация: +231/-0
    • PuppyRus-A
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #64 : 11 Февраль 2016, 09:55:57 »
vga_detect - надо ли вообще заморачиваться. Если это походная флэшка - можно обойтись и без проприетарных дров. Если стационар - вряд ли юзер не знает что у него за видяха...

Про vbox:
Код
    grep -Ev '/000-kernel|/nVidia-|/amd-catalyst-|/vbox-kmod' /tmp/modules >/tmp/modules2
    grep -E  '/000-kernel|/nVidia-|/amd-catalyst-|/vbox-kmod' /tmp/modules >/tmp/modules-k
    grep "`uname -r`\." /tmp/modules-k >/tmp/modules
    cat /tmp/modules2 >>/tmp/modules
И переименовать все модули ядра vbox : vbox-kmod*`uname-r`*.pfs
« Последнее редактирование: 11 Февраль 2016, 17:35:09 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34007
  • Репутация: +231/-0
    • PuppyRus-A
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #65 : 11 Февраль 2016, 17:34:52 »
http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a64/kernel/4.4.0-1-MANJARO/initrd160211.xz
Добавил vbox, доработал инструкцию

M44+initrd160210+initrd-mj44+c - не нравится моя флешка: "Неподдерживаемое или устаревшее... скопируйте... попробуйте..."
Флешка: ID-1: USB /dev/sda model: TransMemory size: 4.0GB
попробуйте п. 3a 3b
Обычное ядро грузится без проблем
Что с ukm, что без него 58 модулей.
С таким (нашим-pf) ядром модули ядра в initrd не подгружаются. Соответственно ukm ничего здесь не даст

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #66 : 11 Февраль 2016, 19:34:27 »
"Есть контакт!"
п. 3а работает (3б впрочем тоже).
ukm ставить в menu.lst после kernel, правильно?
Что с ним, что без него - 113.

PS:
040-* подключается выше 084-го, 084-е может тоже тогда в optional положить и подключать оттуда нужные?
« Последнее редактирование: 11 Февраль 2016, 21:12:21 от I-Jurij »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34007
  • Репутация: +231/-0
    • PuppyRus-A
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #67 : 12 Февраль 2016, 09:16:40 »
п. 3а работает (3б впрочем тоже).
3b - это совсем кривой отладочный вариант
Хорошо бы загрузить 3 и 3а с параметром stop или debug и понять из-за отсутствия каких модулей ядра не работает 3 и доработать initrd
ukm ставить в menu.lst после kernel, правильно?
Что с ним, что без него - 113.
Да. Поэтому я и сделал его опциональным.
040-* подключается выше 084-го, 084-е может тоже тогда в optional положить и подключать оттуда нужные?
Если хотите держать номерные модули не в /base - оптимально юзать sort=

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #68 : 12 Февраль 2016, 10:19:53 »
Если хотите держать номерные модули не в /base - оптимально юзать sort=
Да, так лучше. Потерял в menu.lst этот пунктик.
3 и 3а проверю позже.

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34007
  • Репутация: +231/-0
    • PuppyRus-A
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #69 : 12 Февраль 2016, 10:32:00 »
Давайте уже определяться с последними доработками. Принимаем , в iso, дописываю в доку новые ключи и т.п. или какие предложения?

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #70 : 12 Февраль 2016, 10:50:05 »
Принимаем , в iso, дописываю в доку новые ключи и т.п.
Я - "За".

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #71 : 12 Февраль 2016, 16:31:35 »
Хорошо бы загрузить 3 и 3а с параметром stop или debug

Итого:
Без udev - только usb-common на этапе загрузки модулей ядра (первый этап загрузки)  и "Неподдерживаемое загрузочное устройство" после загрузки initrd.
с initrd-udev в самом конце портянки на этапе загрузки модулей ядра появляется волшебное слово vfat. Дальше все норм, кроме нижеуказанного:

xfce (lxde) + mesa - грузится все норм;
openbox (jwm) + mesa - виснет после появления сообщения об автологине;
openbox (jwm) + 2d - автологин происходит, автостарт программ тоже, но рабочий стол (картинка) не появляется, после ручного перезапуска X-ов (ctrl-alt-backspace) все стартует нормально.
« Последнее редактирование: 12 Февраль 2016, 22:08:33 от I-Jurij »

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
  • Автор темы
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #72 : 12 Февраль 2016, 20:10:08 »
А почему именно такой порядок?
Код
# Сделать доступными все драйвера:                                              
kernelpfs="`find $PTH/base/000-kernel.$xzm  2>/dev/null`" \                     
    || kernelpfs="$(find $PTH/base/000-kernel-`uname -r`.$xzm  2>/dev/null)" \ 
    || echo $i".[1;36m""модули 000-kernel, 000-kernel-`uname -r` отсутствуют"".[
mount -o loop -t squashfs "$kernelpfs" /opt/000-kernel 2>/dev/null
Это же нелогично, я думаю сначала нужно искать
более конкретный 000-kernel-`uname -r`.$xzm, и только если его нет - 000-kernel.$xzm,
иначе получится при наличии 000-kernel.pfs от своего ядра и 000-kernel-`uname -r`.pfs от манджаровского
всегда будет грузиться первый

Оффлайн I-Jurij

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 533
  • Репутация: +16/-0
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #73 : 12 Февраль 2016, 21:39:14 »
более конкретный 000-kernel-`uname -r`.$xzm, и только если его нет - 000-kernel.$xzm,
иначе получится при наличии 000-kernel.pfs от своего ядра и 000-kernel-`uname -r`.pfs от манджаровского
всегда будет грузиться первый
У мну в base два ядра с разными именами, грузится то, которое подходит под vmlinuz.

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
  • Автор темы
Re:pra-porteus-initrd + обычное aufs ядро
« Ответ #74 : 12 Февраль 2016, 21:59:04 »
Одно из этих имен просто 000-kernel.pfs?  Тогда я чего-то недопонимаю.  Впрочем, показанное место - это промежуточное монтирование, окончательно подключиться может и правильный pfs.  Но если в этом месте подключится неправильный - будут проблемы, к примеру, с шифрованной сохраненкой.  Если на этом этапе дополнительные модули не понадобились, то может и проскочить незаметно.  А потом кому-нибудь понадобятся и будем отлавливать глюки.