[devel-distro] [SOLVED] история про use/stage2/kms и /use/firmware

Michael Shigorin mike at altlinux.org
Mon Sep 21 18:37:04 MSK 2020


	Здравствуйте.
Решил сделать ещё одну "зарисовку на салфетке" по мотивам
довольно муторной проблемы.


Дано: два образа, собранных одним днём на p9_e2k из разных
веток mkimage-profiles; один нормально грузит инсталятор,
другой остаётся в VGA-режиме, пару раз моргает экраном и с

Starting Xorg server...
Error running Xorg server, trying with driver fbdev...
/sbin/init: /usr/sbin/install2: terminated with exit code 1

хотя бы выпал в аварийный sh, а не перезагрузку.

Надо: чтоб инсталятор нормально грузился и там, и там.


Сперва попытался запустить вручную так и этак.  Убедился, что
не инициализируется радеон.  Затем наконец заметил в dmesg,
что модуль-то загружен, но жаловался на недоступность firmware,
грузясь на втором десятке секунд аптайма, т.е. явно в initrd).

Поскольку rmmod radeon; modprobe radeon помогает -- думал уж
было закостылить, но как-то это нехорошо (неинициализировавший
видеокарту drm-драйвер, на котором не висит фреймбуферная консоль
-- по крайней мере поддаётся выдёргиванию, но мало ли, заклинит).


Начал сравнивать логи этих сборок:

$ grep -E '^(INSTALL2|STAGE)' good.iso.log
INSTALL2_BRANDING = notes
INSTALL2_CLEANUP_PACKAGES = llvm
INSTALL2_PACKAGES = alterator-postinstall installer-distro-centaurus-stage2 branding-alt-server-alterator pxz fdisk gdisk parted partclone vim-console net-tools openssh-clients lftp xorg-drv-synaptics xorg-drv-libinput x11vnc xterm net-tools [...] installer-feature-multipath installer-feature-desktop-other-fs-stage2 installer-feature-alphabet-profiles installer-feature-load-tun installer-feature-network-shares-stage3 installer-feature-auto-domain fdisk xorg-conf-synaptics strace fdisk installer-feature-e2k-power-stage2 installer-feature-serial-stage2 installer-feature-e2k-xorg-conf-stage2 installer-feature-e2k-fix-boot-stage2 installer-feature-fstrim-stage2 blacklist-ide ifplugd
STAGE1_KMODULES_REGEXP = drm.*
STAGE1_MODLISTS = pkgpriorities kernel stage2 metadata cleanup install2 repo init branding control services l10n volumes apt-conf firmware net rescue power net-eth build-distro pack tty e2k stage2-mmc stage2-drm stage2-fs stage2-hid stage2-md stage2-mmc stage2-net stage2-net-nfs stage2-rtc stage2-scsi stage2-usb
STAGE1_PACKAGES = make-initrd file iproute2 make-initrd-propagator propagator gnupg udev-rule-generator-net
STAGE2_PACKAGES = udev-rule-generator-net livecd-net-eth agetty

$ grep -E '^(INSTALL2|STAGE)' bad.iso.log
INSTALL2_BRANDING = alterator notes
INSTALL2_CLEANUP_PACKAGES = llvm
INSTALL2_PACKAGES = installer-feature-serial-stage2 alterator-postinstall [...] branding-alt-spserver-alterator installer-feature-e2k-xorg-conf-stage2 installer-feature-e2k-fix-boot-stage2 installer-feature-fstrim-stage2 blacklist-ide ifplugd volumes-profile-regular installer-feature-e2k-power-stage2 x11vnc xterm net-tools firmware-linux fonts-ttf-google-droid-serif fonts-ttf-google-droid-sans-mono fonts-ttf-google-droid-sans fonts-ttf-google-croscore-arimo alterator-notes lsblk fdisk gdisk
STAGE1_MODLISTS = pkgpriorities kernel tty services net net-eth stage2 metadata cleanup install2 repo e2k volumes net-ssh init power l10n rescue apt-conf build-distro pack
STAGE1_PACKAGES = make-initrd file iproute2 make-initrd-propagator propagator gnupg udev-rule-generator-net
STAGE2_PACKAGES = agetty udev-rule-generator-net livecd-net-eth
STAGE2_VOLUMES_PROFILE = volumes-profile-regular

Тут и без diff -w в глаза бросились STAGE1_KMODULES_REGEXP;
далее по *.cfg выяснил, что в первом случае use/stage2/kms
запрошен явно, а во втором -- нет.

Добавил use/stage2/kms -- его оказалось недостаточно, но этот
пунктик помог докопаться до наличия use/firmware в "хорошем"
образе и отсутствия -- в незапускающемся.


В общем, похоже, что use/stage2/kms пора прибивать гвоздиком
как минимум к +install2 == use/install2/full, раз это не было
сделано ещё тогда (как мне почему-то припоминалось).  Хорошо бы
с возможностью избежать при совсем уж ненадобности на каких-либо
архитектурах/задачах, но что-то я такие не очень уже представляю.

И ещё где-то теперь не хватает зависимости на use/firmware,
которая при этом тащит огромный firmware-linux (в идеале бы
отпилить от него то, что нужно видеокартам, и тащить в инсталер
только это).

Сейчас голова немножко не в том состоянии, чтобы что-то на эту
тему патчить "для всех".  Но хотя бы напишу.

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


More information about the devel-distro mailing list