నేను కార్యాలయంలోని అనేక స్క్రీన్లపై పర్యవేక్షణతో కూడిన డ్యాష్బోర్డ్ను ప్రదర్శించాల్సిన అవసరం ఉంది. మా వద్ద అనేక పాత రాస్ప్బెర్రీ పై మోడల్ B+ మరియు దాదాపు అపరిమిత మొత్తంలో వనరులతో కూడిన హైపర్వైజర్ ఉన్నాయి.
స్పష్టంగా, రాస్ప్బెర్రీ పై మోడల్ B+ బ్రౌజర్ను నిరంతరం రన్ చేసేలా చేయడానికి మరియు దానిలో పెద్ద మొత్తంలో గ్రాఫిక్లను అందించడానికి తగినంత యాదృచ్ఛికతను కలిగి ఉండదు, అందుకే పేజీ పాక్షికంగా ఇబ్బందికరంగా ఉంటుంది మరియు తరచుగా క్రాష్ అవుతుంది.
నేను చాలా సరళమైన మరియు సొగసైన పరిష్కారాన్ని కనుగొన్నాను, దానిని నేను మీతో పంచుకోవాలనుకుంటున్నాను.
మీకు తెలిసినట్లుగా, అన్ని రాస్ప్బెర్రీస్ చాలా శక్తివంతమైన వీడియో ప్రాసెసర్ను కలిగి ఉంటాయి, ఇది హార్డ్వేర్ వీడియో డీకోడింగ్కు అద్భుతమైనది. కాబట్టి మరెక్కడా డాష్బోర్డ్తో బ్రౌజర్ను ప్రారంభించాలనే ఆలోచన వచ్చింది మరియు రెండర్ చేసిన చిత్రంతో రెడీమేడ్ స్ట్రీమ్ను కోరిందకాయకు బదిలీ చేయండి.
అదనంగా, ఇది సరళీకృత నిర్వహణను కలిగి ఉండాలి, ఎందుకంటే ఈ సందర్భంలో అన్ని సెటప్లు ఒక వర్చువల్ మెషీన్లో నిర్వహించబడతాయి, ఇది నవీకరించడం మరియు బ్యాకప్ చేయడం సులభం అవుతుంది.
ఇక చెప్పేదేం లేదు.
సర్వర్ భాగం
మేము సిద్ధంగా ఉపయోగిస్తాము
మేము ఒక కొత్త వర్చువల్ మెషీన్ని అమలు చేస్తాము మరియు ముందుగా దాన్ని దానిపై ఇన్స్టాల్ చేస్తాము
apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodm
మేము Xorg కోసం కాన్ఫిగరేషన్ని కూడా ఉపయోగిస్తాము
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
ఇప్పుడు మేము Firefoxని ఇన్స్టాల్ చేస్తాము, మేము దానిని సిస్టమ్ సేవగా అమలు చేస్తాము, కాబట్టి దాని కోసం ఒక యూనిట్ ఫైల్ను ఒకేసారి వ్రాస్దాం:
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
ఫైర్ఫాక్స్ని పూర్తి స్క్రీన్ మోడ్లో వెంటనే లాంచ్ చేయడానికి మాకు Xdotool అవసరం.
పరామితిని ఉపయోగించడం -url
మీరు ఏదైనా పేజీని పేర్కొనవచ్చు, తద్వారా బ్రౌజర్ ప్రారంభమైనప్పుడు అది స్వయంచాలకంగా తెరవబడుతుంది.
ఈ దశలో, మా కియోస్క్ సిద్ధంగా ఉంది, కానీ ఇప్పుడు మేము ఇతర మానిటర్లు మరియు పరికరాలకు నెట్వర్క్ ద్వారా చిత్రాన్ని ఎగుమతి చేయాలి. ఇందుకోసం అవకాశాలను సద్వినియోగం చేసుకుంటాం
దీన్ని చేయడానికి మనకు రెండు విషయాలు అవసరం:
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
మా చిత్రానికి వేగవంతమైన నవీకరణ అవసరం లేదు కాబట్టి, నేను రిఫ్రెష్ రేట్ని పేర్కొన్నాను: సెకనుకు 1 ఫ్రేమ్ (పారామీటర్ -r 1
) మరియు కుదింపు నాణ్యత: 5 (పరామితి -q:v 5
)
ఇప్పుడు వెళ్ళడానికి ప్రయత్నిద్దాం
క్లయింట్ వైపు
ఇక్కడ ప్రతిదీ మరింత సులభం, నేను ఇప్పటికే చెప్పినట్లుగా, మేము రాస్ప్బెర్రీ పై మోడల్ B+ని ఉపయోగిస్తాము.
అన్నింటిలో మొదటిది, దానిపై ఇన్స్టాల్ చేద్దాం
మేము మా వీడియో చిప్ కోసం మరింత మెమరీని కూడా కేటాయించాలి, దీని కోసం మేము ఎడిట్ చేస్తాము /boot/config.txt
gpu_mem=128
మన కొత్త సిస్టమ్ను బూట్ చేద్దాం మరియు ప్యాక్మ్యాన్ కీరింగ్ను ప్రారంభించాలని గుర్తుంచుకోండి, ఇన్స్టాల్ చేయండి
pacman -Sy omxplayer
గమనించదగ్గ విషయం ఏమిటంటే, OMXPlayer X లు లేకుండా పని చేయగలదు, కాబట్టి మనకు కావలసిందల్లా దాని కోసం ఒక యూనిట్ ఫైల్ను వ్రాసి అమలు చేయడం:
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
పారామీటర్గా -b http://your-vm:8080/
మేము మా సర్వర్ నుండి URLని పాస్ చేస్తున్నాము.
అంతే, మా సర్వర్ నుండి ఒక చిత్రం వెంటనే కనెక్ట్ చేయబడిన స్క్రీన్పై కనిపించాలి. ఏవైనా సమస్యలు తలెత్తితే, స్ట్రీమ్ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది మరియు క్లయింట్లు దానికి మళ్లీ కనెక్ట్ అవుతారు.
బోనస్గా, మీరు కార్యాలయంలోని అన్ని కంప్యూటర్లలో ఫలిత చిత్రాన్ని స్క్రీన్సేవర్గా ఇన్స్టాల్ చేయవచ్చు. దీని కోసం మీరు అవసరం
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
ఇప్పుడు మీ సహోద్యోగులు చాలా సంతోషంగా ఉంటారు :)
మూలం: www.habr.com