ಕಛೇರಿಯಲ್ಲಿನ ಹಲವಾರು ಪರದೆಗಳಲ್ಲಿ ಮಾನಿಟರಿಂಗ್ ಇರುವ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸುವ ಅಗತ್ಯತೆ ನನಗಿತ್ತು. ಹಲವಾರು ಹಳೆಯ ರಾಸ್ಪ್ಬೆರಿ ಪೈ ಮಾದರಿ 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
ಈಗ ನಾವು ಫೈರ್ಫಾಕ್ಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ, ನಾವು ಅದನ್ನು ಸಿಸ್ಟಮ್ ಸೇವೆಯಾಗಿ ರನ್ ಮಾಡುತ್ತೇವೆ, ಆದ್ದರಿಂದ ಒಂದು ವಿಷಯಕ್ಕಾಗಿ ನಾವು ಅದಕ್ಕೆ ಯುನಿಟ್ ಫೈಲ್ ಅನ್ನು ಬರೆಯುತ್ತೇವೆ:
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