R
Rüdiger Küpper
fix: [vo/gpu/libplacebo] vk->CreateSwapchainKHR(...): VK_ERROR_OUT_OF_HOST_MEMORY [vo/gpu/…
2f4d870b
vor 11 Tagen
scripts/console-mode.sh
81 Zeilen · 2.9 KB · Shell
| 1 | |
| 2 | # =========================================================================== |
| 3 | # Stellt den Pi auf reinen Anzeigebetrieb um: kein Desktop mehr, Start direkt |
| 4 | # in die Konsole, tvwall malt ueber DRM/KMS unmittelbar auf den Bildschirm. |
| 5 | # |
| 6 | # Aufruf: sudo /opt/tvwall/scripts/console-mode.sh [--zurueck] |
| 7 | # |
| 8 | # --zurueck stellt den Desktop-Betrieb wieder her. |
| 9 | # =========================================================================== |
| 10 | set -euo pipefail |
| 11 | |
| 12 | CONF="/etc/tvwall/tvwall.conf" |
| 13 | INSTALLER="/opt/tvwall/install.sh" |
| 14 | |
| 15 | info() { printf '\033[1;36m==>\033[0m %s\n' "$*"; } |
| 16 | ok() { printf '\033[1;32m ✓\033[0m %s\n' "$*"; } |
| 17 | warn() { printf '\033[1;33m !\033[0m %s\n' "$*"; } |
| 18 | die() { printf '\033[1;31mFehler:\033[0m %s\n' "$*" >&2; exit 1; } |
| 19 | |
| 20 | [[ $EUID -eq 0 ]] || die "bitte mit sudo starten: sudo $0" |
| 21 | |
| 22 | if [[ "${1:-}" == "--zurueck" ]]; then |
| 23 | info "Stelle den Desktop-Betrieb wieder her" |
| 24 | systemctl set-default graphical.target |
| 25 | systemctl enable lightdm >/dev/null 2>&1 || true |
| 26 | systemctl enable getty@tty1.service >/dev/null 2>&1 || true |
| 27 | sed -i 's|^DISPLAY_MODE=.*|DISPLAY_MODE="auto"|' "$CONF" |
| 28 | [[ -x "$INSTALLER" ]] && "$INSTALLER" --no-ap --yes >/dev/null |
| 29 | ok "Desktop wieder aktiv - bitte neu starten: sudo reboot" |
| 30 | exit 0 |
| 31 | fi |
| 32 | |
| 33 | info "Boot-Ziel auf Konsole umstellen" |
| 34 | systemctl set-default multi-user.target >/dev/null |
| 35 | ok "Standard-Ziel: $(systemctl get-default)" |
| 36 | |
| 37 | info "Desktop-Anmeldung abschalten" |
| 38 | for dm in lightdm gdm3 sddm; do |
| 39 | if systemctl list-unit-files "$dm.service" >/dev/null 2>&1 && |
| 40 | systemctl is-enabled "$dm" >/dev/null 2>&1; then |
| 41 | systemctl disable "$dm" >/dev/null 2>&1 || true |
| 42 | systemctl stop "$dm" || true |
| 43 | ok "$dm abgeschaltet" |
| 44 | fi |
| 45 | done |
| 46 | sleep 1 |
| 47 | [[ "$(pgrep -c 'labwc|wayfire|Xorg' 2>/dev/null || echo 0)" == "0" ]] \ |
| 48 | && ok "keine Desktop-Oberflaeche mehr aktiv" \ |
| 49 | || warn "es laeuft noch eine Oberflaeche - nach dem Neustart ist sie weg" |
| 50 | |
| 51 | info "Bildausgabe auf DRM festlegen" |
| 52 | sed -i 's|^DISPLAY_MODE=.*|DISPLAY_MODE="drm"|' "$CONF" |
| 53 | ok 'DISPLAY_MODE="drm"' |
| 54 | |
| 55 | # Der Benutzer des Dienstes braucht Zugriff auf Grafik und Konsole. |
| 56 | RUN_USER="$(sed -n 's/^RUN_USER="\(.*\)"/\1/p' "$CONF" | head -1)" |
| 57 | RUN_USER="${RUN_USER:-tvwall}" |
| 58 | for grp in video render input tty; do |
| 59 | getent group "$grp" >/dev/null && usermod -aG "$grp" "$RUN_USER" 2>/dev/null || true |
| 60 | done |
| 61 | ok "Benutzer $RUN_USER hat Zugriff auf Grafik und Konsole" |
| 62 | |
| 63 | if [[ -x "$INSTALLER" ]]; then |
| 64 | info "Dienst auf die Konsolen-Variante umstellen" |
| 65 | "$INSTALLER" --no-ap --yes >/dev/null |
| 66 | ok "systemd-Dienst neu eingerichtet" |
| 67 | else |
| 68 | warn "$INSTALLER fehlt - bitte install.sh aus dem Paket erneut ausfuehren" |
| 69 | fi |
| 70 | |
| 71 | cat <<EOF |
| 72 | |
| 73 | =========================================================================== |
| 74 | Fertig. Nach dem Neustart faehrt der Pi ohne Desktop hoch und zeigt |
| 75 | sofort die Playliste. |
| 76 | |
| 77 | sudo reboot |
| 78 | |
| 79 | Zurueck zum Desktop: sudo $0 --zurueck |
| 80 | =========================================================================== |
| 81 | EOF |