honeyxx Posted Wednesday at 11:37 PM Posted Wednesday at 11:37 PM Ich habe mittlerweile auch DVBViewer sauber unter ZorinOS am laufen mit mit MPC Video Renderer samt nativer D3D11 im LAV decoder dank DXVK für Wine, das man über winetools installieren kann. Dazu ein tvheadend Server, auf dem eine Win10 VM mit DMS läuft und direkt auf tvheadend zugreift und an den DVBViewer client streamt. Mit dieser Config kann ich sowohl über DVBViewer, als auch TVHPlayer und Kodi mit theadend oder dem DVBViewer Plugin streamen. Damit bin ich völlig unabhängig vom Betriebssystem und habe beiden Welten vereint. 1 Quote
honeyxx Posted yesterday at 04:45 PM Posted yesterday at 04:45 PM (edited) Falls es jemand interessiert, wie man tvheadend und DMS auf einem Rechner zum laufen kriegt und eine direkte Brücke zwischen beiden herstellt, eine kurze Anleitung zusammengefasst mit Hilfe einer KI. Die KI deshalbt, weil es eine harte Nuss war die Brücke herzustellen und die üblichen Methoden eine Brücke zwischen der VM und dem Host zumindest bei mir nicht gegriffen haben. Ausgangssystem ist ein Minisforum G41 mit einem Celerron J4105 und 8GB Ram auf dem Debian 13 und für die VM VirtualBox installiert wurde. Netzwerkverbindung nach Aussen erfolgt ausschließlich über Wlan. Wer Lan nutzen kann, der ist sogar deutlich besser aufgestellt. Es hat etliche Vesuche und Fehlschläge gedauert, bis es funktioniert hat, was ich euch bestenfalls ersparen möchte. Also fängt erst garnicht an mit QEMU und WIndows7 für die VM. Zusätzlich wurden zwei Schalter eingebaut, die sowohl die VM, als auch den Host entweder herunterfahren bzw. rebooten. DIe VM heisst bei mir Windows10-DMS. Sobald ihr das virtuelle Kabel angelegt habt, müsst ihr in WIndows die Firewall für das neue Nertwerk deaktivieren und der zweiten Netzwerkkarte die IP 192.168.100.2 vergeben. Die erste ist ja die Brücke zu euren Wlan bzw Lan, die ihr am Anfang vor der Installation von Windows im Bridged Modus erstellt habt. Im DVBViwer Media Server dann die Ip des Host 192.168.100.1 eintragen. hier der code für die beiden Schalter: #!/bin/bash # Sendet das Signal zum Herunterfahren an die Windows 10 VM /usr/bin/vboxmanage controlvm "Windows10-DMS" acpipowerbutton 2>/dev/null # Warte maximal 20 Sekunden, bis die VM wirklich geschlossen ist for i in {1..20}; do if ! /usr/bin/vboxmanage list runningvms | grep -q "Windows10-DMS"; then break fi sleep 1 done # Jetzt den Debian-Server sicher ausschalten sudo /sbin/poweroff und #!/bin/bash # Sendet das Signal zum Herunterfahren an die Windows 10 VM /usr/bin/vboxmanage controlvm "Windows10-DMS" acpipowerbutton 2>/dev/null # Warte maximal 20 Sekunden, bis die VM wirklich geschlossen ist for i in {1..20}; do if ! /usr/bin/vboxmanage list runningvms | grep -q "Windows10-DMS"; then break fi sleep 1 done # Jetzt den Debian-Server sicher neu starten sudo /sbin/reboot die kann man sich schön auf die taskleiste legen. Schritt 1: Windows 10 & VirtIO-Treiber Wechsel von der veralteten Windows 7 VM auf ein modernes Windows 10 mit paravirtualisierten VirtIO-Netzwerktreibern für maximale Paket-Geschwindigkeit Schritt 2: Das virtuelle Kabel im RAM (vbox-tap) Erstellung eines rein internen, unsichtbaren Netzwerkkabels im Arbeitsspeicher des Debian-Servers (192.168.100.1). Windows greift darüber direkt auf den Server zu – völlig ohne WLAN-Belastung. Schritt 3: Die blitzschnelle nftables-Umleitung Einbau einer Kern-Regel in Debian 13, die SAT>IP-Anfragen (Port 554) von der internen IP lautlos im RAM an die funktionierende Haupt-IP von Tvheadend weiterleitet. Schritt 4: Der rebootsichere Systemdienst Verankerung des virtuellen Kabels in einem Debian-Systemdienst (systemd). Das Kabel wird beim Booten mit vollen Rechten erstellt, bevor die VM nach 15 Sekunden automatisch lautlos (headless) startet. und jetzt die einzelnen Schritte. sudo nano /usr/local/bin/vbox-network-init.sh den code einfügen und abspeichern: #!/bin/bash # 1. Erstellt das virtuelle Kabel mit modernem Befehl, falls es fehlt if ! /usr/sbin/ip link show vbox-tap >/dev/null 2>&1; then /usr/sbin/ip tuntap add dev vbox-tap mode tap user Benutzer <---"hier trägt ihr euren benutzernamen ein. Kleingeschrieben" fi # 2. Schaltet das Kabel ein und vergibt die TV-Netzwerk-IP /usr/sbin/ip link set vbox-tap up /usr/sbin/ip addr add 192.168.100.1/24 dev vbox-tap 2>/dev/null || true # 3. Lädt die permanenten nftables-Regeln fehlerfrei /usr/sbin/nft -f /etc/nftables.conf /usr/sbin/nft -f /etc/nftables.tvh_nat # 4. Kurze Pause für die Routing-Tabelle im RAM und sauberer Ausstieg /usr/bin/sleep 2 exit 0 ausführbar machen mit: sudo chmod +x /usr/local/bin/vbox-network-init.sh Den Systemdienst erstellen: sudo nano /etc/systemd/system/vbox-network.service den Inhalt reinkopieren und abspeichern: [Unit] Description=Virtuelles VBox-Netzwerkkabel und NFTables fuer TV-Stream After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/vbox-network-init.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target Dienst aktivieren mit: sudo systemctl daemon-reload sudo systemctl enable vbox-network.service Die zweite Netzwerkkarte der VM zuweisen: vboxmanage modifyvm "Windows10-DMS" --nic2 bridged --bridgeadapter2 vbox-tap --nictype2 virtio Die Weiterleitungsregeln anlegen: sudo sh -c 'echo "table ip tvh_nat { chain prerouting { type nat hook prerouting priority dstnat; policy accept; ip daddr 192.168.100.1 tcp dport 554 dnat to 192.168.1.10:554 ip daddr 192.168.100.1 udp dport 554 dnat to 192.168.1.10:554 } }" > /etc/nftables.tvh_nat' Die Regel einbinden und Dienst aktivieren: sudo sed -i '/include "\/etc\/nftables.conf"/a include "/etc/nftables.tvh_nat"' /etc/nftables.conf sudo systemctl enable nftables und anschließend Windows Start nach 15 Sekunden: nano ~/.config/autostart/vbox-win10.desktop den inhalt reinkopieren und abspeichern: [Desktop Entry] Type=Application Name=Autostart Windows10-DMS Exec=sh -c "sleep 15 && vboxmanage startvm \"Windows10-DMS\" --type headless" NoDisplay=true Edited yesterday at 05:03 PM by honeyxx Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.