alexreinert / piVCCU

piVCCU is a project to install the original Homematic CCU3 firmware inside a virtualized container (lxc) on ARM based single board computers.
Apache License 2.0
300 stars 62 forks source link

pivccu-modules-raspberrypi lassen sich unter Debian nicht installieren #493

Closed protvis74 closed 10 months ago

protvis74 commented 1 year ago

Hallo Alex,

ich hoffe es ist in Ordnung das Problem hier zu erläutern.

Da "Prequisites Debian or Ubuntu based distribution" denke ich es ist OK.

TL;DNR: pivccu-modules-raspberrypi lassen sich unter Debian nicht installieren / kompilieren.

The following packages have unmet dependencies: pivccu-modules-raspberrypi : Depends: raspberrypi-kernel-headers but it is not installable or linux-headers-raspi but it is not installable E: Unable to correct problems, you have held broken packages.

Kann man die Module auch auf einem "original Debian" nutzen/installieren? Oder ist hier zwingend "Raspbian" notwendig? Wäre es möglich, dass Du eine Anpassung vornimmst, damit Debian ebenfalls unterstützt wird?

Hintergrund:

Ich benutze einen Raspberry PI3 mit PIVCCU. So wie es aussieht mit dem Raspbian Kernel Linux pivccu3 6.1.21-v8+ aber mit Debian als OS. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm

Ich habe wohl irgendwann mal ein Cross-Update von Raspbian auf Debian 10 gemacht. :) Raspbian machte mal Probleme (deshalb wohl auch das Upgrade) und ansonsten läuft Debian sowieso auf all meinen anderen Systemen. Das System läuft und macht was es soll.

Nun habe ich von Heise gehört, dass es im Kernel eine Sicherheitslücke zur Rechteausweitung gibt. https://www.heise.de/news/Linux-Kernel-Exploit-fuer-Sicherheitsluecke-angekuendigt-9209878.html

Nach Möglichkeit sollte man also den Kernel auf eine gefixte Version updaten (z. B. 6.1.37-1 (2023-07-03)) Da der installierte Kernel 6.1.21-v8+ schon älter und betroffen ist [Raspbian aktualisiert den Kernel wohl eher selten] habe ich diesen dann auf 6.1.37-1 aktualisiert. Der Kernel wurde zwar fehlerfrei installiert aber nicht aktiviert oder nach einem Reboot geladen. Nach einem Reboot war immer wieder der Raspbian Kernel 6.1.21-v8+ aktiv. Der Bootmechanismus ist bei Raspbian wohl anders als bei einem Standard Linux (initrd wird wohl nicht benutzt???).

Ich habe nun ein "original Debian" auf die SD-Karte gespielt und den Kernel aktualisiert. https://raspi.debian.net/tested-images/

Debian wird jetzt mit dem "richtigen Kernel" geladen.

Linux rpi3-20230612 6.1.0-10-arm64 #1 SMP Debian 6.1.37-1 (2023-07-03) aarch64 GNU/Linux

Zudem habe ich noch die passenden Kernel Header und Kernel Sources installiert.

linux-headers-6.1.0-10-arm64/stable-security 6.1.37-1 arm64 Header files for Linux 6.1.0-10-arm64 linux-image-6.1.0-10-arm64/stable-security 6.1.37-1 arm64 Linux 6.1 for 64-bit ARMv8 machines (signed)

i  linux-image-6.1.0-10-arm64          6.1.37-1     arm64        Linux 6.1 for 64-bit ARMv8 machines (signed)
un  linux-image-6.1.0-10-arm64-unsigned <none>       <none>       (no description available)
ii  linux-image-6.1.0-9-arm64           6.1.27-1     arm64        Linux 6.1 for 64-bit ARMv8 machines (signed)
un  linux-image-6.1.0-9-arm64-unsigned  <none>       <none>       (no description available)
ii  linux-image-arm64                   6.1.37-1     arm64        Linux for 64-bit ARMv8 machines (meta-package)
un  linux-image-generic                 <none>       <none>       (no description available)

