Banana Pi 64 Raspberry Pi سان ملندڙ هڪ واحد بورڊ ڪمپيوٽر آهي، پر ڪيترن ئي ايٿرنيٽ بندرگاهن سان، جنهن کي اهو ممڪن بڻائي ٿو ته ان کي روٽر ۾ تبديل ڪرڻ جي بنياد تي عام مقصد جي لينڪس ڊويزن جي بنياد تي.
ها، اتي اڳ ۾ ئي Openwrt آهي، پر ان جا پنهنجا مسئلا آهن، ان جي GUI ۽ CLI؛ هتي Mikrotik آهي، پر ٻيهر ان جي پنهنجي GUI/CLI آهي، ۽ وائر گارڊ دٻي کان ٻاهر ڪم نٿو ڪري ... عام طور تي، مون کي لچڪدار سيٽنگن سان هڪ روٽر گهرجي، جڏهن ته معياري لينڪس جي فريم ورڪ ۾ رهي، جيڪو توهان ڪم ڪري رهيا آهيو. هر روز سان.
BPI، R64، سنگل بورڊ جي نالن ۾ آرٽيڪل ۾، مان ساڳي شيء جو مطلب ڪندس - Banana Pi R64 اڪيلو بورڊ.
تصوير چونڊڻ. ايم ايم سي ذريعي ڊائون لوڊ ڪريو
سڀ کان پهرين مهارت جيڪا توهان کي حاصل ڪرڻ جي ضرورت آهي جڏهن ڪم ڪرڻ سان ايس بي بي عام طور تي، ۽ خاص طور تي R64 سان، هن جو مطلب اهو آهي ته هڪ آپريٽنگ سسٽم کي ان ۾ ڪيئن لوڊ ڪجي ۽ ان سان لهه وچڙ ڪرڻ جي قابل ٿي وڃي، ڇاڪاڻ ته R64 وٽ مانيٽر لاءِ پورٽ ناهي (مثال طور HDMI). جڏهن سڀ ڪجهه بند ٿي ويو - وائي فائي، ايٿرنيٽ، بلوٽوت، يو ايس بي، وغيره ڪم ڪرڻ بند ڪيو. اتي هڪ UART آهي، جنهن جي انٽرفيس ذريعي توهان هميشه ڏسي سگهو ٿا ته ڇا غلط ٿيو، ۽ ڪنسول مان ڪجهه حڪم پڻ هلائي، جيڪڏهن ضروري هجي.
ٺاهيندڙ R64 (چين) هن بائنري کي پوسٽ ڪيو هتي. اهو ڇا ڪري ٿو اڻڄاتل آهي (ڪابه سورس ڪوڊ نه آهن)، پر اهو ان کان سواء ڪم نه ڪندو.
عام طور تي، هن کان پوء، تصويرون eMMC کان لوڊ ٿيڻ شروع ٿي. جيڪڏهن توهان ان کي سمجهڻ چاهيو ٿا ۽ شروع کان تصويرون ٺاهڻ چاهيو ٿا، ته پوءِ ٻنهي صورتن لاءِ (SD/eMMC) توهان کي وڌيڪ فائلون لکڻ گهرجن (SD ڪارڊ لاءِ اڳي لوڊ ڪندڙ، ATF، u-boot) صرف ڪرنل لوڊ ڪرڻ لاءِ. هي موضوع اڃا تائين آهي ترقي ڪري ٿو، پر اسان لاءِ بنيادي شيءِ اها آهي ته اهو ڪم ڪري ٿو ۽ ٺيڪ آهي.
ھاڻي آء ايم ايم سي ذريعي ڊائون لوڊ ڪريان ٿو، ايماندار ٿيڻ لاء، مان ان کي استعمال نٿو ڪريان، ھڪڙو SD ڪارڊ ڪافي آھي، پر مون ان کي ڪم ڪرڻ لاء ڪافي وقت گذاريو، تنھنڪري اھو مضمون ۾ ھجي.
هڪ آپريٽنگ سسٽم چونڊيو. آرمبين
پهرين ايپليڪيشن جو ڪم هڪ وي پي اين لانچ ڪرڻ آهي، قدرتي طور تي وائر گارڊ. اهو فوري طور تي دريافت ڪيو ويو ته ڪني جي پاسي تي اهو گڏ نه ڪيو ويو هو ۽ نه هيڊر هئا. مون ڪرنل کي ٻيهر ٺاهيو ۽، جيئن x86 سان منهنجي عادت آهي، ڊي ڪي ايم ايس استعمال ڪندي ڪرنل ماڊل کي گڏ ڪيو. جڏهن ته، arm64 تي اڃا به ننڍيون افاديت جي تعمير جي رفتار مون کي حيران ڪري ڇڏيو. ۽ پوءِ ٻيو ڪنيل ماڊل گهربل هو، وغيره. عام طور تي، اهو ظاهر ٿئي ٿو ته ڪرنل سان لاڳاپيل هر شيء کي گرم x86 ليپ ٽاپ تي گڏ ڪيو ويو آهي، پوء آسان ڪاپي، ريبوٽ ۽ آزمائشي ذريعي R64 ڏانهن منتقل ڪيو ويو آهي.
ٻي شيءِ آهي Userspace حصو. Debian چونڊڻ جي منهنجي صورت ۾، arm64 آرڪيٽيڪچر لاءِ سڀ ڪجهه اڳ ۾ ئي آهي packages.debian.org ۽ ڪنهن به شيءِ کي ٻيهر تعمير ڪرڻ جي ضرورت ناهي.
ٻي سائيڪل پيدا نه ڪرڻ لاءِ، آءِ بند ٿيلآرميگيشن BPI R64 تي.
يا بلڪه، هي: استعمال ڪندڙ اسپيس حصو Armbian آهي، ۽ ڪنيال مخزن مان ورتو ويو آهي فرئنڪ-اي. تازو تصوير ڊائون لوڊ ڪري سگھجي ٿو هتي.
R64 جي سافٽ ويئر جي حصي جي ترقي تي سڀني سرگرمين تي ڪيو ويندو آهي فورم. عام طور تي ڳالهائڻ، ٺاهيندڙ پاڻ کي Openwrt لاء روٽر کي مشهور ڪرڻ جي ڪوشش ڪري ٿو، پر جرمني کان ڊولپر فرينڪ جي سرگرمي جي مهرباني، سڀ خاصيتون جلدي ختم ٿي وينديون ڊبيان لاء دانا ۾. حيرت انگيز طور تي، فرينڪ هر فورم جي سلسلي ۾ سرگرم آهي.
ڪم جي جڳهه جي جوڙجڪ: تار
الڳ الڳ، مان توهان کي ٻڌائڻ چاهيان ٿو ته ڪيئن، ڊولپمينٽ/ٽيسٽنگ دوران، ٽيبل تي هڪ SBC (صرف هڪ BPI نه) رکي ته جيئن ان کي انٽرنيٽ جي ذريعن کان سڄي ڪمري/آفيس ۾ Ethernet ڪيبل نه هلائي. حقيقت اها آهي ته، هڪ طرف، توهان کي انٽرنيٽ سان هارڊويئر جو هڪ ٽڪرو مهيا ڪرڻ جي ضرورت آهي، پر ٻئي طرف، هارڊويئر جي ان ٽڪرا ۾ سڀ ڪجهه خراب ٿي سگهي ٿو، ۽ سڀ کان پهريان وائي فائي.
پهرين، مون هڪ سستو USB-وائي فائي "سيٽي" خريد ڪرڻ جو فيصلو ڪيو، ان کي BPI تي واحد بندرگاهن ۾ لڳايو ۽ تارن جي باري ۾ وساريو. هن کي ڪرڻ لاء، مون هڪ سستو TP-LINK TL-WN725N USB 2.0 خريد ڪيو، پر تمام جلدي اهو واضح ٿي ويو ته اهو بند نه ٿيندو: سيٽي کي ڪم ڪرڻ لاء، توهان کي ڪنيل ڊرائيور جي ضرورت آهي، جيڪو، يقينا، اتي نه هو. (بعد ۾ مون ضروري RTL8XXXU ڊرائيور گڏ ڪيو، پر اهو اڃا تائين غير عملي آهي). ۽ Ethernet ڪيبل ٿوري دير لاءِ ڪمري جي نظر کي خراب ڪري ڇڏيو.
نتيجي طور، مان Tenda MW3 (وائي فائي ميش سسٽم) جي مدد سان ڪيبل مان نجات حاصل ڪرڻ ۾ ڪامياب ٿيس: مون صرف ٽيبل جي هيٺان هڪ ڪيوب رکيو ۽ BPI کي بعد جي LAN بندرگاهه سان هڪ ميٽر ڊگهي ايٿرنيٽ ڪيبل سان ڳنڍيو. ڪاميابي.
وائر گارڊ ، آر ڪي اين ، پکي
انهن شين مان هڪ آهي جنهن لاءِ مان بنانا پي آءِ استعمال ڪرڻ چاهيان ٿو RKN طرفان بلاڪ ڪيل سائيٽن تائين مفت رسائي حاصل ڪرڻ، خاص طور تي، ته جيئن ٽيليگرام ۽ سليڪ ڪالون ڪم ڪري سگهن. هبري تي آرٽيڪل اڳ ۾ ئي هن موضوع تي تجويز ڪيا ويا آهن: ڀيرا, два, ٽي.
مون جوابي استعمال ڪندي بلڪل هن حل کي ترتيب ڏنو: لنڪ.
with mapping:
append("name", "start bird")
with mapping("systemd"):
append("name", "bird")
append("state", "started")
append("enabled", "yes")
Python ۾ جوابي حڪمن کي لکڻ توهان کي ڪوڊ ٻيهر استعمال ڪرڻ جي اجازت ڏئي ٿو، ۽ عام طور تي عام مقصد جي ٻولي جي سڀني امڪانن کي کولي ٿو. مثال طور، R64 ۽ VPS تي پکين کي نصب ڪرڻ:
ڪل: ٽيليگرام ڪم ڪري ٿو، ڳنڍيلن ۽ پورن هب پڻ، عام طور تي صارف جو تجربو ٺيڪ آهي. پر سڀ ڪجھ ٽوڙي سگھي ٿو، بشمول چيني هارڊويئر.
ڪنيل تازه ڪاريون به دلچسپ ٿي سگهن ٿيون: مثال طور، مان ڪرنل 5.4 => 5.6 کي اپڊيٽ ڪرڻ چاهيان ٿو، خير، وائر گارڊ اتي موجود آهي، پيچ ڪرڻ جي ڪا ضرورت ناهي... جلد ئي نه چيو ويو آهي: مون وڏي محنت سان پيچ کي 5.4 مان منتقل ڪيو 5.6 تائين، ڪرنل شروع ٿي ويو، سرنگ کي VPS کي پنگ ڪيو ويو، پر پکي نه ٿو ڳنڍي سگھي غلطي سان "BGP Error" ... "I roll back in horror" (c) کان 5.4 تائين؛ 5.6 ڏانهن منتقل TODO ۾ ملتوي ڪيو ويو.
تنهن ڪري، روٽر ۽ VPS کي نصب ڪرڻ کان علاوه، مون مانيٽرنگ شامل ڪيو (x86 Ubuntu 18.04 تي)، جيڪو هيٺ ڏنل اجزاء سان الڳ ميزبان تي نصب ڪيو ويو آهي:
هر شي کان علاوه، مون ٻن مهيا ڪندڙن سان ڳنڍڻ جي منصوبابندي ڪئي ته جيئن انٽرنيٽ ڪم جاري رکي، جيتوڻيڪ هڪ فراهم ڪندڙ کي نيٽ ورڪ سان مسئلو آهي، يا اهي انٽرنيٽ، وغيره وغيره، ۽ ٻيا انساني عنصر لاء ادا ڪرڻ وساريندا آهن.
ملٽي وان جي موضوع تي سڀ کان وڌيڪ ترقي يافته صارف تجربو بيان ڪيو ويو آهي هتي Openwrt تحت Mwan3 سسٽم لاءِ. هن حل ۾ ڀرپور ڪارڪردگي آهي، پر عام طور تي ملٽي وان لاءِ ان کي ترتيب ڏيڻ ۽ هلائڻ ڪافي مشڪل آهي. صرف هڪ مثال: جيڪڏهن توهان هڪ ڀيرو ٻه IP پتي مان ڪجهه سائيٽن تي ايندا، اهي شايد پسند نه ڪندا، اهي ڪم ڪرڻ بند ڪري ڇڏيندا => "انٽرنيٽ ڪم نه ڪري رهيو آهي."
هن تجربي کي مدنظر رکندي، مون فيصلو ڪيو ته ملٽي هومنگ اڃا ترجيح نه آهي، صرف ناڪامي. جيتوڻيڪ، اهو لڳي ٿو ته لينڪس جي جديد نسخن ۾ هر شي کي هڪ حڪم سان ڪم ڪرڻ گهرجي جهڙوڪ:
ip route add default
nexthop via 192.168.1.1 weight 10
nexthop via 192.168.2.1 weight 5
تنهن ڪري، ناڪاميءَ جي هڪ نقطي کان بچڻ لاءِ، اسان 2 BPIs وٺون ٿا، هر هڪ کي هڪ فراهم ڪندڙ سان ڳنڍيون ٿا، انهن کي هڪ ٻئي سان ڳنڍيون ٿا ۽ هڪ ٻئي سان ڪنيڪشن ٺاهيون ٿا bird/OSPF ذريعي متحرڪ روٽنگ.
اڳيون، اسان هر هڪ تي ساڳيو IP پتو اشتهار ڏيون ٿا جيڪڏهن خدمت موجود آهي (انٽرنيٽ، DNS). اهو آهي، اسان ڊفالٽ رستو پاڻ مقرر نه ڪنداسين، پر پکيء جي ذريعي. مون حل ڳولي ورتو هتي .
اها ڪارڪردگي اڃا تائين لاڳو نه ڪئي وئي آهي، ڪوڙي ڪورونوايرس هتي هڪ چال کيڏيو آهي (سڀ ڪجهه نه آيو آهي Aliexpress کان؛ ٻيو آن لائن اسٽور، ليتا، هڪ هفتي ۾ پهچائڻ جو واعدو ڪيو، پر هڪ مهيني کان وڌيڪ گذري چڪو آهي؛ ٻئي فراهم ڪندڙ وٽ وقت نه آهي قرنطين کان اڳ ڪيبل کي وڌائڻ لاءِ، صرف ڪيبل لاءِ ڀت ۾ سوراخ ڪرڻ جو انتظام ڪيو ويو).
آرڊر ڪيئن ڪجي R64
بورڊ پاڻ سرڪاري اسٽور ۾ آهي SinoVoip.
اهو پڻ بهتر آهي ته فوري طور تي حڪم ڏيو:
اتي هڪ nuance آهي - ترسيل قيمت ڪجهه وقت لاءِ سرڪاري اسٽور ۾ غير مناسب طور تي وڌي وئي آهي. مئنيجر جوڊي هوانگ مون کي يقين ڏياريو ته ڪا غلطي نه هئي، ۽ توهان ePacket $5 لاءِ چونڊي سگهو ٿا، پر مون ڏٺو ته روس لاءِ صرف EMS آهي > $33 لاءِ. ناپسنديده، پر نازڪ نه. ان کان علاوه، جيڪڏهن توهان ترسيل لاءِ ڪنهن ٻئي ملڪ کي چونڊيو (مان سڀني براعظمن مان گذريو)، ترسيل جي قيمت هوندي ~ $5. Russophobes؟... پر پوءِ مون ڏٺو ته فرانس لاءِ ترسيل قيمت به ~ 30 $ آهي، ۽ مان آرام سان ٿي ويس.
نتيجي طور، جوڊي هڪ آرڊر ڏيڻ جي آڇ ڪئي، پر ادا نه ڪيو (اشارو: ڪارڊ تي گهٽ رکو ته جيئن خودڪار ادائيگي ذريعي نه وڃي؛ هن ڏانهن لکو ۽ هوءَ ترسيل قيمت کي معمول تي آڻيندي. ڪاميابي.
مسئلن
اڃا تائين سڀ ڪجهه مڪمل طور تي ڪم نه ڪري رهيو آهي.
پيداوار
جوابي = پٿون حڪمن تي عمل ڪيو ويندو آهي سست رفتاري، جيتوڻيڪ بيڪار، 20-30 سيڪنڊن لاء؛ هڪ x86 ليپ ٽاپ جي ڀيٽ ۾ شدت جو آرڊر. ان کان علاوه، پهرين ۾ اهي تمام جلدي تي عمل ڪيا ويا آهن، ~ 3 سيڪنڊ، پوء اهي تيزيء سان سست ٿي ويندا آهن. اهو ٿي سگهي ٿو سي پي يو گرم ڪرڻ جي ڪري (ٿورولنگ). گو ڪوڊ پڻ ڪم ڪرڻ ۾ ڊگهو وقت وٺندو آهي:
# запрос метрик для прометея из node_exporter на Go
$ time curl -s http://172.30.1.1:9100/metrics > /dev/null
real 0m6,118s
user 0m0,005s
sys 0m0,009s
# однако температура 51 градус, не так и много
sa@bananapir64:~$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
51700
وائيس
وائي فائي ڪم ڪري ٿو، پر Armbian تي اهو تقريباً هڪ ڏينهن کان پوءِ بند ٿي وڃي ٿو، لکي ٿو: