คอนเทนเนอร์นักเทียบท่าที่ใช้ rbfeeder
ของ AirNav RadarBox ออกแบบมาเพื่อทำงานควบคู่กับผู้ที่ชื่นชอบ sdr/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 ยาว=ลองจิจูดของคุณ -e ALT=ความสูงของคุณ ghcr.io/sdr-eกระตือรือร้น/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
นักเทียบท่าวิ่ง -d --rm --ชื่อ rbfeeder -e TZ="เขตเวลาของคุณ" -e BEASTHOST=สัตว์ร้ายของคุณ -e LAT=ตำแหน่งของคุณ -e ยาว=ลองจิจูดของคุณ -e ALT=ความสูงของคุณ -e SHARING_KEY=คีย์การแบ่งปันของคุณ ghcr.io/sdr-eกระตือรือร้น/docker-radarbox:latest
คุณควรแทนที่ YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
, YOURALTITUDE
และ YOURSHARINGKEY
ด้วยค่าที่เหมาะสมอย่างชัดเจน
ตัวอย่างเช่น:
นักเทียบท่าวิ่ง -d --rm --ชื่อ rbfeeder -e TZ="ออสเตรเลีย/เพิร์ธ" -e BEASTHOST=อ่านb -e LAT=-33.33333 -e ยาว=111.11111 -e ALT=90 -e SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9 ghcr.io/sdr-eกระตือรือร้น/docker-radarbox:latest
โปรดทราบว่าตัวเลขระดับความสูงมีหน่วยเป็นเมตร และไม่ควรระบุหน่วย
เวอร์ชัน: '2.0'บริการ: rbfeeder: ภาพ: ghcr.io/sdr-eกระตือรือร้น/docker-radarbox:latest tty: truecontainer_name: rbfeeder รีสตาร์ท: เสมอ สิ่งแวดล้อม: - TZ=ออสเตรเลีย/เพิร์ธ - BEASTHOST=อ่านb - ลาด=-33.33333 - ยาว=111.11111 - ALT=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 | ไม่จำเป็น. เขตเวลาท้องถิ่นของคุณ | GMT |
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: ไม่ได้รับข้อมูล (แม้แต่ Keepalives) เป็นเวลา 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 บิต) โดยใช้เพจเคอร์เนลขนาด 4kb เท่านั้น วิธีนี้จะทำงานได้ดีบน Raspberry Pi 3B+, 4B และระบบที่ใช้ ARM อื่นๆ ที่ใช้ Debian Linux แบบ 32 บิตหรือ 64 บิตพร้อมขนาดหน้าเคอร์เนล 4kb นอกจากนี้ยังทำงานได้ดีบน x86 Linux โดยที่เราใช้โปรแกรมจำลอง qemu
ARM เพื่อรันไบนารี่
Debian Linux สำหรับ Raspberry Pi 5 จะใช้เคอร์เนลที่มีขนาดเพจ 16kb เป็นค่าเริ่มต้น และสิ่งนี้เข้ากันไม่ได้กับไบนารี rbfeeder
คุณจะเห็นความล้มเหลวในบันทึกคอนเทนเนอร์ของคุณ
คุณสามารถตรวจสอบขนาดเพจเคอร์เนลของคุณด้วยคำสั่งนี้: getconf PAGE_SIZE หากค่าที่ส่งคืนคือ 4096 แสดงว่าทุกอย่างเรียบร้อยดี หากเป็นอย่างอื่น (เช่น 16384 สำหรับขนาดหน้า 16kb) คุณจะต้องดำเนินการแก้ไขปัญหาต่อไปนี้:
เพิ่มสิ่งต่อไปนี้ใน /boot/firmware/config.txt (Debian 12 Bookworm หรือใหม่กว่า) หรือ /boot/config.txt (Debian 11 Bullseye หรือเก่ากว่า) เพื่อใช้เคอร์เนลที่มีขนาดหน้า 4kb ซึ่งจะทำให้การใช้งาน CPU ใน Raspberry Pi 5 ของคุณมีประสิทธิภาพน้อยลงเล็กน้อย แต่จะช่วยแก้ปัญหาสำหรับแพ็คเกจซอฟต์แวร์จำนวนมากที่มีปัญหาเดียวกัน หลังจากเปลี่ยนแปลงแล้ว คุณต้องรีบูทระบบของคุณจึงจะมีผล:
kernel=kernel8.img
(คำสั่งครั้งเดียวที่จะเพิ่มสิ่งนี้จะเป็น :)
echo "kernel=kernel8.img" | sudo tee -a /boot/firmware/config.txt >/dev/null
กระบวนการทั้งหมดจะถูกบันทึกไว้ใน stdout ของคอนเทนเนอร์ และสามารถดูได้ด้วย docker logs [-f] container
คุณสามารถบันทึกปัญหาได้ใน GitHub ของโปรเจ็กต์
ฉันมีช่อง Discord ด้วย เข้าร่วมและสนทนาได้ตามสบาย
หากคุณพบข้อผิดพลาดในการแบ่งส่วนอย่างต่อเนื่องภายในคอนเทนเนอร์นี้ โปรดดู: #16 (ความคิดเห็น)