From nobody Wed Mar 15 19:56:44 2023 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PcLl11BXSz3xjYK for ; Wed, 15 Mar 2023 19:57:01 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PcLl06Kczz3pM1; Wed, 15 Mar 2023 19:57:00 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lf1-f51.google.com with SMTP id d36so25714395lfv.8; Wed, 15 Mar 2023 12:57:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678910218; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rPqP2k3Z6g3y41xxUGDcUU/JfCsIuWXsPLmX1z6LYAU=; b=cCJ36AydJdrrd7rU/F466vBzYEF9d69kA4ZmTLjHPNon8X4eKU+Di8QYxqYhsFW97N K+Bz7Q+onJxbcJCEZEEqe94F04z+NXivSGdXlCPyAa71pnTK7KZ3LisrDtus0JPshdiT H3awx1j4lttYRMIQfs9p2IFP70/z67qBFeljBetcoFpnNygs0f7EIW8ZG3kqq1gVfdHy Qe7b9OuboRB5I8y8fnfdjWbeGF8May5vedr1PvWw/UuwBrkg55Ar61PF3AduAvv8/TWg nG5MpPTkRJe9QmKoPZTumvgUqkWlKludCzIdnu2zpVWGQrmayLxm0M5Xh0suhJxgz6zf wTvg== X-Gm-Message-State: AO0yUKV6UGdLUZ/9I2+sQv6ZcGqv06SHGgzgH0nd6zm2wVcR9QuiGxK5 tkTXPxx2a+DCjUKb6Tz5lGDJCpVn1PkayWQQNiKj/Xj+Sl0= X-Google-Smtp-Source: AK7set8elxEwGS14HS2iEQn/piCZqrt5aX63rgaPWrqaovkYk8wHRwY1B5guHYqb63omFQREP8kt8tfZwiK5MqBoNio= X-Received: by 2002:a05:6512:10d1:b0:4e8:6261:7dd0 with SMTP id k17-20020a05651210d100b004e862617dd0mr722214lfg.4.1678910217797; Wed, 15 Mar 2023 12:56:57 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 References: In-Reply-To: From: Ed Maste Date: Wed, 15 Mar 2023 15:56:44 -0400 Message-ID: Subject: Re: splash(4) support in vt To: Gleb Popov Cc: freebsd-hackers Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4PcLl06Kczz3pM1 X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N On Wed, 15 Mar 2023 at 12:59, Gleb Popov wrote: > > Hello hackers! > > I found an old post [1] regarding splash(4) support for vt. The > company I'm working for wants to invest some time into making the > FreeBSD boot process as shiny as possible. Can someone knowledgeable > on the topic give us some insight on where to start? > > Our ultimate task is being able to render a GIF logo right from the > boot splash screen and until X session kicks in. That's great, I'd very much like to see this supported. HelloSystem has the same desire, you can see the issue at https://github.com/helloSystem/ISO/issues/226. There are many individual tasks to be taken on; we need at least to get the image displayed earlier in the boot process, support more than just a 2-colour image, and support a user-provided (rather than compiled-in) image. We probably also need some animation support (e.g. a spinner). These tasks are all related but are mostly independent, so could be taken on in any order. What is your priority on these? The Wiki page linked from the mailing list posting is https://wiki.freebsd.org/MateuszPiotrowski/ImproveVtSplashScreenSupport, and it has a basic introduction. Looking at the source, the current logo is stored in sys/dev/vt/logo/logo_freebsd.c as a C array holding a 257x219 bitmap. If you look at vt_fb_bitblt_bitmap (and similar functions in other drivers) you can see that it loops over each pixel where the image will be drawn, and sets it to either the foreground or background color. The compiled in logo is passed to the specific driver's vd_bitblt_bmp function in vtterm_splash().