
Маған кеңседегі бірнеше экрандарда мониторингі бар бақылау тақтасын көрсету қажет болды. Бірнеше ескі Raspberry Pi Model B + және ресурстардың шексіз саны бар гипервизор бар.
Шамасы, Raspberry Pi Model B+ браузерді үнемі жұмыс істеп тұруға және ондағы көптеген графиканы көрсетуге жеткілікті кездейсоқтыққа ие емес, соның салдарынан бет ішінара ақаулы және жиі бұзылады.
Мен сіздермен бөліскім келетін өте қарапайым және талғампаз шешім болды.
Өздеріңіз білетіндей, барлық таңқурайда жеткілікті қуатты бейне процессоры бар, ол аппараттық бейнені декодтау үшін тамаша. Сонымен, басқа жерде бақылау тақтасы бар шолғышты іске қосу және рендерленген суреті бар дайын ағынды таңқурайға жіберу идеясы келді.
Сонымен қатар, бұл басқаруды жеңілдетуі керек, өйткені бұл жағдайда барлық конфигурация жаңарту және сақтық көшірме жасау оңайырақ бір виртуалды машинада орындалады.
Айтылды істелді.
Сервер бөлігі
Дайын қолданамыз . Орнатуды қажет етпейтін, ол виртуалды машинаны жылдам орналастыру үшін қажет нәрсенің барлығын қамтиды және желіні бірден орнатуға, ssh пернелерін қосуға және оны тез іске қосуға көмектеседі.
Біз жаңа виртуалды машинаны орналастырамыз және ең алдымен оны оған орнатамыз , и :
apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodmБіз сондай-ақ Xorg үшін конфигурацияны қолданамыз бізге Диего Онгаро, тек жаңа рұқсатты қосу 1920 × 1080, өйткені біздің барлық мониторларымыз оны пайдаланады:
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 firefoxFirefox-ты толық экран режимінде бірден іске қосу үшін бізге Xdotool қажет.
Параметрді пайдалану -url шолғыш іске қосылғанда ол автоматты түрде ашылатындай кез келген бетті көрсетуге болады.
Бұл кезеңде біздің дүңгіршек дайын, бірақ енді суретті желі арқылы басқа мониторлар мен құрылғыларға экспорттау керек. Ол үшін біз мүмкіндіктерді пайдаланамыз , көптеген веб-камералардан бейне ағыны үшін жиі қолданылатын пішім.
Ол үшін бізге екі нәрсе керек: модулімен , X және суреттерінен суретке түсіру үшін , ол оны біздің клиенттерге таратады:
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)
Енді баруға тырысайық , жауап ретінде жұмыс үстелінің үнемі жаңартылып тұратын скриншотын көресіз. Тамаша! -не керек еді.
Клиент бөлігі
Мұнда бәрі оңай, мен айтқанымдай, біз Raspberry Pi B + моделін қолданамыз.
Ең алдымен, оны орнатамыз , бұл үшін біз ұстанамыз ресми сайтында.
Біз сондай-ақ бейне чипке көбірек жад бөлуіміз керек, ол үшін біз өңдейміз /boot/config.txt
gpu_mem=128Жаңа жүйемізді жүктеп алайық және pacman кілттерін баптандыруды, орнатуды ұмытпаңыз :
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
