حاوية Docker تقوم بتشغيل rbfeeder
الخاص بـ AirNav RadarBox. مصممة للعمل جنبا إلى جنب مع المتحمسين لحقوق السحب الخاصة/readsb-protobuf. يبني ويعمل على x86_64
و arm64
و arm32v7
.
يقوم rbfeeder
بسحب معلومات ModeS/BEAST من مضيف أو حاوية توفر بيانات ModeS/BEAST، ويرسل البيانات إلى RadarBox.
لمزيد من المعلومات حول ماهية rbfeeder
، راجع هنا: مشاركة البيانات.
latest
(الفرع main
، Dockerfile
)
latest_nohealthcheck
هو نفس الإصدار latest
أعلاه. ومع ذلك، تمت إزالة فحص سلامة عامل الإرساء في هذا الإصدار. يتم ذلك للأشخاص الذين يقومون بتشغيل الأنظمة الأساسية (مثل Nomad) التي لا تدعم تعطيل عمليات التحقق من الصحة يدويًا، حيث لا تكون عمليات التحقق من الصحة مطلوبة.
تتوفر علامات محددة للإصدار والهندسة المعمارية
حاليًا، يجب أن يتم سحب هذه الصورة وتشغيلها على البنيات التالية:
amd64
: لينكس x86-64
arm32v7
، armv7l
: ARMv7 32 بت (Odroid HC1/HC2/XU4، RPi 2B/3B)
arm64
، aarch64
: ARMv8 64 بت (أنظمة تشغيل RPi 4 64 بت)
يجب على المستخدمين لأول مرة الحصول على مفتاح مشاركة RadarBox.
من أجل الحصول على مفتاح مشاركة RadarBox، عند التشغيل الأول للحاوية، سيقوم rbfeeder
بإنشاء مفتاح مشاركة وطباعته في سجل الحاوية.
تشغيل عامل الميناء مهلة 300s --rm -هو - هي -e BEASTHOST=المضيف الخاص بك -e LAT=خط العرض الخاص بك -e LONG = طولك -e ALT=YOURALTITUDE ghcr.io/sdr-enthusiasts/docker-radarbox:latest
سيؤدي هذا إلى تشغيل الحاوية لمدة خمس دقائق، مما يسمح بإنشاء مفتاح المشاركة.
من الواضح أنه يجب عليك استبدال YOURBEASTHOST
و YOURLATITUDE
و YOURLONGITUDE
و YOURALTITUDE
بالقيم المناسبة.
بعد وقت قصير من إطلاق الحاوية، يجب أن يُعرض عليك ما يلي:
[2020-04-02 11:36:31] Empty sharing key. We will try to create a new one for you!
[2020-04-02 11:36:32] Your new key is g45643ab345af3c5d5g923a99ffc0de9. Please save this key for future use. You will have to know this key to link this receiver to your account in RadarBox24.com. This key is also saved in configuration file (/etc/rbfeeder.ini)
قم بتدوين مفتاح المشاركة، حيث ستحتاج إليه عند تشغيل الحاوية.
إذا لم تكن مستخدمًا لأول مرة وتقوم بالترحيل من تثبيت آخر، فيمكنك استرداد مفتاح المشاركة الخاص بك باستخدام إحدى الطرق التالية:
SSH على جهاز الاستقبال الموجود لديك وقم بتشغيل الأمر rbfeeder --showkey --no-start
SSH على جهاز الاستقبال الموجود لديك وقم بتشغيل الأمر grep key= /etc/rbfeeder.ini
docker run
تشغيل عامل الميناء -د --rm --اسم rbfeeder -e TZ = "المنطقة الزمنية الخاصة بك" -e BEASTHOST=المضيف الخاص بك -e LAT=خط العرض الخاص بك -e LONG = طولك -e ALT=YOURALTITUDE -e SHARING_KEY=YOURSHARINGKEY ghcr.io/sdr-enthusiasts/docker-radarbox:latest
من الواضح أنه يجب عليك استبدال YOURBEASTHOST
و YOURLATITUDE
و YOURLONGITUDE
و YOURALTITUDE
و YOURSHARINGKEY
بالقيم المناسبة.
على سبيل المثال:
تشغيل عامل الميناء -د --rm --اسم rbfeeder -e TZ="أستراليا/بيرث" -e BEASTHOST=readsb -e LAT=-33.33333 -ه طويل = 111.11111 -ه البديل = 90 -e SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9 ghcr.io/sdr-enthusiasts/docker-radarbox:latest
يرجى ملاحظة أن رقم الارتفاع معطى بالأمتار ولا ينبغي تحديد أي وحدات.
الإصدار: "2.0" الخدمات: تغذية: الصورة: ghcr.io/sdr-enthusiasts/docker-radarbox:latest tty: truecontainer_name: rbfeeder إعادة التشغيل: دائمًا بيئة: - TZ=أستراليا/بيرث - BEASTHOST=readsb - لات=-33.33333 - طويل = 111.11111 - البديل = 90 - SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9
بمجرد تشغيل الحاوية الخاصة بك، يجب عليك المطالبة بجهاز الاستقبال الخاص بك.
انتقل إلى https://www.radarbox.com/
إنشاء حساب أو تسجيل الدخول
قم بالمطالبة بجهاز الاستقبال الخاص بك عن طريق زيارة https://www.radarbox.com/raspberry-pi/claim واتباع التعليمات
قبل إثارة مشكلة تتعلق بأخطاء الاتصال، يرجى الانتظار لمدة 10 دقائق على الأقل. تم تكوين ثنائي rbfeeder
لمحاولة الاتصال بمجموعة من الخوادم بطريقة round-robin. يبدو من الطبيعي أن ترفض بعض الخوادم الاتصال، لذلك قد يستغرق الأمر عدة دقائق للعثور على خادم متاح والاتصال به. في المثال أدناه، استغرق الأمر حوالي 6 دقائق من بدء الحاوية حتى إنشاء الاتصال.
يمكنك محاولة حل هذه المشكلة عن طريق تعيين هذه المعلمة:
- RB_SERVER=صحيح
سيؤدي هذا إلى فرض استخدام عنوان IP مشفر والمعروف أنه يعمل (اعتبارًا من 22 نوفمبر 2023). وسوف يوصلك بخادم أوروبي إذا كنت متواجدًا في نصف الكرة الشرقي (بما في ذلك آسيا/أوقيانوسيا)، أو بخادم مقره الولايات المتحدة إذا كنت متواجدًا في الأمريكتين.
قد تتلقى أيضًا خطأ زائفًا Error authenticating Sharing-Key: Invalid sharing-key
. شريطة أن تقوم بإدخال مفتاح المشاركة الخاص بك بشكل صحيح، فما عليك سوى تجاهل ذلك لعدة دقائق.
فيما يلي بعض الأمثلة على المخرجات باستخدام RBFeeder الإصدار 1.0.10 (النسخة 20231120150000) والتي توضح السلوك المذكور أعلاه:
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Starting RBFeeder Version 1.0.10 (build 20231120150000)
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Using configuration file: /etc/rbfeeder.ini
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Network-mode enabled.
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Remote host to fetch data: 172.20.0.11
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Remote port: 30005
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Remote protocol: BEAST
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Using GNSS (when available)
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Start date/time: 2023-11-22 21:59:06
[2023-11-22 21:59:06.972][rbfeeder] [2023-11-22 21:59:06] Socket for ANRB created. Waiting for connections on port 32088
[2023-11-22 21:59:08.039][rbfeeder] [2023-11-22 21:59:08] Connection established.
[2023-11-22 21:59:18.154][rbfeeder] [2023-11-22 21:59:18] Could not start connection. Timeout.
...
[2023-11-22 22:05:29.223][rbfeeder] [2023-11-22 22:05:29] Connection established.
[2023-11-22 22:05:29.456][rbfeeder] [2023-11-22 22:05:29] Client type: Raspberry Pi
[2023-11-22 22:05:29:29.524][rbfeeder] [2023-11-22 22:05:29] Connection with RadarBox24 server OK! Key accepted by server.
[2023-11-22 22:05:29.524][rbfeeder] [2023-11-22 22:05:29] This is your station serial number: EXTRPIxxxxxx
هناك سلسلة من متغيرات البيئة المتاحة:
متغير البيئة | غاية | تقصير |
---|---|---|
BEASTHOST | مطلوب. IP/اسم المضيف لموفر Mode-S/BEAST (dump1090/readsb) | readsb |
BEASTPORT | خياري. رقم منفذ TCP لموفر Mode-S/BEAST (dump1090/readsb) | 30005 |
UAT_RECEIVER_HOST | خياري. IP/اسم المضيف لموفر JSON خارجي تم فك تشفيره باستخدام UAT (على سبيل المثال: dump978-fa). | |
UAT_RECEIVER_PORT | خياري. رقم منفذ TCP لموفر JSON الخارجي الذي تم فك تشفيره بواسطة UAT. | 30979 |
SHARING_KEY | مطلوب. مفتاح مشاركة Radarbox | |
LAT | مطلوب. خط عرض الهوائي | |
LONG | مطلوب. خط طول الهوائي | |
ALT | مطلوب. الارتفاع بالأمتار | |
TZ | خياري. منطقتك الزمنية المحلية | بتوقيت غرينيتش |
STATS_INTERVAL_MINUTES | خياري. كم مرة لطباعة الإحصائيات، في دقائق. | 5 |
VERBOSE_LOGGING | خياري. اضبط على true لعدم تصفية سجلات rbfeeder . | false |
DEBUG_LEVEL | خياري. اضبط على أي رقم بين 0 و 8 لزيادة إسهاب سجلات rbfeeder . | 0 |
ENABLE_MLAT | خيار. اضبط على true لتمكين MLAT داخل الحاوية. انظر ملاحظة MLAT أدناه | true |
MLAT_RESULTS_BEASTHOST | اسم المضيف أو IP، حيث ينبغي إرسال نتائج MLAT. (تعطيل منفذ الاستماع لنتائج 30105) | |
MLAT_RESULTS_BEASTPORT | رقم المنفذ، حدد رقم منفذ TCP الذي يجب إرسال نتائج MLAT إليه. | 30104 |
RB_SERVER | خياري. إذا تم التعيين على true ، فستحاول الحاوية الاتصال بأحد خادمي Radarbox المعروفين بالعمل اعتبارًا من 22 نوفمبر 2023. يمكنك أيضًا تعيينه بشكل صريح على اسم مضيف أو عنوان IP. إذا لم يتم تعيينها، سيتم استخدام الإعدادات الافتراضية لـ RadarBox. | غير محدد |
يتم استخدام منافذ TCP التالية بواسطة هذه الحاوية:
32088
- يستمع rbfeeder
على هذا المنفذ، ولكن لا يمكنني العثور على استخدام لهذا المنفذ...
30105
- يستمع mlat-client
على هذا المنفذ لتقديم نتائج MLAT. (تم تعطيل منفذ الاستماع لنتائج mlat عند تعيين MLAT_RESULTS_BEASTHOST
للعمل حول خطأ rbfeeder)
قد تجد أن MLAT الموجود في الحاوية الخاصة بك سوف يؤدي في كثير من الأحيان إلى ظهور أخطاء في سجلاتك، مثل
[rbfeeder] قطع الاتصال من mlat1.rb24.com:40900: لم يتم تلقي أي بيانات (ولا حتى بيانات البقاء) لمدة 60 ثانية [rbfeeder] متصل بخادم متعدد الأطراف على mlat1.rb24.com:40900، المصافحة
من المحتمل، ولكن ليس دائمًا، أن هذا لا يحدث بسبب أي شيء تفعله، ولكنه يحدث بدلاً من ذلك بسبب خادم Radarbox نفسه، وبالتالي لا يوجد أي شيء يمكنك القيام به لإصلاحه. ستشاهد في إحصائيات Radarbox الخاصة بك القليل جدًا من أهداف MLAT، إن وجدت، من وحدة التغذية الخاصة بك أثناء القيام بذلك.
لإيقاف وحدة التغذية من إرسال رسائل غير مرغوب فيها إلى سجلاتك، يمكنك تعيين ENABLE_MLAT=false
في تكوين بيئتك لـ Radarbox وسيقوم بإيقاف خدمة MLAT ورسائل السجل. يرجى ملاحظة أنه إذا قمت بذلك، وكنت تستخدم MLAT Hub، فيرجى إزالة Radarbox من READSB_NET_CONNECTOR
ضمن MLAT Hub
.
تستخدم الحاوية داخليًا ثنائيًا يسمى rbfeeder
لإرسال البيانات إلى خدمة RadarBox. يتم توفير هذا الثنائي كمصدر مغلق بواسطة AirNav (الشركة التي تقوم بتشغيل RadarBox) وهو متاح فقط بتنسيق Armhf (32 بت) باستخدام صفحات kernel بحجم 4 كيلو بايت. سيعمل هذا بشكل جيد على Raspberry Pi 3B+ و4B والأنظمة الأخرى المستندة إلى ARM والتي تستخدم إما 32 بت أو 64 بت Debian Linux بحجم صفحة kernel يبلغ 4 كيلو بايت. كما أنه يعمل بشكل جيد على نظام التشغيل x86 Linux حيث نستخدم محاكي qemu
ARM لتشغيل الملف الثنائي.
يستخدم Debian Linux for Raspberry Pi 5 بشكل افتراضي نواة بأحجام صفحات تبلغ 16 كيلو بايت، وهذا غير متوافق مع ثنائي rbfeeder
. سترى حالات الفشل في سجلات الحاوية الخاصة بك.
يمكنك التحقق من حجم صفحة النواة الخاصة بك باستخدام هذا الأمر: getconf PAGE_SIZE . إذا كانت القيمة التي تم إرجاعها هي 4096، فكل شيء على ما يرام. إذا كان شيئًا آخر (على سبيل المثال 16384 لحجم الصفحة 16 كيلو بايت)، فستحتاج إلى تنفيذ الحل البديل التالي:
أضف ما يلي إلى /boot/firmware/config.txt (Debian 12 Bookworm أو أحدث) أو /boot/config.txt (Debian 11 Bullseye أو أقدم) لاستخدام نواة بحجم صفحة يبلغ 4 كيلو بايت. سيؤدي هذا إلى جعل استخدام وحدة المعالجة المركزية عبر جهاز Raspberry Pi 5 أقل كفاءة قليلاً، ولكنه سيحل المشكلة للعديد من حزم البرامج التي بها نفس المشكلة. بعد تغيير هذا، يجب عليك إعادة تشغيل النظام الخاص بك ليصبح ساري المفعول:
kernel=kernel8.img
(الأمر لمرة واحدة لإضافة هذا سيكون :)
صدى "kernel=kernel8.img" | Sudo Tee -a /boot/firmware/config.txt >/dev/null
يتم تسجيل جميع العمليات في stdout الخاص بالحاوية، ويمكن عرضها باستخدام docker logs [-f] container
.
يمكنك تسجيل مشكلة على GitHub الخاص بالمشروع.
لدي أيضًا قناة على Discord، فلا تتردد في الانضمام إليها والتحدث فيها.
إذا كنت تواجه أخطاء تجزئة مستمرة داخل هذه الحاوية، فراجع: رقم 16 (تعليق)