سيكون Linux هو النظام الأساسي للبرمجيات ، ومن أجل البساطة ، من الأفضل استخدام شيء شائع ، مع وجود الكثير من المعلومات على الإنترنت ، إذا حدث خطأ ما. يمكن أن يكون الحديد لمحطة راديو الإنترنت أي شيء ، خادم كامل مع مشاريعك ، بعض أجهزة الكمبيوتر المحمولة القديمة ، أو نتبووك ، نريد رخيصة ، ولا نحتاج إلى أداء خاص من الحديد.
إذا لم يكن لديك أي شيء في متناول اليد ، أو نحتاج إلى خادم صامت تمامًا ، فلماذا لا تحاول استخدام جهاز كمبيوتر صغير؟
شيء مثل Raspberry Pi 3؟
لا ، نريد أرخص ، لذا نحتاج إلى شيء مثل Orange Pi. لقد وجدت طراز Orange Pi Pc Plus مع ذاكرة وصول عشوائي DDR3 1 جيجابايت وفلاش EMMC سعة 8 جيجابايت.

حدث: بالأمس ، أخذ الجميع المقالة بطريقة أو بأخرى على محمل الجد ، ولكن في الواقع تم إجراء التجربة من أجل المروحة ، لمعرفة ما إذا كانت تعمل أم لا. بطبيعة الحال ، لا يوجد حديث عن أي استخدام "صناعي" ، فهو مثل محاولة بث الاستاد مع مركز موسيقى عادي.
ماذا نحتاج ايضا؟
أريد أن أحاول تكوين كل شيء بطريقة بسيطة ، لذلك ما زلت بحاجة إلى كبل مزدوج مجدول إلى جهاز التوجيه وبطاقة ذاكرة Micro SD ، حيث لا يمكنني تثبيت نظام التشغيل مباشرة على جهاز الكمبيوتر الصغير. لقد وجدت بطاقة ذاكرة بسعة 8 غيغابايت ، وهذا المبلغ يكفي تمامًا.
لذلك ، أولاً وقبل كل شيء ، تحتاج إلى كتابة صورة نظام التشغيل على بطاقة الذاكرة.
بالنسبة للخوادم ، أفضل استخدام دبيان الذي تم اختباره بمرور الوقت (نعم ، الجيل الأصغر يفضل على الأرجح CentOS ، لكن ذوي اللحى الرمادية سيوافقونني على أن دبيان لا يزال جيدًا جدًا).
بشكل عام ، هناك الكثير من الصور الجاهزة لـ Orange Pi على
www.orangepi.org/downloadresources ، ولكن ما زلت أذهب إلى
www.armbian.com/download وقم
بتنزيل ملف التورنت من armbian من dl.armbian.com/orangepipcplus (في المنجم) حالة Debian_stretch_next.7z).
لدي Orange Pi Pc Plus ، يمكنك الحصول على أي كمبيوتر صغير آخر ، لذا ابحث عن الصورة المناسبة.
بعد التنزيل ، قم بفك ضغط الأرشيف وشاهد الصورة بتنسيق img. أي شخص يريد ما يملأ الصورة به ، أنا شخصياً أفضل Etcher (https://etcher.io). أدخلنا بطاقة ذاكرة ، اخترناها إذا كان لديك العديد من الوسائط المتصلة ، انقر فوق زر الخياطة ، وأدخل كلمة المرور إذا كان لديك أيضًا Linux على سطح المكتب أو الكمبيوتر المحمول.

البطاقة مع الصورة جاهزة ، يمكنك البدء في توصيل كل شيء.
ما الذي نحتاجه لبدء وبدء إعداد خادمنا؟
الكمبيوتر الصغير نفسه ، والإنترنت عبر سلك إيثرنت وإمدادات الطاقة.
هذا كل ما في الأمر.
لا ، بالطبع يمكنك الخلط ، وتوصيل الشاشة ولوحة المفاتيح وتهيئة كل شيء مباشرة ، لكني أحب لوحة مفاتيح الكمبيوتر المحمول الخاص بي أكثر ، لذلك سأقوم بتكوين جهاز الكمبيوتر المصغر الخاص بي عن بعد عبر SSH.
لذا ، دعونا نبدأ ، نعلق في كابل إيثرنت ، بطاقة Micro SD مع صورة Armbian.
يبقى فقط لتوفير الطاقة للكمبيوتر المصغر.
ولكن مع قوة Orange Pi ، كل شيء حزين للغاية. ماذا يوجد على جهاز كمبيوتر صغير عادي؟ هذا صحيح ، Micro-USB ، ولكن كيف يمكنني تشغيل Orange Pi؟ 5V فقط عبر موصل دبوس ، والذي يتم شراؤه بشكل منفصل.
يكلف محول الطاقة بموصل مناسب أكثر من مجرد كبل مع USB قياسي في النهاية ، بحيث يمكنك أخذه.
إذا لم يكن هناك مصدر طاقة مجاني مع USB (ولا نحتاج على أي حال ، ولكن لمدة 2 أمبير) ، فإننا نفتش في صندوقنا بالأسلاك والمحولات والألواح لأجهزة الكمبيوتر (لديك مثل هذا المربع ، أليس كذلك؟) والعثور على محول مناسب من بعض القديم ، المكسور منذ فترة طويلة بواسطة جهاز لوحي تابع ، لحام الكبل والطاقة لخادمنا جاهزة.
حسنًا ، أو فقط خذ الشاحن من مشغل mp3 iRiver disk القديم (إنه 4.7 فولت و 1.2 أمبير فقط ولكنه يعمل أيضًا).
نحن نقدم الطعام ونحن على استعداد للانتقال ، في الواقع ، إلى تلك التي تم تصور كل شيء من أجلها ، لإنشاء محطة إذاعية عبر الإنترنت.
إذا كنت ، مثلي ، تنوي الحصول على الحد الأدنى من الأجهزة الطرفية ، فإننا بحاجة إلى معرفة عنوان IP الذي تلقاه جهاز الكمبيوتر المصغر الخاص بنا. أسهل طريقة لمعرفة ذلك هي الذهاب إلى جهاز التوجيه الخاص بك ومعرفة عنوان IP الذي أعطاه جهاز التوجيه لخادمنا (يمكن لجهاز التوجيه الخاص بك أن يفعل DHCP ، أليس كذلك؟).
الآن يمكنك تسجيل الدخول عبر SSH إلى خادمنا. من يستخدم عميل SSH هو الشخص الذي يستخدمه (ليس لديك Windows مطلقًا ، ولكن لا أعرف ما يفعله عملاء SSH).
في حالتي ، أنا فقط أضرب في وحدة التحكم ssh root@192.168.0.88 ، أوافق على إضافة مفتاح ECDSA ، تم تعيين كلمة المرور الافتراضية للجذر على "1234" ، بعد تسجيل الدخول ، نجد أنفسنا في وحدة تحكم الكمبيوتر المصغر ، والتي تقترح على الفور تغيير كلمة مرور الجذر.

بعد ذلك ، يُقترح إنشاء حساب مستخدم غير مميز ، نقوم بإنشائه.
مقارنة بالإصدارات السابقة من نظام التشغيل ، يتم تبسيط الإصدار الحالي إلى حد ما من حيث الإعدادات ويتم تكوين الكثير من الأشياء تلقائيًا تلقائيًا.
Armbian لديها أداة تكوين مريحة للغاية:
armbian-config
بنسخ الأمر إلى وحدة التحكم ومعرفة ما يمكن أن يكون مفيدًا.

لا نحتاج إلى إعدادات النظام حتى الآن ، ولكن قد تكون هناك حاجة إليها لاحقًا ، على سبيل المثال ، لنقل النظام الذي تم تكوينه من Micro SD إلى ذاكرة فلاش EMMC المدمجة بسعة 8 جيجابايت لجهاز كمبيوتر صغير.
سيكون قسم الشبكة مفيدًا لنا ، ولكن سيكون من الجيد أن يكون لديك عنوان IP ثابت للخادم. يمكن توصيل محطة راديو الإنترنت الخاصة بنا بالشبكة حتى عبر Wi-Fi. يقوم الجميع بتعيين مستوى الانحراف لنفسه ، ولكن إذا كنت تقوم ببناء راديو إنترنت لنفسك فقط ولا توجد خطط لأكثر من 10 مستمعين في نفس الوقت ، فلماذا لا تلتقط خادمنا عبر Wi-Fi؟ في الحالات القصوى ، يمكنك توصيل كبل Ethernet في أي وقت.
لذا ، قررنا نوع الاتصال ، والآن نحتاج إلى تكوين عنوان IP ثابت ، لذلك ننتقل إلى إعدادات IP ونختار واجهة الشبكة المطلوبة ، وبعد ذلك نقول أننا نريد عنوانًا ثابتًا ونبدأه ونحفظ الإعدادات. ليست هناك حاجة لتغيير القناع والبوابة ، حيث يتم تلقيهما من جهاز التوجيه الخاص بك عبر DHCP.

بعد إدخال عنوان IP جديد والضغط على Enter ، سيتم تجميد جلسة SSH فورًا ، حيث سيكون للجهاز عنوان IP جديد على الفور. لذلك ، نقوم ببساطة بإغلاق النافذة مع الجهاز الطرفي وننتقل إلى جهاز الكمبيوتر المصغر عبر SSH باستخدام عنوان IP الجديد.
بالمناسبة ، نظرًا لأن جميع الوظائف التي لدينا ستكون ذات طبيعة إدارية ، حتى لا نكتب باستمرار قبل كل أمر sudo ، أقوم فقط بتسجيل الدخول إلى الكمبيوتر المصغر كجذر.
من خلال تشغيل
armbian-config
مرة أخرى ، هل يمكننا رؤية ما يمكن تكوينه أيضًا؟ في القسم الشخصي ، يمكننا تكوين المنطقة الزمنية واسم المنطقة واسم المضيف. أضفت لغة ru_RU.UTF-8 UTF-8 ، والتي ستكون مفيدة.
لتطبيق الإعدادات ، تحتاج إلى الخروج من أداة التهيئة المساعدة ، وتسجيل الخروج وتسجيل الدخول مرة أخرى ، أو إعادة تشغيل الخادم باستخدام الأمر reboot.
لقد استخدمت الأمر reboot للتأكد من حفظ الإعدادات وبدء الخادم معها بنجاح.
تم إجراء التكوين الأساسي للخادم ولماذا لا يتم تثبيت نظام التشغيل مع نظام تشغيل MicroSD على ذاكرة EMMC Flash الداخلية؟ بالطبع ، إذا كان جهاز الكمبيوتر الصغير الخاص بك يحتوي على هذه الذاكرة على متن الطائرة.
للقيام بذلك ، انتقل إلى
armbian-config
- System - Install ، وحدد محرك الأقراص المتاح ، واضغط على Enter ، واحصل على تحيات من الماضي ، ووافق وحدد نوع نظام الملفات ext4.

الآن يمكننا الجلوس والانتظار حتى يتم نقل نظام التشغيل إلى التخزين الداخلي للكمبيوتر المصغر.

بعد اكتمال النسخ ، اختر إيقاف الطاقة. ننتظر بضع ثوانٍ حتى ينطفئ مؤشر LED الموجود على الكمبيوتر المصغر ، ويسحب الطاقة ، ويخرج بطاقة microSD ، ويوصل الطاقة مرة أخرى ، ثم يشغل الكمبيوتر.
نعم ، إذا لم يكن لديك ذاكرة داخلية ولم تنقل نظام التشغيل إليها ، فإن إخراج بطاقة MicroSD على الأرجح ليس فكرة جيدة.
بعد تسجيل الدخول إلى كمبيوترنا الصغير عبر SSH والتأكد من عمل كل شيء ، يمكنك البدء في ضبط محطة الراديو نفسها.
بادئ ذي بدء ، نقوم بتحديث معلومات الحزمة عن طريق دفع
apt update
إلى وحدة تحكم الخادم.
نعم ، أنا أحب الراحة ، لذلك أقوم بتثبيت mc باستخدام الأمر
apt install mc
.
أحب أن أفعل كل شيء من تحت mc ، وإذا كنت بحاجة إلى رؤية وحدة التحكم ، فأنا فقط اضغط على ctrl + o.
أولاً ، قم بتثبيت مشغل الموسيقى الشيطاني نفسه:
apt install mpd
.
سيتم تثبيت مجموعة من التبعيات معها.
دعنا ننتقل إلى الإعداد. ملف /etc/mpd.conf مسؤول عن تكوين البرنامج الخفي ، افتحه باستخدام
nano /etc/mpd.conf
.
اسم المستخدم الخاص بي بدون امتيازات hzs ، ويبدو ملف التكوين الخاص بي على النحو التالي:
music_directory "/home/hzs/music" playlist_directory "/home/hzs/.mpd/playlists" db_file "/home/hzs/.mpd/tag_cache" log_file "/home/hzs/.mpd.log" pid_file "/home/hzs/.mpd/pid" state_file "/home/hzs/.mpd/state" sticker_file "/var/lib/mpd/sticker.sql" user "hzs" bind_to_address "localhost" restore_paused "yes" metadata_to_use "artist,title" auto_update "yes" audio_output { type "httpd" name "My New Internet Radio Station!!!" encoder "lame"
كل شيء واضح هنا وبدون تعليقات خاصة.
للعمل ، تحتاج إلى إنشاء بنية دليل من أعلى الإعدادات. يرجى ملاحظة أن مالك هذه الأدلة يجب أن يكون مستخدمًا غير مميز ، والذي سيعمل كل شيء منه ، في حالتي hzs.
من الجذر ، قم بتنفيذ الأوامر التالية:
chown -cR hzs:hzs /home/hzs/music
chown -cR hzs:hzs /home/hzs/.mpd
حان الوقت لتحميل الموسيقى ، لدينا SSH على الخادم ، حتى نتمكن من ربط عميل FTP المفضل بالخادم.
نحن نعرف عنوان IP ، المنفذ 22 ، واسم المستخدم وكلمة المرور هي تلك التي حددتها عند إنشاء مستخدم غير مميز ، ونوع اتصال SSH. اسكب بعض الموسيقى للاختبار في دليل الموسيقى المحدد في التكوين.

الآن بدأ المشغل بالتكوين الخاطئ ، لذا نوقف البرنامج الخفي ونبدأه مرة أخرى:
service mpd stop
service mpd start
للحصول على أبسط تحكم في البرنامج الخفي ، سنقوم
apt install mpc
أداة وحدة تحكم
apt install mpc
باستخدام الأمر
apt install mpc
.
بعد التثبيت ، سنقوم بتكوين المشغل قليلاً:
mpc random on
mpc repeat on
الآن تحتاج إلى إضافة مسارات وقائمة تشغيل ، فهي في وحدة التحكم عبارة عن وسيلة بسيطة إلى حد ما ، ولكن لا يمكن فعل أي شيء.
ننظر إلى الملفات المتاحة لنا ، والتي يمكننا إضافتها إلى قائمة التشغيل:
mpc ls
لإضافة ملف إلى قائمة التشغيل ، يجب أن نحدد الاسم الكامل للملف المراد إضافته في الأمر
mpc add
، ولا يعمل التحديد بواسطة القناع:
mpc add "01 Lost in Your Eyes.mp3"
ننظر إلى قائمة التشغيل الناتجة:
mpc playlist
حان الوقت لإطلاق محطتنا الإذاعية:
mpc play

دعنا نحاول الاستماع ، لهذا ، في أي مشغل صوتي ، افتح الدفق الصوتي لمحطتنا الإذاعية. للقيام بذلك ، أدخل عنوان الدفق
http://ip:port
، لدي
http://192.168.0.90:8000
.
لعب الجريئة بشكل متقطع ، كانت هناك مشكلة في التخزين المؤقت ، لكن SMPlayer و VLC لم يشعروا بأي مشاكل.



من حيث المبدأ ، في هذه المرحلة ، تعمل محطة راديو الإنترنت لدينا بالفعل ، تحتاج إلى إضافة الموسيقى إلى قائمة التشغيل وإعادة توجيه المنافذ على جهاز التوجيه بحيث تصبح محطة راديو الإنترنت لدينا محطة راديو على الإنترنت ، وليست راديوًا في الشبكة المحلية.
لدي العديد من المجالات ، لذلك فإن أول شيء أفعله في إعدادات DNS هو إنشاء سجل "A" باستخدام testradio وعنوان IP الخارجي الثابت لجهاز التوجيه الخاص بي في المنزل. ليس عليك القيام بذلك.
بعد ذلك ، على الموجه ، أقوم بتكوين إعادة توجيه المنفذ.
نظرًا لأن لدي بالفعل محطة راديو خاصة بي على خادم كبير ، فإنني أحدد منفذ المصدر الخارجي 9000 والمنفذ المحلي الداخلي 8000 ، لذلك من الخارج سيتم بث الراديو عبر
http://_ip:9000
.

هذا كل شيء ، لدينا الآن محطة إذاعية عبر الإنترنت "حقيقية".
إذا كنت لا تريد التوقف عند هذا الحد ، فانتقل إلى أبعد من ذلك.
نحن لا نبث صوت DJ ، ولكن إذا لزم الأمر يمكن تنفيذه ، ولكن ما هو مطلوب حقًا هو واجهة إدارة قائمة تشغيل ملائمة.
هناك الكثير من وحدات التحكم في الإدارة ، يمكن عرض بعضها
هنا ، ولكني
سأستخدم عميل Pitchfork MPD .
هذا هو كمامة ويب كاملة ، ونعم ، سوف نطلق النار على العصافير ونرفع خادم http كامل على كمبيوتر صغير مع محطة الراديو الخاصة بنا:
apt install apache2
سنحتاج أيضًا إلى PHP:
apt-get install php
لا تزال بحاجة
apt install php7.0-xml
و
apt install php-pear
نقوم بإنشاء الدليل / home / hzs / wwwroot / pf في المجلد الرئيسي ونقوم بفك محتوياته في Pitchfork MPD Client الذي تم تحميله مسبقًا عبر SSH.

في ملف تكوين خادم الويب apache2 /etc/apache2/sites-available/000-default.conf
nano /etc/apache2/sites-available/000-default.conf
نحن نجز كل شيء ونكتب (لا تنس تغيير "hzs" إلى اسم المستخدم الخاص بك):
<VirtualHost *:80> ServerName localhost ServerAdmin webmaster@localhost DocumentRoot /home/hzs/wwwroot <Directory /home/hzs/wwwroot/> Options All AllowOverride All DirectoryIndex index.php index.html index.htm Order Allow,Deny Allow from All Require all granted </Directory> </VirtualHost>
ثم نقوم بإعادة تشغيل خادم http
service apache2 restart
بالانتقال إلى عنوان خادم IP / pf الخاص بك (في حالتي:
http://192.168.0.90/pf
)
سنرى لوحة التحكم:

كل شيء بسيط للغاية وبديهي.
بعد ذلك ، انقر فوق رمز المجلد الموجود على اليمين وعلامة التبويب نظام الملفات.
لتحديث قائمة الملفات ، انقر فوق الزر تحديث DB ، ثم حدد الملفات المتبقية التي لا تزال غير موجودة لدينا في قائمة التشغيل وانقر فوق الزر إضافة أقل قليلاً.
نقوم بتحديث الصفحة ونرى أن جميع الملفات التي أضفناها إلى قائمة التشغيل:

إذا كنت بحاجة إلى إخفاء عنصر تحكم المشغل بكلمة مرور ، فيمكنك تحرير ملف التكوين:
nano /home/hzs/wwwroot/pf/config/config.xml
هناك هيكل الإعدادات مفهومة تماما.
لذا ، لدينا خادم خادم راديو إنترنت متكامل بقياس 10 * 7 * 3 سم. بالطبع ، لن يستخدم الخادم منخفض الطاقة المستخدم المئات من المستمعين ، ولكن على الأقل لن يتركك بدون الموسيقى المفضلة لديك أينما كنت ، إذا كان هناك إنترنت قريب.
من حيث المبدأ ، لا يمكنك الاستمرار في القراءة ، ولكن بالنسبة لأولئك الذين يصرون بشكل خاص ، نستمر في.
لدينا خادم ويب كامل ، لماذا ...
حسنًا ، لقد فهمت بالفعل.
إنشاء دليل testradio في جذر خادم الويب لدينا ، وإنشاء ملف
"index.php"
فيه:
<!DOCTYPE html> <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>My Test Radio</title> <script src="jquery-3.3.1.min.js"></script> </head> <body> <h1>My Test Radio</h1> <div id="song"> now playing:<br> <div id="title">now playing</div> <br> <div> <span id="play" type="button">Play</span> <span id="pause" type="button">Pause</span> </div> <br> <div> vol:<br> <input id="volume" type="range" min="0" max="10" value="5" /> </div> <span id="duration"></span> <br> <div>256 kbps</div> </div> <script language="JavaScript"> var audio = new Audio('http://testradio.nisel.ru:9000'); var play = document.getElementById('play'); play.addEventListener('click', function() { audio.play(); }, false); var pause = document.getElementById('pause'); pause.addEventListener('click', function() { audio.pause(); }, false); var volume = document.getElementById('volume'); volume.addEventListener('change', function(){ audio.volume = parseFloat(this.value / 10); }, false); audio.addEventListener("timeupdate", function() { var duration = document.getElementById('duration'); var s = parseInt(audio.currentTime % 60); var m = parseInt((audio.currentTime / 60) % 60); var h = parseInt((audio.currentTime / 3600) % 60); if (s < 10) s = '0' + s; if (m < 10) m = '0' + m; if (h < 10) h = '0' + h; duration.innerHTML = h + ':' + m + ':' + s; }, false); </script> <script language="JavaScript"> function show() { $.ajax({ url: "trackname.php", cache: false, success: function(html){ $("#title").html(html); } }); } $(document).ready(function(){ show(); setInterval('show()',5000); }); </script> </body> </html>
هذا هو أبسط مثال على إنشاء مشغل لموقع ما ، ويمكنه أيضًا عرض اسم التكوين الحالي ، الذي يتم تحديثه بأجاكس كل 5 ثوانٍ.
يمكن الانتهاء من المظهر حسب الذوق باستخدام المغلق.
يظهر الرمز أن دفق الصوت يتجه بالفعل إلى العنوان المحدد في DNS من نطاقي.
لا تنس أن تسقط ملف jquery في الدليل (في حالتي jquery-3.3.1.min.js). بشكل عام ، بالطبع ، فإن jquery هنا كثير جدًا ويمكن للمرء تقديم طلب ajax بدونه ، ولكن اتضح أنه كسول جدًا للتفكير وقد استخدمت قطعة من التعليمات البرمجية الجاهزة.
بعد ذلك ، قم بإنشاء ملف
"trackname.php"
:
<?php echo file_get_contents('http://192.168.0.90/mpc');?>
أيضًا في جذر خادم الويب ، نقوم بإنشاء دليل "mpc" وملف
"index.php"
فيه:
<?php echo exec('mpc current');?>
لماذا قد يسأل البعض مثل هذه العكازات ، والحقيقة هي أنه في محطة الراديو العسكرية الخاصة بي ، يكون خادم اللاعب على نفس الخادم ، ووجه الويب للموقع على خادم ويب مختلف فعليًا.

نظرًا لأنك تحتاج إلى استجواب المسار الذي يتم تشغيله مباشرة على الخادم باستخدام المشغل ، يجب أن يكون دليل خادم الويب mpc عليه ، ويكون الملف
"trackname.php"
على خادم الويب الخاص بالموقع نفسه
"trackname.php"
الملف مع وصف المسار من خادم آخر إلى عنوان IP الخاص به.
يمكن أن يكون المشغل نفسه وموقع محطة الراديو بعيدًا جدًا عن بعضهما البعض ويتواصلان على عناوين IP الخارجية وعلى العناوين المسدودة بـ DNS. لكي يعمل كل شيء ، ما عليك سوى إعادة توجيه المنافذ بشكل صحيح.
يمكنك تعديل المشروع حسب رغبتك ، حسنًا ، لقد استمتعت بعد ظهر يوم السبت.
جميع التجارب الناجحة!
UPD2: توصلت تجربة استمرت أسبوعًا إلى نهايتها المنطقية وأوقفت خادمي المصغر بمحطة راديو.