[gelöst] Host Standy verhindern, soange VM läuft

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

[gelöst] Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 05.03.2018 18:43:22

Hallo Zusammen,

ich habe bisher erfolglos das Netz durchsucht, nach Informationen wie ich den KDE Standby verhindern kann, solange meine QEMU/KVM Windows VM (mit durch gereichter Grafikkarte und Peripherie) läuft.
Die Peripherie ist per USB KVM am Host und an einem durch gereichten USB Controller angeschlossen. Daher gibt es keinen Peripherie Input und der Host (bzw. dessen KDE) würde nach der eingestellten Zeit in den Standby gehen.
Natürlich könnte man nun einfach den Standby deaktivieren uns später wieder aktivieren, aber darum geht es hier ja nicht.

Jetzt stellt sich die Frage, ob es da eine Möglichkeit über QEMU gibt, den Host wach zu halten?
Andernfalls würde ich ein Skript schreiben. Allerdings bin ich mir im unklaren, wo man da ansetzen würde.
Vielleicht hat sich schon jemand ähnliche Gedanken gemacht und Idee dazu?
Zuletzt geändert von fireburner am 18.03.2018 12:37:35, insgesamt 1-mal geändert.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Host Standy verhindern, soange VM läuft

Beitrag von NAB » 05.03.2018 20:03:41

Läuft Qemu als root? Dann tut bei mir systemd-inhibit, was es soll:
https://wiki.ubuntuusers.de/systemd/systemd-inhibit/

Danach nervt allerdings Polkit ...

Als einfacher Benutzer klappt das bei mir nicht. Bzw. vermutlich klappt es, wenn ein anderer einfacher Benutzer Qemu ausführt.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

Re: Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 05.03.2018 20:40:08

Nein, Qemu läuft unter dem Benutzer libvirt-qemu

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Host Standy verhindern, soange VM läuft

Beitrag von NAB » 05.03.2018 21:33:15

Probiere es doch erst mal aus:

Code: Alles auswählen

su
systemd-inhibit nano
Greift der Auto-Suspend dann noch?
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

Re: Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 06.03.2018 09:07:57

Danke dir. Werde ich heute Abend mal testen.

fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

Re: Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 06.03.2018 23:27:32

Das funktioniert schon mal so weit.
Nun müsste ich nur noch wissen, wo in Virt-Manager der Pfad zum QEMU Binary hinterlegt ist, um dort dann systemd-inhibit mit angeben zu können.Oder würde das per Alias auch funktionieren?

Bei Virt-Manager erstelle VMs lässt sich (scheinbar) leider nicht per virsh der Status abrufen,um das irgendwie per Skript verwerten zu können. Oder kennt da auch jemand einen Trick, wie man trotzdem die virsh commands nutzen könnte.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Host Standy verhindern, soange VM läuft

Beitrag von NAB » 07.03.2018 00:35:22

Tja ... jetzt wird's hässlich.

Möglichkeit 1:
Du legst dir einen zweiten Benutzer benutzer2 an und startest die VM mit:

Code: Alles auswählen

xhost + local:
su benutzer2
systemd-inhibit virt-manager
Möglichkeit 2:
Du bastelst dir ein Wrapper-Script. Das wird hier an einem viiiiel komplizierteren Beispiel beschrieben:
http://vfio.blogspot.de/2015/05/

Dein Script müsste so aussehen:

Code: Alles auswählen

#!/bin/sh
exec systemd-inhibit <Pfad zum richtigen Emulator> "$@"
fireburner hat geschrieben: ↑ zum Beitrag ↑
06.03.2018 23:27:32
Oder würde das per Alias auch funktionieren?
Vermutlich nicht. Dazu müsste eine Shell im Spiel sein, und auch noch die richtige mit dem richtigen Alias.
fireburner hat geschrieben: ↑ zum Beitrag ↑
06.03.2018 23:27:32
Bei Virt-Manager erstelle VMs lässt sich (scheinbar) leider nicht per virsh der Status abrufen,um das irgendwie per Skript verwerten zu können.
Ehh ... kannst du nicht? Doch, das sollte eigentlich gehen. virt-manager nutzt unter der Haube auch nur libvirt und virsh ist "die andere Benutzeroberfläche" zu libvirt. Mit
virsh edit <NameDerVM>
müsstest du eigentlich die XML-Definition deiner VM sehen können.
Mit <emulator> ... </emulator> ist gekennzeichnet, welchen Emulator sie benutzt.

