1{
2 lib,
3 stdenv,
4 kernel,
5 looking-glass-client,
6}:
7
8stdenv.mkDerivation {
9 pname = "kvmfr";
10 version = looking-glass-client.version;
11
12 src = looking-glass-client.src;
13 sourceRoot = "${looking-glass-client.src.name}/module";
14 hardeningDisable = [
15 "pic"
16 "format"
17 ];
18 nativeBuildInputs = kernel.moduleBuildDependencies;
19
20 makeFlags = [
21 "KVER=${kernel.modDirVersion}"
22 "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
23 ];
24
25 installPhase = ''
26 install -D kvmfr.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/misc/"
27 '';
28
29 meta = with lib; {
30 description = "Optional kernel module for LookingGlass";
31 longDescription = ''
32 This kernel module implements a basic interface to the IVSHMEM device for LookingGlass when using LookingGlass in VM->VM mode
33 Additionally, in VM->host mode, it can be used to generate a shared memory device on the host machine that supports dmabuf
34 '';
35 homepage = "https://github.com/gnif/LookingGlass";
36 license = licenses.gpl2Plus;
37 maintainers = with maintainers; [ j-brn ];
38 platforms = [ "x86_64-linux" ];
39 broken = kernel.kernelOlder "5.3";
40 };
41}