Message ID | 2023261577967225@iva2-d0266d205f48.qloud-c.yandex.net |
---|---|
State | Accepted |
Headers | show |
Series | [bug#38871] Add a check before activating modprobe | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | Apply failed |
Hello, kanichos@yandex.ru skribis: > Currently an activation service unconditionally tries to set up a modprobe wrapper by writing to /proc/sys/kernel/modprobe. This breaks if the kernel is built without loadable module support, Shepherd completely aborts. I believe there is no reason for it to be so. Just add a simple check for the existence of this /proc node. > > --- > gnu/build/activation.scm | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm > index c6c7e7fd3b..f7a5e53e79 100644 > --- a/gnu/build/activation.scm > +++ b/gnu/build/activation.scm > @@ -269,9 +269,10 @@ second element is the name it should appear at, such as: > > (define (activate-modprobe modprobe) > "Tell the kernel to use MODPROBE to load modules." > - (call-with-output-file "/proc/sys/kernel/modprobe" > - (lambda (port) > - (display modprobe port)))) > + (if (file-exists? "/proc/sys/kernel/modprobe") > + (call-with-output-file "/proc/sys/kernel/modprobe" Applied with minor tweaks. However, I suspect other issues will come up if you try to use a kernel without loadable module support. For instance, you’ll have to set: (initrd-modules '()) in your OS config file. Thanks, Ludo’.
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index c6c7e7fd3b..f7a5e53e79 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -269,9 +269,10 @@ second element is the name it should appear at, such as: (define (activate-modprobe modprobe) "Tell the kernel to use MODPROBE to load modules." - (call-with-output-file "/proc/sys/kernel/modprobe" - (lambda (port) - (display modprobe port)))) + (if (file-exists? "/proc/sys/kernel/modprobe") + (call-with-output-file "/proc/sys/kernel/modprobe" + (lambda (port) + (display modprobe port))))) (define (activate-firmware directory) "Tell the kernel to look for device firmware under DIRECTORY. This