From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 21 Sep 2020 18:37:04 +0300 From: Michael Shigorin To: devel-distro@lists.altlinux.org Message-ID: <20200921153703.GD13637@imap.altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.10.1 (2018-07-13) Subject: [devel-distro] =?koi8-r?b?W1NPTFZFRF0gydPUz9LJ0SDQ0s8gdXNlL3N0?= =?koi8-r?b?YWdlMi9rbXMgySAvdXNlL2Zpcm13YXJl?= X-BeenThere: devel-distro@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Distributions development List-Id: Distributions development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Sep 2020 15:37:04 -0000 Archived-At: List-Archive: Здравствуйте. Решил сделать ещё одну "зарисовку на салфетке" по мотивам довольно муторной проблемы. Дано: два образа, собранных одним днём на 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