Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation auf LXD debian bookworm VM: Create kernel modules ... FAILED #365

Closed
JensNbb opened this issue Jan 5, 2024 · 5 comments
Closed

Comments

@JensNbb
Copy link

JensNbb commented Jan 5, 2024

Möglicherweise ist das kein Issue, sondern ein Feature Request:

Der Versuch, debmatic innerhalb einer debian bookworm VM zu installieren, die unter LXD auf einem Pi 4 läuft, scheitert bei der Installation der Kernel Module (volles Listing siehe unten):

root@ccu3:~# sudo apt install pivccu-modules-dkms
[..]
Setting up pivccu-modules-dkms (1.0.84) ...
Create kernel modules ... FAILED
Check kernel headers ... Done
Prepare kernel headers ... Done
Install DKMS package ... Done
Try to load fresh build modules ... FAILED
modprobe: ERROR: could not insert 'generic_raw_uart': Key was rejected by service
Enable DKMS service ... Done

Die identische Prozedur mit der gleichen Hardware (HB-RF-USB-2) aber Proxmox statt LXD funktioniert, an der Hardware sollte es also nicht liegen. /var/lib/dkms/pivccu/1.0.84/6.1.0-17-arm64/aarch64/log/make.log sieht ebenfalls bis auf ein paar BTF Fehler unauffällig aus (siehe unten).

Reproduktion ab einem "nackten" Raspberry Pi OS Lite (64-bit), 2 GB RAM, 16 GB SD-Karte

sudo apt update && sudo apt upgrade -y

# 1. LXD installieren und starten
sudo apt install snapd
sudo snap install lxd  
echo "export PATH='/snap/bin:$PATH'" >> ~/.bashrc
sudo usermod -a -G lxd <user>

# ausloggen und neu einloggen
lxd init    # Alle Eingaben mit default beantworten

# 2. VM herrichten und einloggen
lxc launch images:debian/12 ccu3 --vm
lxc config device add ccu3 HB-RF-USB-2 usb vendorid=10c4 productid=8c07  # HB-RF-USB-2 durchreichen
lxc shell ccu3

# 3. debmatic installieren 
# Ab bier geht es weiter innerhalb der VM ccu3, größtenteils nach Anleitung (lxc shell sollte als root einloggen)
apt update && apt upgrade -y
apt install sudo apt-transport-https wget usbutils

wget -q -O - https://apt.debmatic.de/debmatic/public.key | sudo tee /usr/share/keyrings/debmatic.asc
echo "deb [signed-by=/usr/share/keyrings/debmatic.asc] https://apt.debmatic.de/debmatic stable main" | sudo tee /etc/apt/sources.list.d/debmatic.list
apt update
apt install build-essential bison flex libssl-dev
apt install linux-headers-$(uname -r)

# Hier lohnt es sich, auf dem Host einen Snapshot zu ziehen: lxc snapshot ccu3 before-pivccu-kernel-install

apt install pivccu-modules-dkms

Der volle Output des apt install pivccu-modules-dkms

root@ccu3:~# sudo apt install pivccu-modules-dkms
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  dkms linux-headers-arm64 lsb-release
Suggested packages:
  menu
The following NEW packages will be installed:
  dkms linux-headers-arm64 lsb-release pivccu-modules-dkms
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 99.7 kB of archives.
After this operation, 221 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://deb.debian.org/debian bookworm/main arm64 lsb-release all 12.0-1 [6416 B]
Get:2 http://deb.debian.org/debian bookworm/main arm64 dkms all 3.0.10-8+deb12u1 [48.7 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security/main arm64 linux-headers-arm64 arm64 6.1.69-1 [1412 B]
Get:4 https://apt.debmatic.de/debmatic stable/main arm64 pivccu-modules-dkms all 1.0.84 [43.1 kB]
Fetched 99.7 kB in 2s (48.6 kB/s)                 
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package lsb-release.
(Reading database ... 45695 files and directories currently installed.)
Preparing to unpack .../lsb-release_12.0-1_all.deb ...
Unpacking lsb-release (12.0-1) ...
Setting up lsb-release (12.0-1) ...
Selecting previously unselected package dkms.
(Reading database ... 45700 files and directories currently installed.)
Preparing to unpack .../dkms_3.0.10-8+deb12u1_all.deb ...
Unpacking dkms (3.0.10-8+deb12u1) ...
Setting up dkms (3.0.10-8+deb12u1) ...
Selecting previously unselected package pivccu-modules-dkms.
(Reading database ... 45724 files and directories currently installed.)
Preparing to unpack .../pivccu-modules-dkms_1.0.84_all.deb ...
Unpacking pivccu-modules-dkms (1.0.84) ...
Selecting previously unselected package linux-headers-arm64.
Preparing to unpack .../linux-headers-arm64_6.1.69-1_arm64.deb ...
Unpacking linux-headers-arm64 (6.1.69-1) ...
Setting up linux-headers-arm64 (6.1.69-1) ...
Setting up pivccu-modules-dkms (1.0.84) ...
Create kernel modules ... FAILED
Check kernel headers ... Done
Prepare kernel headers ... Done
Install DKMS package ... Done
Try to load fresh build modules ... FAILED
modprobe: ERROR: could not insert 'generic_raw_uart': Key was rejected by service
Enable DKMS service ... Done

