Мен кеңседеги бир нече экрандарда мониторинги бар башкаруу тактасын көрсөтүүгө муктаж болдум. Бир нече эски Raspberry Pi Model B + жана ресурстардын дээрлик чексиз көлөмү бар гипервизор бар.
Кыязы, Raspberry Pi Model B+ браузерди тынымсыз иштетүү жана андагы көптөгөн графикаларды көрсөтүү үчүн кокустукка ээ эмес, андыктан барак жарым-жартылай ката болуп, көп учурда бузулуп калат.
Мен сиз менен бөлүшкүм келген абдан жөнөкөй жана жарашыктуу чечим бар эле.
Белгилүү болгондой, бардык Raspberries бир кыйла күчтүү видео процессорго ээ, ал аппараттык видеону чечмелөө үчүн эң сонун. Ошентип, башка жерде башкаруу панели бар браузерди ишке киргизүү жана рендерленген сүрөтү бар даяр агымды малинага өткөрүү идеясы келди.
Мындан тышкары, бул жөнөкөйлөштүрүлгөн башкаруу болушу керек, анткени бул учурда бардык конфигурация бир виртуалдык машинада аткарылат, аны жаңыртуу жана резервдик көчүрүү оңой.
Жок эртеби кылганга караганда айтып коюу.
Сервер бөлүгү
Биз даяр колдонобуз
Биз жаңы виртуалдык машинаны орнотуп, биринчи кезекте аны орнотобуз
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
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
)
Эми барууга аракет кылалы
Кардар тарап
Бул жерде дагы деле оңой, мен айткандай, биз Raspberry Pi Model 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
Эми кесиптештериңиз абдан сүйүнүшөт 🙂
Source: www.habr.com