рдорд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рд▓рдпрдорд╛ рдзреЗрд░реИ рд╕реНрдХреНрд░рд┐рдирд╣рд░реВрдорд╛ рдирд┐рдЧрд░рд╛рдиреАрдХреЛ рд╕рд╛рде рдбреНрдпрд╛рд╕рдмреЛрд░реНрдб рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреБрд░рд╛рдиреЛ Raspberry Pi рдореЛрдбреЗрд▓ B + рд░ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд╛рде рд╣рд╛рдЗрдкрд░рд╡рд╛рдЗрдЬрд░ рдЫрдиреНред
рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ Raspberry Pi Model 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