Ég þurfti að sýna mælaborð með eftirliti á nokkrum skjám á skrifstofunni. Það eru nokkrir gamlir Raspberry Pi Model B + og hypervisor með næstum ótakmarkað magn af auðlindum.
Svo virðist sem Raspberry Pi Model B+ hafi ekki nægilega tilviljunarkennd til að halda vafranum stöðugt í gangi og birta mikið af grafík í honum, vegna þess að síðan er að hluta til gallaður og hrynur oft.
Það var frekar einföld og glæsileg lausn sem mig langar að deila með ykkur.
Eins og þú veist eru öll hindber með nokkuð öflugan myndbandsörgjörva, sem er frábært fyrir vélbúnaðarmyndbandafkóðun. Svo kom upp sú hugmynd að opna vafra með mælaborði einhvers staðar annars staðar, og flytja tilbúið straum með renderðri mynd yfir á hindberið.
Auk þess ætti þetta að hafa einfaldað stjórnun, þar sem í þessu tilfelli verða allar stillingar framkvæmdar á einni sýndarvél, sem er auðveldara að uppfæra og taka öryggisafrit.
Ekki fyrr sagt en gert.
Server hluti
Við notum tilbúið
Við setjum upp nýja sýndarvél og setjum hana fyrst og fremst upp á henni
apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodm
Við munum líka nota stillingar fyrir Xorg, vinsamlegast
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
Nú munum við setja upp Firefox, við munum keyra það sem kerfisþjónustu, svo í fyrsta lagi munum við skrifa einingaskrá fyrir það:
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
Við þurfum Xdotool til að keyra Firefox strax í fullum skjástillingu.
Að nota færibreytu -url
þú getur tilgreint hvaða síðu sem er þannig að hún opnast sjálfkrafa þegar vafrinn ræsist.
Á þessu stigi er söluturninn okkar tilbúinn en nú þurfum við að flytja myndina út yfir netið á aðra skjái og tæki. Til að gera þetta munum við nota möguleikana
Til þess þurfum við tvennt:
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
Þar sem myndin okkar þarfnast ekki hraðrar uppfærslu, tilgreindi ég hressingarhraðann: 1 ramma á sekúndu (breytu -r 1
) og þjöppunargæði: 5 (færibreyta -q:v 5
)
Nú skulum við reyna að fara að
Viðskiptavinahlið
Það er samt auðveldara hér, eins og ég sagði, við munum nota Raspberry Pi Model B +.
Fyrst af öllu skulum við setja það upp
Við þurfum líka að úthluta meira minni fyrir myndbandskubbinn okkar, til þess munum við breyta inn /boot/config.txt
gpu_mem=128
Við skulum ræsa nýja kerfið okkar og ekki gleyma að frumstilla pacman lyklakippuna, setja upp
pacman -Sy omxplayer
Merkilegt nokk getur OMXPlayer virkað án x, svo allt sem við þurfum er að skrifa einingaskrá fyrir það og keyra:
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
Sem breytu -b http://your-vm:8080/
við erum að senda slóðina frá netþjóninum okkar.
Það er allt, mynd frá þjóninum okkar ætti strax að birtast á tengda skjánum. Ef einhver vandamál koma upp verður straumurinn sjálfkrafa endurræstur og viðskiptavinir tengjast honum aftur.
Sem bónus geturðu sett myndina sem myndast sem skjávara á allar tölvur á skrifstofunni. Fyrir þetta þarftu
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
Nú verða samstarfsmenn þínir mjög ánægðir 🙂
Heimild: www.habr.com