Re: [PATCH 1/2] init: ensure that /dev/console is (nearly) always available in initramfs
From: Askar Safin
Date: Mon Feb 23 2026 - 18:05:14 EST
Rob, I THINK I KNOW HOW TO SOLVE YOUR PROBLEM! (See below.)
On Mon, Feb 23, 2026 at 4:27 AM Rob Landley <rob@xxxxxxxxxxx> wrote:
>
> On 2/19/26 17:59, David Disseldorp wrote:
> >> This problem can be solved by using gen_init_cpio.
I said this, not David.
> It used to work, then they broke it. (See below.)
So you have a directory with rootfs, and you want to add /dev/console
to it? Do I understand your problem correctly?
This is how you can solve it.
Option 1 (recommended).
Let's assume you have your rootfs in a directory /tmp/rootfs . Then
create /tmp/cplist with:
dir /dev 0755 0 0
nod /dev/console 0600 0 0 c 5 1
And add this to your config:
CONFIG_INITRAMFS_SOURCE="/tmp/rootfs /tmp/cplist"
This will create builtin initramfs with contents of /tmp/rootfs AND
nodes from /tmp/cplist
(i. e. /dev/console).
This will work, I just checked it.
No need to build the kernel twice.
Does this solve your problem?
Option 2.
Alternatively (assuming you already built gen_init_cpio) you can
create cpio with /dev/console using gen_init_cpio and then
concatenate it with cpio archive with your rootfs.
Unfortunately, this may require building the kernel twice, as I
explained in my previous letter in this thread. But this option
is still doable.
Option 3.
Yet another way: run
usr/gen_initramfs.sh /tmp/rootfs /tmp/cplist > some-output.cpio
(again, here /tmp/rootfs is a directory with your rootfs and
/tmp/cplist is a list of nodes.)
Unfortunately, this requires gen_init_cpio to be present, so, again,
similarly to option 2, this may require building the kernel twice.
But, again, this is doable.
In fact, gen_initramfs.sh accepts same options as CONFIG_INITRAMFS_SOURCE,
this is explained in
https://elixir.bootlin.com/linux/v6.19/source/Documentation/driver-api/early-userspace/early_userspace_support.rst#L70
.
Conclusion.
As I said, option 1 is the best in my opinion. It does not require
building the kernel twice,
and, as well as I understand, fully solves your problem.
If I miss something, please, tell me this.
I really want to help you, Rob.
I sent this patch, because I want to help you.
--
Askar Safin