Hewcedariya min hebû ku ez tabloyek bi çavdêrîkirinê li ser gelek ekranên nivîsgehê nîşan bidim. Gelek Raspberry Pi Model B + û hîpervisorek bi çavkaniyek hema hema bêsînor hene.
Xuya ye ku Raspberry Pi Model B+ têra xwe ne rasthatî ye ku gerok bi domdarî bixebite û tê de gelek grafîk çêdike, ji ber vê yekê diqewime ku rûpel hinekî xelet e û pir caran têk diçe.
Çareseriyek pir hêsan û elegant hebû, ku ez dixwazim bi we re parve bikim.
Wekî ku hûn dizanin, hemî Raspberries xwedan pêvajoyek vîdyoyê ya pir bi hêz in, ku ji bo deşîfrekirina vîdyoya hardware pir girîng e. Ji ber vê yekê fikir derket ku meriv gerokek bi dashboardek li cîhek din bide destpêkirin, û stûnek amade bi wêneyek çêkirî veguhezîne raspberry.
Zêdetir, ev pêdivî ye ku rêveberiya hêsan hebe, ji ber ku di vê rewşê de dê hemî mîheng li ser yek makîneyek virtual, ku nûvekirin û paşvekişandina hêsantir e, were kirin.
Ne zû got.
Beşa serverê
Em amade bikar tînin
Em makîneyek nû ya virtual saz dikin û berî her tiştî wê li ser saz dikin
apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodm
Em ê ji bo Xorg jî mîhengê bikar bînin, ji kerema xwe
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
Naha em ê Firefox-ê saz bikin, em ê wê wekî karûbarek pergalê bimeşînin, ji ber vê yekê em ê ji bo wê pelek yekîneyek binivîsin:
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
Ji bo ku firefox tavilê di moda ekrana tevahî de bimeşîne em hewceyê Xdotool in.
Bikaranîna pîvanê -url
hûn dikarin her rûpelê diyar bikin da ku gava gerok dest pê dike ew bixweber vebe.
Di vê qonaxê de, kioska me amade ye, lê naha pêdivî ye ku em wêneyê li ser torê ji çavdêr û amûrên din re derxînin. Ji bo vê jî em ê îmkanan bikar bînin
Ji bo vê em du tiştan hewce ne:
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
Ji ber ku wêneyê me nûvekirinek bilez hewce nake, min rêjeya nûvekirinê diyar kir: 1 çarçove per saniyeyê (parametre -r 1
) û kalîteya kompresyonê: 5 (parametre -q:v 5
)
Niha em hewl bidin ku biçin
Aliyê xerîdar
Li vir hîn jî hêsantir e, wekî ku min got, em ê Raspberry Pi Model B + bikar bînin.
Berî her tiştî, em wê saz bikin
Di heman demê de pêdivî ye ku em ji bo çîpa vîdyoya xwe bêtir bîranîn veqetînin, ji bo vê yekê em ê biguherînin /boot/config.txt
gpu_mem=128
Werin em pergala xweya nû boot bikin û ji bîr nekin ku mifteya pacman bidin destpêkirin, saz bikin
pacman -Sy omxplayer
Balkêş e, OMXPlayer dikare bêyî X bixebite, ji ber vê yekê ya ku em hewce ne ev e ku em pelek yekîneyek ji bo wê binivîsin û bimeşînin:
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
Wek parametre -b http://your-vm:8080/
em url ji servera xwe derbas dikin.
Ew hemî ye, wêneyek ji servera me divê tavilê li ser ekrana girêdayî xuya bibe. Di rewşek pirsgirêkek de, weşan dê bixweber ji nû ve were destpêkirin û xerîdar dê ji nû ve bi wê ve werin girêdan.
Wekî bonus, hûn dikarin wêneya encamkirî wekî dîmenderek li ser hemî komputerên li nivîsgehê saz bikin. Ji bo vê hûn ê hewce bibin
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
Niha hevkarên we dê pir kêfxweş bibin 🙂
Source: www.habr.com