Subject: Cannot use modules with an inferior kernel.

From: Robby Zambito <[email-masked]>
Date: Mon, 13 Mar 2023 23:27:06 -0400

Hi,

I use an inferior to pin my kernel version, but it seems like I cannot
use modules with it. The following works fine:

```
(use-package-modules linux)
(operating-system
  ...
  (kernel linux-libre)
  (kernel-loadable-modules (list v4l2loopback-linux-module))
  ...)
```

As does the following:

```
(define rz/linux
  (let* ((channels
          (list (channel
		 (name 'guix)
		 (url "https://git.savannah.gnu.org/git/guix.git")
		 (commit "c81d2d448cbd051800867fe3f4b82ef3f4380ebf"))))
	 (inferior (inferior-for-channels channels))
	 (kernel-version "6.1.15"))
    (first (lookup-inferior-packages inferior "linux-libre" kernel-version))))

(operating-system
  ...
  (kernel rz/linux)
  ...)
```

However when I combine the two (using the inferior for the kernel +
specify modules)...

```
(operating-system
  ...
  (kernel rz/linux)
  (kernel-loadable-modules (list v4l2loopback-linux-module))
  ...)
```

I get the following error:

```
Backtrace:
In guix/store.scm:
   659:37 19 (thunk)
   1298:8 18 (call-with-build-handler #<procedure 7ff5305d4cc0 at g…> …)
  2168:25 17 (run-with-store #<store-connection 256.99 7ff526131b90> …)
In guix/scripts/system.scm:
    843:2 16 (_ _)
    717:8 15 (_ #<store-connection 256.99 7ff526131b90>)
In gnu/system.scm:
  1307:19 14 (operating-system-derivation _)
In gnu/services.scm:
  1140:36 13 (_ _)
In srfi/srfi-1.scm:
   586:29 12 (map1 (#<<service> type: #<service-type profile 7ff5…> …))
   586:29 11 (map1 (#<<service> type: #<service-type etc 7ff52978…> …))
   586:29 10 (map1 (#<<service> type: #<service-type activate 7ff…> …))
   586:29  9 (map1 (#<<service> type: #<service-type boot 7ff5297…> …))
   586:17  8 (map1 (#<<service> type: #<service-type linux-builder …>))
In gnu/services.scm:
   951:29  7 (linux-builder-configuration->system-entry _)
In guix/profiles.scm:
    438:4  6 (packages->manifest _)
In srfi/srfi-1.scm:
   586:17  5 (map1 ((#<inferior-package [email-masked] 7ff52…>) …))
In guix/inferior.scm:
    549:2  4 (loop (#<inferior-package [email-masked] 7ff52610…>) …)
    529:4  3 (inferior-package-input-field (#<inferior-package lin…>) …)
   473:18  2 (inferior-package-field (#<inferior-package linux-lib…>) …)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): (#<inferior-package [email-masked] 7ff5261088a0>)
```

It seems to me like this is a bug. If I am mistaken, some guidance would
be appreciated.

Thanks,
Robby