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=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=0FYY+NttNGKMcLW0oUgrJ9gDwzmyW7yMPBmQWXBjdp4=; b=LS089pqCWzPxtz97xaVsegtdRJr+ZICSZvwDFIFISZ5U99Dxt+O1hMmYX02rww8Gyg DHr6RdQSQEEF/bW2AVvX+exkDjbGuJiHm9qQwvqlnghDUUg6QVsmNUFR9P8UMe9nXdO8 IWu1mp6V9Gu0TjjXm4ZrVUdvxkJszsnndkti2E/DHkqNhll4FNPJHXqYHNyaQ6sYqGen ntG8khoZKqjDEcsodDF/rfFHG++mF/GfeTJeYD61bfNvOmVDcMiZ5GgPaPEy6kh6+KlN ZcoysMkwZLOO7ozSx8tZ0FQrBeXOh80NA6fx7DWN6PNxh2AWklmooSN+UnUHs85cs+8r Kdjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=0FYY+NttNGKMcLW0oUgrJ9gDwzmyW7yMPBmQWXBjdp4=; b=qnpKU1uLScsQmE3UDZM1Cfuo657aU32uA5JFEVwHbz3ipk1+8VohH6cDir34n2JZkW s2qh4fgBVRoA/cVfbw0yLIwBHpStzinJrr6yLLQAN3wtm1dYlarpNAg+FKr2W8tw1hYn mhruc5BQ1yKR0mFN5+U/OOzhpCNC+UB4CytfZArLFfnFiIwJ2V/ELGWpxIxgGfYonBFi pYIRvaz+cw8sLTAj30oIPsbwREmbRibxl1vSjFqwbvPf/W3HiOPqpOjM0PKTLCuuFGWZ R2wZIE3h8RG8hKLpa/hICZMTHPGpBPKYCDJNG3K0q+kwThwU1m5zWlODLDKbRB2asvIQ Y5gQ== X-Gm-Message-State: AOAM531TH0v0WkHBwdcAoGbvOeosxBYeSDmusAFJlBHDIHXG/48zzi0n hTHkIKkcdbwUm4Mioi27Jl/kB4hgI5A= X-Google-Smtp-Source: ABdhPJyM44zOm/wzSqN32hxco07N8xFzL+HUDN5IlZ2iMEY6wKZ0XvvnkoDv+2XsxP2bB7ZkKRPiHQ== X-Received: by 2002:a05:6512:68a:: with SMTP id t10mr61519736lfe.148.1636217573854; Sat, 06 Nov 2021 09:52:53 -0700 (PDT) To: make-initrd@lists.altlinux.org References: <20211024172323.DBBE6A5E66@lists.altlinux.org> <20211026191600.srasvg6dbltxrsjw@example.org> <595e8a7c-1b6b-361d-b597-60031d25e0f6@gmail.com> <20211106132213.2qojchid4yqymcvb@example.org> <20211106152234.tay7dqubnjr5j3ai@example.org> From: Leonid Krivoshein Message-ID: <6326194f-2c59-e78d-adeb-df28d50bb2ce@gmail.com> Date: Sat, 6 Nov 2021 19:52:52 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20211106152234.tay7dqubnjr5j3ai@example.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [make-initrd] [PATCH v6 21/22] bootchain-core: adds ability to bring the daemon to the foreground 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: Sat, 06 Nov 2021 16:52:57 -0000 Archived-At: List-Archive: 06.11.2021 18:22, Alexey Gladkov пишет: > On Sat, Nov 06, 2021 at 05:57:44PM +0300, Leonid Krivoshein wrote: >>> Так я же и написал tty2. Вопрос был о том, зачем демону перезапускаться ? >>> Он же может перенаправить свой ввод-вывод на любой терминал. >> Перенаправить-то он может свой ввод/вывод, но на переднем плане (на tty2) >> продолжает работать одна часть (перезапущенная), в то время как другая часть >> следит за истечением таймаута, чтобы переключиться на этот терминал (tty2). >> Есть условия, при которых мы должны переключаться на tty2 сразу, но данное >> разделение и перезапуск через openvt позволяют реализовать концепцию >> отложенного переключения на tty2. Иначе мы должны были бы переключиться туда >> немедленно и наблюдать все быстро проскакивающие диалоги, например, в >> течение первых 3-6 секунд загрузки altboot. Данное концептуальное усложнение >> позволило избавиться от мелькания диалогов на ранней стадии загрузки, когда >> никакого ввода от пользователя не требуется, и вся загрузка укладывается в >> отведённые 8 секунд таймаута. > Я с трудом понимаю. > Мы сейчас работаем с третьей реализацией bootchain. Первую без диалогов ты видел и комментировал. Во второй было всё просто: один монолитный пакет, переключение на tty2 и обратно через chvt с перенаправлением в/в. В ней была отмечена проблема быстрого мелькания диалогов, также описанная в этом баге: #30472. Разделение на процессы, перезапуск через openvt сделаны для решения этой проблемы, а также для очистки за собой этой интерактивной консоли, для работы с ещё одной служебной консолью, на которую выводится журнал отладки. Т.е. первый процесс контролирует или ждёт остальные запущенные процессы. Уже не помню всех шагов своих экспериментов, но кажется, если использовать tty2 без openvt -w ..., не получалось реализовать вариант, при котором демон отрабатывает на tty2 и удаляет за собой всё, не только чистит экран, даже в случае fatal(). А запуск через openvt подразумевал перезапуск части процесса. >>>> Алексей Шепляков предложил тут хорошую идею: использовать для тех же целей >>>> screen или tmux. Собственно задача: восстановить после себя консоль. Вариант >>>> идеальный, но у меня пока не вышло из-за проблем с настройкой utf8 в stage1, >>>> там одно другое цепляет, есть конфликты с plymouth и kbd, который сейчас, >>>> кажется, совсем нерабочий. >>> Кто совсем нерабочий ? >> make-initrd с фичей kbd у меня не собирается, фейлится. > # grep kbd /var/lib/initrd/`uname -r`.initrd/features > kbd > > Эта фича срабатывает в момент инициализации терминалов. > >> Вообще не проблема руками настроить консоль и utf8. Но проблемы >> начинаются, когда это начинают делать сразу несколько фич, когда с >> ресурсами типа tty2 или console начинают работать несколько разных фич, >> типа plymouth, kbd, rdshell. > Я не вижу проблем с kbd+rdshell. Насчёт plymouth не уверен, но на мой > взгляд не должно быть проблем. > >> Надо с этим чего-то придумать на верхнем уровне make-initrd. Некий общий >> аналог console-sh-functions, через API которого можно будет избежать >> гонок и конфликтов при инициализации консолей. > Я пока не понял сути проблемы. Для апстрима bootchain/altboot проблемы нет. Даже не идеальную bootchain-interactive можно заппстримить сейчас "как есть", а потом её улучшать, переводить с openvt на screen или tmux. Проблема, если мы хотим превратить bootchain-interactive в interactive/pseudogui или как-то ещё, сделав независимой от bootchain, получить фичу для работы с диалогами, которую смогут использовать и другие фичи, и которая сама будет нормально взаимодействовать с такими фичами, использующими (ломающими) консоль, как plymouth или kbd. Вот это уже твой уровень: надо подумать, как в make-initrd можно обеспечить совместную работу: 1) Нескольким фичам с любым произвольным ttyN; 2) Нескольким фичам с неким диалоговым TTY. Мы это хотели обсудить очно... -- Best regards, Leonid Krivoshein.