Vielleicht wartest du noch mal ab, ob noch jemandem eine weniger bescheuerte Lösung einfällt ... das kann doch nicht so umständlich sein ...
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

Re: Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 13.03.2018 17:45:22

NAB hat geschrieben: ↑ zum Beitrag ↑
07.03.2018 00:35:22
Tja ... jetzt wird's hässlich.

Möglichkeit 1:
Du legst dir einen zweiten Benutzer benutzer2 an und startest die VM mit:

Code: Alles auswählen

xhost + local:
su benutzer2
systemd-inhibit virt-manager
Was wäre hier der Unterschied im Vergleich wenn ich systemd-inhibit virt-manager mit meinem Benutzer ausführen würde?
Der Nachteil ist halt, dass dann der Standby schon geblockt ist, sobald Virt-Manager gestartet ist und ich es nicht von einer bestimmten VM abhängig machen kann.
Aber als aller erster Lösungsansatz erst mal besser als jedes mal Standby abzuschalten.
NAB hat geschrieben: ↑ zum Beitrag ↑
07.03.2018 00:35:22
fireburner hat geschrieben: ↑ zum Beitrag ↑
06.03.2018 23:27:32
Oder würde das per Alias auch funktionieren?
Vermutlich nicht. Dazu müsste eine Shell im Spiel sein, und auch noch die richtige mit dem richtigen Alias.
fireburner hat geschrieben: ↑ zum Beitrag ↑
06.03.2018 23:27:32
Bei Virt-Manager erstelle VMs lässt sich (scheinbar) leider nicht per virsh der Status abrufen,um das irgendwie per Skript verwerten zu können.
Ehh ... kannst du nicht? Doch, das sollte eigentlich gehen. virt-manager nutzt unter der Haube auch nur libvirt und virsh ist "die andere Benutzeroberfläche" zu libvirt. Mit
virsh edit <NameDerVM>
müsstest du eigentlich die XML-Definition deiner VM sehen können.
Mit <emulator> ... </emulator> ist gekennzeichnet, welchen Emulator sie benutzt.
Leider zeigt mir vrish list --all keinen einzigen Eintrag an. Auch virsh edit VM funktioniert nicht und folgende Meldung erscheint:

Code: Alles auswählen

irsh edit Windows_10_Pro_Gaming
error: failed to get domain 'Windows_10_Pro_Gaming'                                                                                                   
error: Domain not found: no domain with matching name 'Windows_10_Pro_Gaming' 
Die Datei Windows_10_Pro_Gaming.xml ist aber unter /etc/libvirt/qemu vorhanden.
Es sieht so aus, als ob virsh die von virt-manager erstellten VMs nicht erkennt.

fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

Re: Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 14.03.2018 21:13:24

Okay bezüglich virsh und dem nicht anzeigen/editieren der VMs, habe ich im Debian Wiki zu KVM folgenden entscheidenden Hinweis gefunden:
libvirt defaults to qemu:///session for non-root. So from <youruser> you'll need to do:
$ virsh --connect qemu:///system list --all
Damit zeigt er mir die VMs an und ich kann diese auch bearbeiten.

fireburner
Beiträge: 140
Registriert: 01.12.2017 20:51:31
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Dänenland

Re: Host Standy verhindern, soange VM läuft

Beitrag von fireburner » 18.03.2018 12:37:12

Ich habe mir jetzt ein Skript geschrieben, dass einfach die Maus bewegt, wenn die Windows VM läuft und seit 5 Minuten keine Aktivität am Host verzeichnet wurde.
http://nopaste.debianforum.de/40196

Antworten