On Thu, Feb 6, 2020 at 12:07 AM Anthony DeRobertis <anth...@derobert.net> wrote:
>
> An interesting challenge you've taken up, I fear it's going to be a lot
> of work.

Heh. It's work we're doing internally, so it'd be good to get it into
an upstream-acceptable form.

> On almost all of my older installs, the initramfs is built with
> MODULES=dep, because otherwise /boot runs out of space; the amount of
> space MODULES=most takes is ever-increasing. So the kernel packages
> plopping a default initramfs in /boot would break those systems (but
> that's solvable e.g., by having it be an optional extra binary package)

Right. Not everyone is going to care about this use case - I'd just
like to enable it. Of course, one approach here would be to provide
two images - one with a minimal set of modules suitable for booting
most systems, and one with a more complete set of modules. It wouldn't
precisely solve the MODULES=dep problem, but it should handle both the
common resource constrained case (most desktop and laptop hardware)
and the case where you probably aren't too worried about the size of
/boot (most servers).

> Even with the default, it's possible to include extra modules — either
> by the admin plopping them in /etc/initramfs-tools/modules or I believe
> through package hooks. (I'm not sure if it also does the work
> MODULES=dep does and adds any extra modules found). But maybe as long as
> the kernel is only loading signed modules, it's OK to put additional
> modules in an extra, non-TPM-measured archive?

Yup, that's definitely an option.

> /etc/modprobe.d is included in initramfs. That's going to be challenging
> because it can include both configuration and code, and even without the
> code, "arbitrary kernel modules loaded with arbitrary options" seems to
> big a difference to ignore. And you can't not include this, since
> initramfs loads so many modules.
>
> Local udev rules (from /etc/udev/rules.d/) are included as well; they
> wind up in /usr/lib/udev/rules.d on the initramfs. Those are again an
> interesting combination of configuration and code.

I think there's two options here:

1) Rather than copy the files in directly, provide an abstraction that
covers the initramfs use cases and generates modprobe.d and udev rules
from static configuration, or:
2) As long as these files don't change frequently, this isn't a
problem - you can ask the user or admin to verify the files and then
flag them as acceptable for future measurements. This is slightly less
helpful, but is still an improvement (ie, you're able to figure out
/which/ files have changed rather than just knowing that something in
the initramfs has changed)

Reply via email to