Der Output in make.log

root@ccu3:/var/lib/dkms/pivccu/1.0.84/6.1.0-17-arm64/aarch64/log# cat make.log
DKMS make.log for pivccu-1.0.84 for kernel 6.1.0-17-arm64 (aarch64)
Fri Jan  5 17:23:19 UTC 2024
make -C /lib/modules/6.1.0-17-arm64/build M=/var/lib/dkms/pivccu/1.0.84/build modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.0-17-arm64'
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/eq3_char_loop.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/plat_eq3ccu2.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/generic_raw_uart.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/pl011_raw_uart.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/dw_apb_raw_uart.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/meson_raw_uart.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/fake_hmrf.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/rpi_rf_mod_led.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/dummy_rx8130.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/led_trigger_timer.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb_2.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_eth.o
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/rtc-rx8130.o
  MODPOST /var/lib/dkms/pivccu/1.0.84/build/Module.symvers
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/dummy_rx8130.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/dummy_rx8130.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/dummy_rx8130.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/dummy_rx8130.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/dw_apb_raw_uart.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/dw_apb_raw_uart.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/dw_apb_raw_uart.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/dw_apb_raw_uart.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/eq3_char_loop.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/eq3_char_loop.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/eq3_char_loop.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/eq3_char_loop.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/fake_hmrf.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/fake_hmrf.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/fake_hmrf.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/fake_hmrf.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/generic_raw_uart.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/generic_raw_uart.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/generic_raw_uart.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/generic_raw_uart.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_eth.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_eth.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/hb_rf_eth.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/hb_rf_eth.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb_2.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb_2.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb_2.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/hb_rf_usb_2.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/led_trigger_timer.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/led_trigger_timer.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/led_trigger_timer.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/led_trigger_timer.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/meson_raw_uart.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/meson_raw_uart.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/meson_raw_uart.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/meson_raw_uart.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/pl011_raw_uart.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/pl011_raw_uart.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/pl011_raw_uart.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/pl011_raw_uart.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/plat_eq3ccu2.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/plat_eq3ccu2.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/plat_eq3ccu2.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/plat_eq3ccu2.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/rpi_rf_mod_led.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/rpi_rf_mod_led.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/rpi_rf_mod_led.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/rpi_rf_mod_led.ko due to unavailability of vmlinux
  CC [M]  /var/lib/dkms/pivccu/1.0.84/build/rtc-rx8130.mod.o
  LD [M]  /var/lib/dkms/pivccu/1.0.84/build/rtc-rx8130.ko
  BTF [M] /var/lib/dkms/pivccu/1.0.84/build/rtc-rx8130.ko
Skipping BTF generation for /var/lib/dkms/pivccu/1.0.84/build/rtc-rx8130.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-17-arm64'
@JensNbb
Copy link
Author

JensNbb commented Jan 5, 2024

Kleiner Nachtrag: Mit einer bullseye VM funktioniert es auch unter LXD, es dürfte also tatäschlich ein issue sein und kein feature request ;-). Einfach in der Anleitung zur Reproduktion die Zeile

lxc launch images:debian/12 ccu3 --vm

ersetzen durch

lxc launch images:debian/11 ccu3 --vm

dann läuft alles sauber durch und auf 'debmatic-info' wird sauber geantwortet mit:

debmatic version: 3.73.9-112
OS:               Debian GNU/Linux 11 (bullseye)
Kernel:           5.10.0-27-arm64 aarch64
Service Status:   Running
Kernel modules:   Available
Raw UART dev:     Available
HMRF Hardware:    RPI-RF-MOD
 Connected via:   HB-RF-USB-2@usb-0000:01:00.6-4 (/dev/raw-uart)
 Board serial:    5F298D8F34
 Radio MAC:       0xFF8F34
