Subject: Re: bug#34758: Acknowledgement ([PATCH 1/4] gnu: Add libmirage.)

From: Pierre Neidhardt <[email-masked]>
Date: Tue, 05 Mar 2019 18:44:25 +0100

libmirage, cdemu-daemon and cdemu-client seems to be fine.

The VHBA kernel module is not package properly and this a blocker for
cdemu-daemon.

1. This raises the more general issue of building kernel modules on Guix.

For the record, here is the VHBA makefile:

--8<---------------cut here---------------start------------->8---
VHBA_VERSION := 20170610

KERNELRELEASE ?= $(shell uname -r)
KDIR ?= /lib/modules/$(KERNELRELEASE)/build
PWD ?= $(shell pwd)

obj-m := vhba.o
ccflags-y := -DVHBA_VERSION=\"$(VHBA_VERSION)\" -Werror

default: modules
install: modules_install

modules modules_install clean:
	$(MAKE) -C $(KDIR) M=$(PWD) $@
--8<---------------cut here---------------end--------------->8---

As you can see, it relies on the Makefile (and probably a bunch of other
files) in /lib/modules/$(KERNELRELEASE)/build.

In our linux-libre package, "build" is a broken symlink, e.g. to
/tmp/guix-build-linux-libre-4.20.12.../linux-4.20.12.

Shouldn't we include this folder in the linux-libre package?  Without
it, I can't see how to build kernel modules.

Once we have this, we will be able to build vhba-module.

2. Next question: how do we load this module?  In `operating-system' we
have `initrd-modules', but in this case vhba is probably not needed in
the initrd.  What we really want, I think, is a union of kernel modules
in say

/run/booted-system/kernel/lib/modules/4.20.7/

Makes sense?

Thoughts?

--
Pierre Neidhardt
https://ambrevar.xyz/