Intelligente Lösungen
in neuer Dimension

Raspberry Pi ohne Monitor

In letzter Zeit spiele ich gelegentlich mit ein paar Raspis rum. Lästig ist die Sache mit der Anzeige: Ich brauche relativ häufig einen separaten Monitor, damit ich erkennen kann, was der Raspi gerade so macht.

Hier beschreibe ich ein Verfahren, wie’s für mich einfacher geht mit einem HDMI-Capture-Dongle.

Anleitung erstellt unter Ubuntu-20.04.

Vorarbeiten

Ich habe mir dieses Dongle besorgt: MACROSILICON HDMI CAPTURE DEVICE. Es ist das günstigste Dongle, das ich bei Amazon gefunden habe. Ich habe knapp 8 EUR dafür bezahlt.

Auf meinem Arbeitsplatzreechner habe ich diese Pakete installiert:

  • sudo apt install ffmpeg
  • sudo apt install v4l2loopback-util
  • sudo apt install obs-studio vlc

Aktuell ist unklar, ob man die wirklich alle benötigt!

Zwischenzeitlich habe ich auch mal mit den UDEV-Rules herumgespielt. Das scheint unnötig gewesen zu sein! Details dazu viel weiter unten im Abschnitt “Irrweg – UDEV-Rules”.

Anschluß

Ich verbinde das USB-Dongle mit einer USB-Buchse. Sowohl intern als auch am USB-Hub funktioniert’s. In das Dongle kommt dann noch das HDMI-Kabel, das auf der anderen Seite mit dem Rapi verbunden ist. Soweit kein Problem.

VLC

Erste Tests habe ich mit VLC durchgeführt: vlc.

  • Medien
  • Aufnahmegerät öffnen
  • Video-Gerätname: /dev/video2
  • Wiedergabe

Leider ist die Anzeige ziemlich unleserlich:

Unleserliche Anzeige mit VLC

OBS

Nachdem VLC kein gutes Bild darstellen kann, versuche ich es danach mit OBS: obs.

  • Autokonfiguration: Nein
  • Quellen: +
  • Videoaufnahmegerät V4L2
  • Videoformat: YUYV 4:2:2 oder YU12

Damit sieht das Bild ganz ordentlich aus:

Gute Anzeige mit OBS

Arbeit am Raspi

Nachdem die Anzeige OK ist, schließe ich eine Tastatur an den Raspi an und kann problemlos arbeiten. Einzige Schwierigkeit: Nach 5 Minuten schlägt der Bildschirmschoner von meinem Arbeitsplatz zu!

Irrweg – UDEV-Rules

/etc/udev/rules.d/91-hdmi-to-usb-ms2109.rules
1
2
3
4
5
6
# For HDMI-to-USB adaptor:
SUBSYSTEM=="usb", DRIVER=="snd-usb-audio", ATTRS{idProduct}=="2109", ATTRS{idVendor}=="534d", \
    RUN+="/bin/sh -c 'echo -n $kernel > /sys/bus/usb/drivers/snd-usb-audio/unbind'"

SUBSYSTEM=="usb", DRIVER=="snd-usb-audio", ATTRS{idProduct}=="2109", ATTRS{idVendor}=="534d", \
    ATTR{bInterfaceNumber}=="00", RUN+="/bin/sh -c 'sleep 1; echo -n $kernel > /sys/bus/usb/drivers/uvcvideo/bind'"

Nach Änderungen immer dies ausführen: sudo sudo udevadm control --reload-rules

Links

Historie und Anmerkung

  • 2021-07-23: Preis für den HDMI Catcher, Links
  • 2021-07-18: Erste Version