||/ Name             Version      Architecture Description
+++-================-============-============-=======================================================
ii  linux-source-6.1 6.1.37-1     all          Linux kernel source for version 6.1 with Debian patches

Jetzt habe ich gemäß Deiner Anleitung versucht PIVCCU3 erneut zu installieren.

Bei der Installation der Kernel Module

sudo apt install raspberrypi-kernel-headers pivccu-modules-dkms

habe ich die "raspberrypi-kernel-headers " nicht installiert. (Da bereits die Debian Kernel Headers installiert sind).

DKMS hat die pivccu-Kernel-Module fehlerfrei erzeugt.

Nachdem ich allerdings mit "sudo apt install pivccu-modules-raspberrypi" das Paket pivccu-modules-raspberrypi installieren wollte schlug die Operation mit o.g. Fehler fehl.

root@rpi3-20230612:~# apt install pivccu-modules-raspberrypi Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:

The following packages have unmet dependencies: pivccu-modules-raspberrypi : Depends: raspberrypi-kernel-headers but it is not installable or linux-headers-raspi but it is not installable E: Unable to correct problems, you have held broken packages.

Ist mein Vorgehen soweit richtig? Ich hoffe die Softwarekonstellation und Anwendung ist nicht zu ungewöhnlich.

Über einen Lösungshinweis zur Installation würde ich mich sehr freuen. Danke.

alexreinert commented 1 year ago

Es wird nicht Raspbian vorrausgesetzt, sondern nur der Raspbian Kernel und die Raspbian Firmware, was primär daran liegt, dass man dieses Paket tunlichst nicht auf einen System installieren sollte, welches kein Raspberry Pi ist und das bis Debian 11 sehr gut daran erkannt werden konnte, weil auch dort der Raspbian Kernel verwendet wurde. An sich installiert das Paket nur das Device Tree Overlay, das könnte man ggf. auch per Hand installieren, wenn man unbedingt einen anderen Kernel will. Die Begründung für den abweichenden Kernel kann ich aber nicht nachvollziehen: Zum einen gibt es zu Sicherheitslücken regelmäßig Backports,zum anderen könnte man bei lokalem Systemzugriff auch eine Rechteausweitung über die Designfehler der Rega erhalten, welche ich zwar für externe Zugriffe verhindern kann, aber nicht für lokale Zugriffe von localhost aus.

protvis74 commented 1 year ago

Hallo Alex, danke für Deine Erläuterungen.

Ist es viel Aufwand das Device Tree Overlay von Hand zu installieren? Kann man dann auf den Raspbian Kernel verzichten und den "original Debian" Kernel verwenden? Mir ist nur aufgefallen, dass der Raspbian Kernel nicht so oft Updates erhält. Wie verhält es sich mit der von Heise beschriebenen Sicherheitslücke? Kann man die auch ignorieren oder sollte unbedingt ein gepatchter Kernel eingespielt werden? Man hört halt täglich von Angriffen auf ungepachte Systeme und von der Ausnutzung von Sicherheitslücken. Ich bin zwar "nur ein Heimanwender" möchte aber meine Systeme abgesichert wissen so gut es geht. Gibt es eine zusätzliche Rasbian Quelle um Kernel Updates zu erhalten?

Ich möchte natürlich nicht, dass ich Dir jetzt unnötigerweise zusätzliche Arbeit mache.

alexreinert commented 1 year ago

Die Sicherheitslücke lässt sich nur ausnutzen, wenn man sich an dem System lokal oder per SSH eingeloggt ist und dann kann sich auch einfacher Root Rechte beschaffen. Daher ist die Lücke in diesem Kontext praktisch nicht relevant.

Installation vom Device Tree Overlay ist überschaubar schwierig, wenn man weiß, wieman es macht. An sich könnte man das deb Paket ohne Installation entpacken und dann das dtbo manuell in die Boot Partition kopieren und in der config.txt eintragen.

stale[bot] commented 11 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.