~ruther/guix-local

081c5b2d66b6f9bdd1b966a96640b7ec4df8d5a6 — Ludovic Courtès 11 years ago 62f0a47
services: udev: Make sure modules are found, and use "udevadm settle".

* gnu/services/base.scm (udev-service): Set $LINUX_MODULE_DIRECTORY.  In
  the parent, invoke "udevadm settle" before "udevadm trigger".
1 files changed, 7 insertions(+), 0 deletions(-)

M gnu/services/base.scm
M gnu/services/base.scm => gnu/services/base.scm +7 -0
@@ 409,6 409,10 @@ hydra.gnu.org are used by default."
             (requirement '(root-file-system))
             (documentation "Populate the /dev directory.")
             (start #~(lambda ()
                        ;; Allow udev to find the modules.
                        (setenv "LINUX_MODULE_DIRECTORY"
                                "/run/booted-system/kernel/lib/modules")

                        (let ((pid (primitive-fork)))
                          (case pid
                            ((0)


@@ 421,6 425,9 @@ hydra.gnu.org are used by default."
                             (execl (string-append #$udev "/libexec/udev/udevd")
                                    "udevd"))
                            (else
                             ;; Wait for things to settle down.
                             (system* (string-append #$udev "/bin/udevadm")
                                      "settle")
                             ;; Create a bunch of devices.
                             (system* (string-append #$udev "/bin/udevadm")
                                      "trigger")