HMIP Hardware:    RPI-RF-MOD
 Connected via:   HB-RF-USB-2@usb-0000:01:00.6-4 (/dev/raw-uart)
 SGTIN:           3014xxxxxxxxxxxxxxx8F34
 Radio MAC:       0xBFBCA3

[Falls die VM beim launch hängen bleibt, hilft ggf. folgendes:

lxc stop ccu3 --force
lxc config set ccu3 security.secureboot=false
lxc start ccu3

]

@alexreinert
Copy link
Owner

Das ist kein debmatic Issue, wenn überhaupt ist es ein dkms Issue. Aber eigentlich will man keine Kernel Module innerhalb eines Containers bauen bzw. laden.

@JensNbb
Copy link
Author

JensNbb commented Jan 5, 2024

Aber eigentlich will man keine Kernel Module innerhalb eines Containers bauen bzw. laden.

Definitiv will man das nicht. Wenn man bei LXD mit der -vm Option startet, wird eine komplette VM auf kvm Basis hochgezogen, ähnlich wie bei Proxmox. Der Manager ist allerdings nur mit CLI und damit deutlich schlanker, als Proxmox und deshalb gerade für Hausautomatisierung ganz interessant.

Das ist kein debmatic Issue, wenn überhaupt ist es ein dkms Issue.

Hast Du einen Tipp, wo man noch reinschauen kann, um das einzukreisen?

@alexreinert
Copy link
Owner

alexreinert commented Jan 5, 2024

Ggf. Hilft es die Kernel Header nochmal frisch zu installieren, möglicherweise steht da fehlerhafterweise irgendwas mit Secure Boot bzw. Module Signing drin. Die Fehlermeldung vom modprobe klingt zumindest schwer in die Richtung.

@JensNbb
Copy link
Author

JensNbb commented Jan 6, 2024

"Secure Boot" war der entscheidende Hinweis. Startet man die VM mit

lxc launch images:debian/12 ccu3 --vm —config security.secureboot=false

läuft die Installtion komplett durch. Ein Eintrag weniger auf Deiner amazon Wunschliste ;-)

Hier nochmal die komplette Anleitung vom frischen Rasperry Pi OS lit (64-bit) bis zur fertigen CCU3 für alle, die das gerne auf Basis von LXD machen wollen:

sudo apt update && sudo apt upgrade -y

# 1. LXD installieren und starten
sudo apt install snapd -y
sudo snap install lxd  
echo "export PATH='/snap/bin:$PATH'" >> ~/.bashrc
sudo usermod -a -G lxd <user>

# ausloggen und neu einloggen
lxd init    # Alle Eingaben mit default beantworten

# 2. VM herrichten und einloggen
lxc launch images:debian/12 ccu3 --vm --config security.secureboot=false
lxc shell ccu3

# 3. debmatic Installation vorbereiten 
# Ab bier geht es weiter innerhalb der VM ccu3, größtenteils nach Anleitung (lxc shell sollte als root einloggen)
apt update && apt upgrade -y
apt install sudo apt-transport-https wget usbutils -y

wget -q -O - https://apt.debmatic.de/debmatic/public.key | sudo tee /usr/share/keyrings/debmatic.asc
echo "deb [signed-by=/usr/share/keyrings/debmatic.asc] https://apt.debmatic.de/debmatic stable main" | sudo tee /etc/apt/sources.list.d/debmatic.list
apt update
apt install build-essential bison flex libssl-dev -y
apt install linux-headers-$(uname -r) -y

# 4. Reboot und USB Modul an die VM durchleiten
shutdown now
# Hier lohnt es sich, auf dem Host einen Snapshot zu ziehen: lxc snapshot ccu3 before-pivccu-kernel-install
lxc config device add ccu3 HB-RF-USB-2 usb vendorid=10c4 productid=8c07  # HB-RF-USB-2 durchreichen
lxc start ccu3
lxc shell ccu3

# 5. debmatic installieren
apt install pivccu-modules-dkms -y
reboot

apt install debmatic -y

# Zurück auf dem Host:

# Port-forwarding einrichten, damit Homematic über die Adresse des Hosts erreichbar ist:
# IP-Adresse der CCU per "lxc list ccu3" auf dem Host oder "ip addr" in der VM abfragen
sudo apt install iptables iptables-persistent -y

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <IP Adresse der CCU>:80
sudo netfilter-persistent save
sudo netfilter-persistent reload

Danach ich Homematic unter dem Namen des Raspberry erreichbar, also z.B. http://raspberrypi

@JensNbb JensNbb closed this as completed Jan 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants