Igorri pantaila sarearen bidez hainbat gailutara

Igorri pantaila sarearen bidez hainbat gailutara

Bulegoko hainbat pantailatan monitorizazioa duen panel bat bistaratu behar nuen. Hainbat Raspberry Pi B+ eredu zahar eta baliabide ia mugagabeko hipervisor bat dauzkagu.

Antza denez, Raspberry Pi B+ ereduak ez du ausazko nahikoa nabigatzailea etengabe martxan mantentzeko eta bertan grafiko kopuru handia errendatzeko, horregatik gertatzen da orria partzialki akatsa dela eta askotan huts egiten duela.

Nahiko irtenbide sinple eta dotore bat aurkitu dut, zurekin partekatu nahi dudana.

Dakizuenez, Raspberries guztiek bideo-prozesadore nahiko indartsua dute, hardware bideoa deskodetzeko bikaina dena. Beraz, beste nonbait aginte-panel batekin arakatzaile bat abiarazteko eta errendatutako irudi batekin prest egindako korronte bat mugurdira transferitzea sortu zen.

Gainera, horrek kudeaketa sinplifikatu beharko luke, kasu honetan konfigurazio guztia makina birtual batean egingo bailitzateke, eta hori errazagoa izango litzateke eguneratzea eta babeskopia egitea.

Esan baino lehenago egin.

Zerbitzariaren zatia

Prest erabiliko dugu Ubunturako hodeiaren irudia. Instalatu beharrik gabe, makina birtual bat azkar zabaltzeko behar duzun guztia dauka, eta Cloud-Init laguntza Sare bat berehala konfiguratzen, ssh gakoak gehitzen eta martxan jartzen laguntzen du.

Makina birtual berri bat zabaltzen dugu eta, lehenik eta behin, bertan instalatzen dugu xorg, keinua ΠΈ fluxu kutxa:

apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodm

Xorg-erako konfigurazioa ere erabiliko dugu, mesedez emana gu Diego Ongarok, ebazpen berri bat bakarrik gehituz 1920 Γ— 1080, gure monitore guztiek erabiliko baitute:

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

Orain Firefox instalatuko dugu, sistema-zerbitzu gisa exekutatu egingo dugu, beraz, idatz diezaiogun unitate-fitxategi bat bakarrean:

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 behar dugu Firefox pantaila osoko moduan berehala abiarazteko.
Parametroa erabiliz -url Edozein orrialde zehaztu dezakezu arakatzailea abiarazten denean automatikoki ireki dadin.

Fase honetan, gure kioskoa prest dago, baina orain sarearen bidez irudia esportatu behar dugu beste monitore eta gailu batzuetara. Horretarako aukerak aprobetxatuko ditugu JPEG mugimendua, web kamera gehienetatik bideoak erreproduzitzeko maizago erabiltzen den formatua.

Horretarako bi gauza behar ditugu: FFmpeg moduluarekin x11hartu, X eta irudiak ateratzeko errekaBegi, nork banatuko die gure bezeroei:

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

Gure irudiak eguneratze azkarra behar ez duenez, freskatze-tasa zehaztu dut: 1 fotograma segundoko (parametroa -r 1) eta konpresioaren kalitatea: 5 (parametroa -q:v 5)

Orain saia gaitezen bertara joaten http://your-vm:8080/, erantzun moduan zure mahaigaineko pantaila-argazkia etengabe eguneratuta ikusiko duzu. Bikaina! - horixe behar zen.

Bezeroaren aldean

Hemen dena are sinpleagoa da, lehen esan dudan bezala, Raspberry Pi Model B+ erabiliko dugu.

Lehenik eta behin, instala gaitezen ArchLinux ARM, horretarako jarraitzen dugu argibideak webgune ofizialean.

Gure bideo txiparentzat ere memoria gehiago esleitu beharko dugu, horretarako editatuko dugu /boot/config.txt

gpu_mem=128

Abiarazi dezagun gure sistema berria eta, pacman giltza-giltza abiarazteaz gogoratuz, instalatu OMXPlayer:

pacman -Sy omxplayer

Aipagarria da OMXPlayer-ek X-rik gabe funtziona dezakeela, beraz, horretarako unitate-fitxategi bat idatzi eta exekutatu behar dugu:

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

Parametro gisa -b http://your-vm:8080/ URLa pasatzen ari gara gure zerbitzaritik.

Hori dena, gure zerbitzariaren argazki bat berehala agertu beharko litzateke konektatutako pantailan. Arazoren bat sortzen bada, korrontea automatikoki berrabiaraziko da eta bezeroak berriro konektatuko dira.

Hobari gisa, lortutako irudia pantaila-babesle gisa instala dezakezu bulegoko ordenagailu guztietan. Horretarako beharko duzu monobolumenaren ΠΈ XScreenSaver:

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

Orain zure lankideak oso pozik egongo dira :)

Iturria: www.habr.com

Gehitu iruzkin berria