From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 Date: Mon, 19 Oct 2026 12:51:46 +0000 From: Egor Shestakov To: make-initrd@lists.altlinux.org Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [make-initrd] =?utf-8?b?a21zY29uICh3YXM6INCf0LDRgNCw0LzQtdGC0YAg?= =?utf-8?q?rdshell=29?= X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2026 12:51:56 -0000 Archived-At: List-Archive: Привет! On Mon, Oct 19, 2026 at 12:22:58PM +0200, Alexey Gladkov wrote: > On Wed, Oct 14, 2026 at 10:04:28AM +0000, Egor Shestakov wrote: > > Legion, раз я делаю фичу kmscon мне бы было полезно разобраться с этой > > проблемой, можешь подсказать в какую сторону посмотреть? > > Ты не мог бы рассказать подробнее, что ты хочешь сделать ? Хочу иметь возможность запускать kmscon в initrd вместо rdshell, т.к. на HiDPI экранах текст, выводимый в фреймбуферную консоль почти не видно, что особенно критично, когда запрашивается LUKS-пароль. Kmscon, как эмулятор терминала, имеет значительные зависимости: - /dev/pts, это можно прописать как для dropbear в init-скрипте: > > [ -n "$(findmnt -k -n -o TARGET -t devpts 2>/dev/null)" ] || > mount -t devpts devpts /dev/pts и - /dev/input/event*, поэтому он может запуститься только после udev, но до uevent раз мы хотим обрабатывать LUKS. У меня получилось, с этой предварительной подготовкой, захардкодить вместо вызова rdshell `kmscon --oneshot -l -- /bin/sh -l` , но это, конечно, некрасиво и даже приблизительно не решение. Дело в том, что kmscon, в сравнении с rdshell, вещь очень капризная и, в случае ошибки, должен откатываться на rdshell, да и вызвать его можно далеко не сразу (как обозначить это когда? создавать специальный файл во время init-скрипта?), также нужно дополнительный boot-параметр (rdkmscon?), определяющий его необходимость в initrd. Для "stop=" надо тоже придумать что-то -- с определенного момента он может успешно отрабатывать в kmscon. Думаю, что нужно сделать некоторую фукнцию-обертку для вызова kmscon/rdshell, в которой будет проверена надобность в kmscon, все ли необходимые условия для его запуска исполнены, и, естественно, откат на rdshell при ошибке. Так как /etc/rc.d/rc захватывает /dev/console и держит до конца старта всех сервисов, с kmscon мы должны тоже полагаться на этот захват, чтобы не стартануть раньше времени. Не понимаю, что делать с uevent-обработчиками, который читают из /dev/console. Как это можно обернуть? Например 085-luks: > > exec 0/dev/console 2>&1 > run_console_locked process_events И под конец письма вспомнил, что rdshell ещё свои параметры имеет для парольного входа. -- Egor Shestakov ved ascii(0x40) altlinux ascii(0x2E) org