рдорд▓рд╛ рдСрдлрд┐рд╕рдордзреАрд▓ рдЕрдиреЗрдХ рд╕реНрдХреНрд░реАрдирд╡рд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧрд╕рд╣ рдбреЕрд╢рдмреЛрд░реНрдб рджрд╛рдЦрд╡рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рд╣реЛрддреА. рдЕрдиреЗрдХ рдЬреБрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдореЙрдбреЗрд▓ рдмреА + рдЖрдгрд┐ рдЬрд╡рд│рдЬрд╡рд│ рдЕрдорд░реНрдпрд╛рджрд┐рдд рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╣ рд╣рд╛рдпрдкрд░рд╡рд╛рдЗрдЬрд░ рдЖрд╣реЗрдд.
рд╡рд░рд╡рд░ рдкрд╛рд╣рддрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдореЙрдбреЗрд▓ 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