مجھے دفتر میں کئی اسکرینوں پر مانیٹرنگ کے ساتھ ڈیش بورڈ ڈسپلے کرنے کی ضرورت تھی۔ بہت سے پرانے Raspberry Pi Model B+ اور ایک ہائپر وائزر ہیں جن کے پاس تقریباً لامحدود وسائل ہیں۔
بظاہر Raspberry Pi Model B+ میں اتنی بے ترتیبیت نہیں ہے کہ براؤزر کو مسلسل چلائے اور اس میں بہت سارے گرافکس پیش کر سکیں، جس کی وجہ سے ایسا ہوتا ہے کہ صفحہ جزوی طور پر چھوٹا ہوتا ہے اور اکثر کریش ہو جاتا ہے۔
کافی آسان اور خوبصورت حل تھا، جسے میں آپ کے ساتھ شیئر کرنا چاہتا ہوں۔
جیسا کہ آپ جانتے ہیں، تمام Raspberries میں کافی طاقتور ویڈیو پروسیسر ہوتا ہے، جو کہ ہارڈویئر ویڈیو ڈی کوڈنگ کے لیے بہترین ہے۔ لہذا خیال آیا کہ ڈیش بورڈ کے ساتھ ایک براؤزر کہیں اور لانچ کیا جائے، اور رینڈر شدہ تصویر کے ساتھ ایک ریڈی میڈ اسٹریم کو رسبری میں منتقل کیا جائے۔
اس کے علاوہ، اس کا انتظام آسان ہونا چاہیے، کیونکہ اس معاملے میں تمام کنفیگریشن ایک ورچوئل مشین پر کی جائے گی، جس کو اپ ڈیٹ کرنا اور بیک اپ کرنا آسان ہے۔
جلد از جلد نہیں کہا.
سرور کا حصہ۔
ہم تیار استعمال کرتے ہیں
ہم ایک نئی ورچوئل مشین لگاتے ہیں اور سب سے پہلے اسے اس پر انسٹال کرتے ہیں۔
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
)
اب آئیے جانے کی کوشش کرتے ہیں۔
کلائنٹ حصہ۔
یہاں یہ اب بھی آسان ہے، جیسا کہ میں نے کہا، ہم Raspberry Pi Model 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/
ہم اپنے سرور سے یو آر ایل پاس کر رہے ہیں۔
بس، ہمارے سرور سے ایک تصویر فوری طور پر منسلک اسکرین پر ظاہر ہونا چاہئے. کسی بھی مسائل کی صورت میں، سلسلہ خود بخود دوبارہ شروع ہو جائے گا اور کلائنٹس اس سے دوبارہ جڑ جائیں گے۔
بونس کے طور پر، آپ آفس کے تمام کمپیوٹرز پر اسکرین سیور کے طور پر نتیجے میں آنے والی تصویر کو انسٹال کر سکتے ہیں۔ اس کے لیے آپ کو ضرورت ہوگی۔
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