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=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=vQDjW85gi7Nsq2Jj56j751xmMH3PGzcVdWkIX/hE2jk=; b=XJw8QKUojfz63Z9VGUJV4UMK0giGbJhK5yrNdw3AOpBo0v5+olwIDO2ewFAHWY0tf+ G05N+2emzpej65mX90vBMHiasTeomLD4pwGLgOgPMIbp8fwa6IyrhT2OdkSISgLWVthF V9phbaCk59erCS6bp3hPerN+OujgJl4SWPPLko4AOiiI8lU73EqDrLCQPQy1pgjXqSg1 BGloN/txn2m1jeYO456DGvynGuo8Ac5ScXXnpYWf7JdiVACFKAQhGKSYq4y3NDkye2/w rr0X7c3FVImCj8M1vv8sBVQwASAI9gzHvtesNkRR7FQ3vAMwb1l3d2jnyTBrIJ3qekHR LuNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; 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=vQDjW85gi7Nsq2Jj56j751xmMH3PGzcVdWkIX/hE2jk=; b=eo6njaLAhzcdTwyFSZdKzD5oBkts9PE8GpbNQcw3kg4l+rDrd3JgAp7NJbax62hDVi GQy9Nna0FYc905QoEwDBg/vppBTTzXimnHOBZ6kUoCTwyr4s+TW3jomlU2WeNLGwKx1x xmL0OozdSPd6R9CDY8TzkCNw5OQxYdpbgiAlX88ar1UWrHzIU+LWjJt81NDwjOYi2Jcb kBwouaiGTeeSLX81gYRk2A6BRYlXD26BIipdxyBuFtL/e1m8jljGjHH6zOjtzfJScm5s KMWt2+z9qEc/uAutEaLqbRvM8VllnlGwddzWpeBccoXzMTP40dQXe+sb6qHsQuaIJwpS bLoA== X-Gm-Message-State: AOAM532f9XhP1HYp1HjfF2Ke2AttKo5V16iZSRi7eF1KKAaKNwoKL+mS PkiclQpsatWqtkJXVGQoekEsG/twAfY= X-Google-Smtp-Source: ABdhPJxIt2fKAGBtra1HJDKC7r76rywJc37yxPvjWevBfU7TKlPP7wptZD0cvViy/2MajV/U1SfvrA== X-Received: by 2002:a2e:b0e2:: with SMTP id h2mr26019704ljl.23.1630447331046; Tue, 31 Aug 2021 15:02:11 -0700 (PDT) To: make-initrd@lists.altlinux.org References: <121fd50e-cce3-b28b-f05c-0efaa4606d7b@gmail.com> <20210823092907.yyy6gxk6yjzrsbvx@example.org> <20210823114813.d3zjjeyh2xb7xmec@example.org> <9c42252f-bfb3-0e73-0bf2-12ea40de2144@gmail.com> <20210830181307.63hv45lgcgyxyaff@example.org> <21a4dd2e-f6b5-a8d3-f31c-7c62c41f1071@gmail.com> <20210831074046.aadrpzt5dp4apxqq@example.org> From: Leonid Krivoshein Message-ID: <5d28c168-d52b-326c-ddf1-64e636e89c7b@gmail.com> Date: Wed, 1 Sep 2021 01:02:09 +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: <20210831074046.aadrpzt5dp4apxqq@example.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [make-initrd] =?utf-8?b?Ym9vdGNoYWluK2FsdGJvb3Q6INGDINC80LXQvdGP?= =?utf-8?b?INC10YHRgtGMINC/0LvQsNC9?= 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: Tue, 31 Aug 2021 22:02:14 -0000 Archived-At: List-Archive: Привет! 31.08.2021 10:40, Alexey Gladkov пишет: > On Mon, Aug 30, 2021 at 10:54:35PM +0300, Leonid Krivoshein wrote: >>>> 24.08.2021 4:16, Leonid Krivoshein пишет: >>>>> 23.08.2021 14:48, Alexey Gladkov пишет: >>>>>> On Mon, Aug 23, 2021 at 02:04:06PM +0300, Leonid Krivoshein wrote: >>>>>>>> [...] >>>>>>>> Не стоит ли сделать поддержку netconsole глобальной ? >>>> Полагаю, глобальной должна быть опция nottys и организация захвата и >>>> освобождения TTY'ов разными фичами. Тогда и вопрос расшаривания консоли >>>> решается проще. >>> Я не очень понял про захват tty в том смысле, что ты предлагаешь ? >> Любая фича, которая хочет использовать конкретный TTY или общий >> /dev/console, вроде как не должна это делать на своё усмотрение. Хорошо бы >> иметь общий механизм захвата и освобождения указанной TTY, например, в >> initrd-sh-functions: > В rdshell-sh-functions уже есть console_lock/console_unlock, которые > уже применяются в коде. Правда, выбора номера терминала они не > предусматривают. > >> lock_tty(n) >> unlock_tty(n) >> >> где n, номер VT либо 0 для /dev/console и netconsole. >> >> иначе асинхронная работа двух разных фич с одним терминалом не будет >> согласованной. > А как код будет понимать, что ему лочить N или 0 ? Я всё ещё не понимаю, > что будет в netconsole. В случае netconsole у нас вообще нет TTY'ов. Я даже не понял, почему их нет. Поэтому логично вызов lock_tty(n) переадресовывать на console_lock() при nottys в /proc/cmdline. Ещё лучше, найти способ авто-определения netconsole и выставлять внутренне NOTTYS=1, если нет TTY'ов даже, если это не указано в /proc/cmdline, но я не нашёл надёжного способа такого определения на шеле. >> [...] >> API должен быть написан исходя из конкретных потребностей, а не чтобы просто >> был. Кому и как может потребоваться API для работы с диалогами ввода/вывода? >> Я исхожу из того, что "пользователи" API -- это фичи make-initrd, это >> работающий код демонов, вывод которых уже куда-то перенаправлен, например в >> журнал или на /dev/console. Или это обработчики событий. Вдруг, им >> недостаточно события, а надо ещё и у пользователя что-то спросить? А может >> они ждут события, чтобы после него спросить нечто у пользователя? Например, >> PIN-код на вставленный токен. > Так уже есть фичи, которые спрашивают пин и они пользуются console_lock. Возможно, ты имеешь ввиду, что все диалоги должны происходить на одной консоли, той же, на которую runtime make-initrd выводит сообщения о запускаемых службах. Тогда да, можно не думать об отделении процесса через IM_exec(), тогда можно не заботиться о TTY'ах, можно блокировать консоль через пару console_lock() и console_unlock(), можно не думать о netconsole, так как это она и есть. Я это и имел ввиду под возвратом к более простой реализации, побочные эффекты которой -- мелькания диалогов вперемешку с выводом runtime. Если твоя концепция работы с TTY'ами будет именно такой, значит, под неё и придётся переделывать нынешнюю реализацию: #283645. > [...] >>> Для синхронизации с kbd можно поступить как с сетью и сделать сервис >>> kbd-ready, который можно ставить в зависимости других сервисов. >> А вот тут уже я не понял.)) > На runlevel 3 запускаются сервисы. Чтобы синхронизировать свой запуск с > асинхронными событиями такими как поднятие сети был сделан псевдосервис > network-up (он приезжает с фичей network). Сервисы, которым нужна сеть > ставят его в зависимости и будут запущены после него. > > Такую же штуку можно сделать и для настройки терминалов. В этом случае > можно будет стартовать сервис после того как фича kbd отработает. Отлично! > [...] > Так. Я понял, что я совсем не в контексте и не могу продуктивно обсуждать, > то что не видел. Присылай патчи, мы их обсудим, а потом подумаем, что > нужно от остального кода. Если нужно пораньше фичу interactive (pseudo-gui), то вот: #283645. Она уже давно оттестирована и не меняется. На днях с ней будут делаться регулярки, и тестирование будет иметь более широкий охват на железе. Если всё вместе, то уже работаю над этим всё свободное время, благо теперь у меня его больше. Для обсуждения концепции работы с TTY'ми можем организовать конфколл, Антона Мидикова позвать, надо ведь разные архитектуры учесть... -- Best regards, Leonid Krivoshein.