ΠΠΎΠ·Π½ΠΈΠΊΠ»Π° Ρ ΠΌΠ΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π°ΡΠ±ΠΎΡΠ΄ Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠ°Π½ΠΎΠ² Π² ΠΎΡΠΈΡΠ΅. Π ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅Π½ΡΠΊΠΈΡ Raspberry Pi Model B+ ΠΈ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ Raspberry Pi Model B+ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΡΡΡΡ ΡΡΠΎΠ±Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠΈΠΊΠΈ Π² Π½Π΅ΠΌ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π³Π»ΡΡΠΈΡ ΠΈ ΡΠ°ΡΡΠΎ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ.
ΠΠ°ΡΠ»ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΠΈ Ρ ΠΎΡΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ Raspberry ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ. Π’Π°ΠΊ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΈΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄ΠΎΠΌ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΡ, Π° Π½Π° ΠΌΠ°Π»ΠΈΠ½ΠΊΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Ρ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΎΠΉ.
ΠΠ»ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈ Π±ΡΠΊΠ°ΠΏΠΈΡΡ.
Π‘ΠΊΠ°Π·Π°Π½ΠΎ β ΡΠ΄Π΅Π»Π°Π½ΠΎ.
Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ
ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ
Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΡ ΠΈ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π° Π½Π΅ΠΉ
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, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΡ Π΅Π³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΊΠ°ΠΊ system ΡΠ΅ΡΠ²ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ Π·Π° ΠΎΠ΄Π½ΠΎ ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ unit-ΡΠ°ΠΉΠ» Π΄Π»Ρ Π½Π΅Π³ΠΎ:
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 Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π½Π°ΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ-Π±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ firefox ΡΡΠ°Π·Ρ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -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 keyring, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ
pacman -Sy omxplayer
Π§ΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, OMXPlayer ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· ΠΈΠΊΡΠΎΠ², ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΡΠ΅ ΡΡΠΎ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ β ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ unit-ΡΠ°ΠΉΠ» Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ:
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
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ π
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com