[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#45692] kernel-module-configuration-service for configuring kernel p
From: |
raid5atemyhomework |
Subject: |
[bug#45692] kernel-module-configuration-service for configuring kernel parameters |
Date: |
Thu, 07 Jan 2021 00:04:02 +0000 |
Hello Danny,
> See also https://issues.guix.info/issue/42193 for an earlier attempt (which
> is already very far--but it has a bug somewhere). There's also already a
> kernel profile thing like you wrote in that patchset.
> (Note that I would prefer there not to be a "LOAD?" in there because it
> confuses loading the module (which is usually NOT started by user space
> but by the kernel on its own) and confguring the module (which has to be
> done by user space because it's specifying policy, not mechanism))
Looks like that patchset was merged in, so basically I can just depend on that?
So the first patch in this patchset would be dropped?
> But I guess the ZFS Linux kernel module can't be built-in into the kernel
> anyway.
>
> But that's a special case--in general, it's very much possible to make modules
> built-in.
ZFS *can* be built-in to the kernel, Ubuntu does it. You can't distribute it
like that (Ubuntu distributes it like that but presumably they have enough
lawyers to muddy the waters so that they can get away with it), but as the
documentation in this patch notes: the user has every right to do whatever they
want on the machine they own, including build a Linux kernel that has ZFS
built-in and run it, they just can't make that version available to somebody
else.
So to go whole-hog, we would have a service that replaces the kernel package
and inserts kernel module sources in-tree somehow, then compiles Linux-libre on
the user's machine. That would probably be a lot more painful to install ZFS
with (the user has to recompile the whole kernel at each update of either
kernel or ZFS, whereas with a kernel module the user has to recompile just the
kernel module), so maybe kernel module is still better overall.
> > - ;; You'd think we could've used
> > kernel-module-loader-service-type,
> >
> >
>
> Definitely.
>
> > - ;; but the kernel-module-loader shepherd service is
> > dependent on
> >
> >
> > - ;; file-systems,
> >
> >
>
> Yes--but why is that dependent on 'file-systems ? Is it because it needs
> /proc ?
> Or is it an oversight ? I would prefer to get rid of this dependency and then
> use kernel-module-loader-service-type.
Dunno --- one VM I tested, I removed the `zfs-scan-automount` shepherd service
from the `file-systems` target, and the VM still wouldn't boot, claiming a
stack overflow (the same error which I got when I was still trying to use
kernel-module-loader-service-type here). Or maybe I just got confused with
which VM was which, testing VMs wasn't a stress-free vacation. I just want
ZFS, because MD RAID5 ate my homework, this is getting tiresome...
One thing I notice about `kernel-module-loader-service-type` is that it's not
instantiated in essential services, or indeed anywhere in Guix. A few services
*do* extend it. But my **very rough** understanding is that if you're going to
extend a service, it had better be instantiated *once* in the list of services.
In particular I note that the documentation for
`kernel-module-loader-service-type` shows an example where it uses `service` to
program the `kernel-module-loader-service-type`, not `simple-service`. This
suggests to me that `kernel-module-loader-service-type` is broken because it's
not in the list of essential services but is extensible. Maybe. It's designed
as an extensible service, but isn't instantiated at default. Maybe that's what
really bit me and not the shepherd circular dependency loop? *shrug*
>
> Also, this manual loading of kernel modules is not supposed to be the way to
> do things in Linux. That a kernel module was compiled as a module is
> an implementation detail--so Linux should (and usually does) automatically
> load kernel modules the first time a device for them is accessed (after all,
> how would user space know whether something is compiled as a module or
> built-in--that would be too much to ask).
So how do I get ZFS loaded? Note that the devices it targets are block devices
and it needs to scan for block devices that are formatted for ZFS. Do other
filesystems have some autoload rule?
Thanks
raid5atemyhomework