Ech hat e Besoin fir en Dashboard mat Iwwerwaachung op verschiddene Schiirme am Büro ze weisen. Et gi verschidde al Raspberry Pi Model B + an en Hypervisor mat enger bal onlimitéierter Quantitéit u Ressourcen.
Anscheinend huet de Raspberry Pi Model B+ net genuch Zoufällegkeet fir de Browser dauernd ze lafen a vill Grafiken dran ze maachen, wéinst deem geschitt et datt d'Säit deelweis buggy ass an dacks crasht.
Et gouf eng zimlech einfach an elegant Léisung, déi ech mat Iech deele wëll.
Wéi Dir wësst, hunn all Raspberries e zimlech mächtege Videoprozessor, dee super ass fir Hardware Video Decodéierung. Also ass d'Iddi komm fir e Browser mat engem Dashboard iergendwou anzwousch anescht ze starten, an e fäerdege Stream mat engem rendered Bild op den Himbeer ze transferéieren.
Plus, dëst sollt d'Gestioun vereinfacht hunn, well an dësem Fall all Konfiguratioun op enger virtueller Maschinn duerchgefouert gëtt, wat méi einfach ass ze aktualiséieren an ze backen.
Net méi séier gesot wéi gemaach.
Server Deel
Mir benotzen prett
Mir installéieren eng nei virtuell Maschinn an installéiere se als éischt drop
apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodm
Mir wäerten och d'Konfiguratioun fir Xorg benotzen, frëndlech
cat > /etc/X11/xorg.conf <<EOT
Section "Device"
Identifier "device"
Driver "vesa"
EndSection
Section "Screen"
Identifier "screen"
Device "device"
Monitor "monitor"
DefaultDepth 16
SubSection "Display"
Modes "1920x1080" "1280x1024" "1024x768" "800x600"
EndSubSection
EndSection
Section "Monitor"
Identifier "monitor"
HorizSync 20.0 - 50.0
VertRefresh 40.0 - 80.0
Option "DPMS"
EndSection
Section "ServerLayout"
Identifier "layout"
Screen "screen"
EndSection
EOT
systemctl restart nodm
Elo wäerte mir Firefox installéieren, mir lafen et als Systemservice, also fir eng Saach schreiwen mir eng Eenheetsdatei dofir:
apt-get install -y firefox xdotool
cat > /etc/systemd/system/firefox.service <<EOT
[Unit]
Description=Firefox
After=network.target
[Service]
Restart=always
User=ubuntu
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/ubuntu/.Xauthority"
ExecStart=/usr/bin/firefox -url 'http://example.org/mydashboard'
ExecStartPost=/usr/bin/xdotool search --sync --onlyvisible --class "Firefox" windowactivate key F11
[Install]
WantedBy=graphical.target
EOT
systemctl enable firefox
systemctl start firefox
Mir brauchen Xdotool fir Firefox direkt am Vollbildmodus ze lafen.
Benotzt Parameter -url
Dir kënnt all Säit uginn sou datt se automatesch opmaacht wann de Browser ufänkt.
Op dëser Etapp ass eise Kiosk fäerdeg, awer elo musse mir d'Bild iwwer de Netz op aner Monitore an Apparater exportéieren. Fir dëst ze maachen, wäerte mir d'Méiglechkeeten benotzen
Dofir brauche mir zwou Saachen:
apt-get install -y make gcc ffmpeg
cd /tmp/
wget https://github.com/ccrisan/streameye/archive/master.tar.gz
tar xvf master.tar.gz
cd streameye-master/
make
make install
cat > /etc/systemd/system/streameye.service <<EOT
[Unit]
Description=streamEye
After=network.target
[Service]
Restart=always
User=ubuntu
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/ubuntu/.Xauthority"
ExecStart=/bin/sh -c 'ffmpeg -f x11grab -s 1920x1080 -i :0 -r 1 -f mjpeg -q:v 5 - 2>/dev/null | streameye'
[Install]
WantedBy=graphical.target
EOT
systemctl enable streameye
systemctl start streameye
Well eist Bild kee séieren Update erfuerdert, hunn ech den Erfrëschungsrate uginn: 1 Frame pro Sekonn (Parameter -r 1
) a Kompressiounsqualitéit: 5 (Parameter -q:v 5
)
Loosst eis elo probéieren ze goen
Client Säit
Et ass nach ëmmer méi einfach hei, wéi gesot, mir benotze de Raspberry Pi Model B +.
Als éischt, loosst eis et installéieren
Mir mussen och méi Erënnerung fir eise Video Chip allocéieren, dofir wäerte mir änneren /boot/config.txt
gpu_mem=128
Loosst eis eisen neie System booten an vergiesst net de Pacman Keyring initialiséieren, installéieren
pacman -Sy omxplayer
Bemierkenswäert, OMXPlayer kann ouni x funktionnéieren, also alles wat mir brauchen ass eng Eenheetsdatei dofir ze schreiwen a lafen:
cat > /etc/systemd/system/omxplayer.service <<EOT
[Unit]
Description=OMXPlayer
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/omxplayer -r --live -b http://your-vm:8080/ --aspect-mode full
[Install]
WantedBy=multi-user.target
EOT
systemctl enable omxplayer
systemctl start omxplayer
Als Parameter -b http://your-vm:8080/
mir ginn d'URL vun eisem Server weider.
Dat ass alles, e Bild vun eisem Server soll direkt um verbonne Bildschierm erscheinen. Am Fall vu Probleemer gëtt de Stream automatesch nei gestart an d'Clientë konnektéieren erëm domat.
Als Bonus kënnt Dir dat entstinn Bild als Screensaver op all Computer am Büro installéieren. Fir dëst wäert Dir braucht
mode: one
selected: 0
programs:
"Monitoring Screen" mpv --really-quiet --no-audio --fs
--loop=inf --no-stop-screensaver
--wid=$XSCREENSAVER_WINDOW
http://your-vm:8080/ n
maze -root n
electricsheep --root 1 n
Elo sinn Är Kollegen ganz frou 🙂
Source: will.com