Banana Pi R64 روٽر - Debian، Wireguard، RKN

Banana Pi 64 Raspberry Pi سان ملندڙ هڪ واحد بورڊ ڪمپيوٽر آهي، پر ڪيترن ئي ايٿرنيٽ بندرگاهن سان، جنهن کي اهو ممڪن بڻائي ٿو ته ان کي روٽر ۾ تبديل ڪرڻ جي بنياد تي عام مقصد جي لينڪس ڊويزن جي بنياد تي.

Banana Pi R64 روٽر - Debian، Wireguard، RKN

ها، اتي اڳ ۾ ئي Openwrt آهي، پر ان جا پنهنجا مسئلا آهن، ان جي GUI ۽ CLI؛ هتي Mikrotik آهي، پر ٻيهر ان جي پنهنجي GUI/CLI آهي، ۽ وائر گارڊ دٻي کان ٻاهر ڪم نٿو ڪري ... عام طور تي، مون کي لچڪدار سيٽنگن سان هڪ روٽر گهرجي، جڏهن ته معياري لينڪس جي فريم ورڪ ۾ رهي، جيڪو توهان ڪم ڪري رهيا آهيو. هر روز سان.

BPI، R64، سنگل بورڊ جي نالن ۾ آرٽيڪل ۾، مان ساڳي شيء جو مطلب ڪندس - Banana Pi R64 اڪيلو بورڊ.

تصوير چونڊڻ. ايم ايم سي ذريعي ڊائون لوڊ ڪريو

سڀ کان پهرين مهارت جيڪا توهان کي حاصل ڪرڻ جي ضرورت آهي جڏهن ڪم ڪرڻ سان ايس بي بي عام طور تي، ۽ خاص طور تي R64 سان، هن جو مطلب اهو آهي ته هڪ آپريٽنگ سسٽم کي ان ۾ ڪيئن لوڊ ڪجي ۽ ان سان لهه وچڙ ڪرڻ جي قابل ٿي وڃي، ڇاڪاڻ ته R64 وٽ مانيٽر لاءِ پورٽ ناهي (مثال طور HDMI). جڏهن سڀ ڪجهه بند ٿي ويو - وائي فائي، ايٿرنيٽ، بلوٽوت، يو ايس بي، وغيره ڪم ڪرڻ بند ڪيو. اتي هڪ UART آهي، جنهن جي انٽرفيس ذريعي توهان هميشه ڏسي سگهو ٿا ته ڇا غلط ٿيو، ۽ ڪنسول مان ڪجهه حڪم پڻ هلائي، جيڪڏهن ضروري هجي.

USB-UART ذريعي R64 سان ڳنڍڻ لاءِ الگورتھم:

  • اسان هڪ USB-UART ڪيبل (PL2303، Serial-to-USB) لاءِ ريڊيو پارٽس اسٽور تي هلون ٿا.
  • ھڪڙي USB آخر کي ڪمپيوٽر سان ڳنڍيو، ۽ ٻيو، UART، R64 سان، چئن مان ٽن تارن سان، جيئن ھيٺ ڏنل تصوير ۾
  • ڪمپيوٽر ڪنسول ۾ هلائي sudo minicom

ان کان پوء، اڪثر ڪيسن ۾ سنگل بورڊ ڪنسول ظاهر ٿيندو = ڪاميابي.
توھان وڌيڪ تفصيل ڏسي سگھو ٿا هتي.

Banana Pi R64 روٽر - Debian، Wireguard، RKN

اڳيون، SD ڪارڊ مان آپريٽنگ سسٽم لوڊ ڪرڻ جو آسان طريقو آهي: ڊائون لوڊ ذريعي لنڪ تصوير ۽ ان کي ڀريو:

unzip -p 2019-08-23-ubuntu-16.04-lite-preview-bpi-r64-sd-emmc.img.zip | pv | sudo dd of=/dev/mmcblk0 bs=10M status=noxfer

اسان ڪارڊ داخل ڪريو R64 SD سلاٽ ۾، ان کي موڙ ڪريو، ۽ ڳنڍيو ڪنسول لوڊ ڪرڻ جو مشاهدو پهريون يوبوٽ، پوء معياري لينڪس لوڊ ڪندي.

ھڪڙو متبادل بوٽ اختيار ھڪڙو 64Gb ڪارڊ استعمال ڪري رھيو آھي جيڪو اڳ ۾ ئي R8 ۾ ٺاھيو ويو آھي، سڏيو ويندو آھي eMMC. وڪي ۾ ڏنل هدايتن جي مطابق، اسان تصوير کي ڊوائيس تي نقل ڪريون ٿا
/dev/mmcblk0 ڏانهن BPI، ريبوٽ ڪريو، ايس ڊي ڪارڊ کي هٽايو، وري BPI کي چالو ڪريو... ۽ اهو ڪم نٿو ڪري. ڪيئن پوئتي ۽ اڳتي Boot select تنگ نه ڪريو.

حقيقت اها آهي ته گهٽ ۾ گهٽ BPI لاء توهان کي هڪ خاص پرچم مقرر ڪرڻ جي ضرورت آهي انهي لاء ته هڪ اندروني فليش ڊرائيو مان بوٽ ڪرڻ جي قابل ٿي:

root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x00]
root@bpi-r64:~# ./mmc bootpart enable 1 1 /dev/mmcblk1
root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x48]

اڳيون، توهان کي هڪ خاص بوٽ ورهاڱي ۾ preloader لکڻ جي ضرورت آهي

root@bpi-r64:~# echo 0 > /sys/block/mmcblk0boot0/force_ro 
root@bpi-r64:~# dd if=preloader_evb7622_64_foremmc.bin of=/dev/mmcblk0boot0

ٺاهيندڙ 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 طرفان بلاڪ ڪيل سائيٽن تائين مفت رسائي حاصل ڪرڻ، خاص طور تي، ته جيئن ٽيليگرام ۽ سليڪ ڪالون ڪم ڪري سگهن. هبري تي آرٽيڪل اڳ ۾ ئي هن موضوع تي تجويز ڪيا ويا آهن: ڀيرا, два, ٽي.

مون جوابي استعمال ڪندي بلڪل هن حل کي ترتيب ڏنو: لنڪ.

VPS فرض ڪيو ويو آهي Ubuntu 18.04 هلائي رهيو آهي. مون يورپ ۾ ٻن ميزبانن تي ڪارڪردگي جي جانچ ڪئي: Amazon ۽ ڊجيٽل سمنڊ.

تنهن ڪري، اسان R64 تي مٿي Armbian نصب ڪيو، اهو نالو هيٺ ssh ذريعي دستياب آهي hm-bananapi-1 ۽ انٽرنيٽ جي رسائي آهي. اسان مسلسل جوابي، آٽوميشن اسڪرپٽ کي ترتيب ڏيو ۽ انسٽاليشن پاڻ کي R64 تي لانچ ڪيو:

# зависимости для Debian-based дистрибутивов
$ sudo apt install --no-install-recommends python3-pip python3-setuptools python3-wheel git
$ which pip3
/usr/bin/pip3

# ansible с pybook, скриптование на Python
$ pip3 install https://github.com/muravjov/ansible/archive/ansible-2.10.0.dev0-pybook2019.tar.gz

$ export PATH=~/.local/bin:$PATH
$ which ansible-playbook
/home/sa/.local/bin/ansible-playbook

$ git clone https://github.com/muravjov/ansible-bpi-r64.git
$ cd ansible-bpi-r64

$ git submodule update --init

# убеждаемся в доступности hm-bananapi-1
$ ssh hm-bananapi-1 which python3
/usr/bin/python3

# собственно установка
$ ansible-playbook ./router.py -l hm-bananapi-1

اڳيون، توهان کي اسان جي VPN کي ترتيب ڏيڻ جي ضرورت آهي VPS ڏانهن ساڳئي طريقي سان:

ansible-playbook ./router.py -l current-vpn

هتي دليل هميشه موجوده-vpn آهي، ۽ اصل VPS نالو هڪ متغير ۾ ترتيب ڏنل آهي (هن صورت ۾ اهو آهي paris-vpn-aws-t2-micro-1):

$ grep current_vpn group_vars/all 
current_vpn: paris-vpn-aws-t2-micro-1
#current_vpn: frankfurt-vpn-d0-starter-1

ها، انهن سڀني عملن کان پهريان توهان کي فولڊر ۾ راز (خاص طور تي وائر گارڊ ڪيز) پيدا ڪرڻ جي ضرورت آهي ./secrets، ڊاريڪٽري وانگر ڏسڻ گهرجي پوء.

پٿون ۾ جوابي خودڪار

توھان محسوس ڪري سگھوٿا ته YAML فارميٽ ۾ ھجڻ بدران، جوابي ڪمانڊ پٿون اسڪرپٽ ۾ انڪوڊ ٿيل آھن. مقابلي لاءِ، عام طريقي سان پکين جي ڊيمن کي ڪيئن چالو ڪجي:

- name: start bird
  systemd:
    name: bird
    state: started
    enabled: yes

۽ Python ذريعي ساڳيو ڪيئن ڪجي:

with mapping:
    append("name", "start bird")
    with mapping("systemd"):
        append("name",  "bird")
        append("state", "started")
        append("enabled", "yes")

Python ۾ جوابي حڪمن کي لکڻ توهان کي ڪوڊ ٻيهر استعمال ڪرڻ جي اجازت ڏئي ٿو، ۽ عام طور تي عام مقصد جي ٻولي جي سڀني امڪانن کي کولي ٿو. مثال طور، R64 ۽ VPS تي پکين کي نصب ڪرڻ:

install_bird("router/bird.conf.j2")
install_bird("vpn/bird.conf.j2")

فنڪشن ڪوڊ ڏسو install_bird().

هن خصوصيت سڏيو pybook لاڳو ڪيو ويو هتي. pybook تي اڃا تائين ڪا به دستاويز نه آهي، پر آئون هن مسئلي کي بعد ۾ حل ڪندس.

هو ڇا ٿو سوچي ڪالاباغ ان موقعي تي.

نگراني. پروميٿيس

ڪل: ٽيليگرام ڪم ڪري ٿو، ڳنڍيلن ۽ پورن هب پڻ، عام طور تي صارف جو تجربو ٺيڪ آهي. پر سڀ ڪجھ ٽوڙي سگھي ٿو، بشمول چيني هارڊويئر.

ڪنيل تازه ڪاريون به دلچسپ ٿي سگهن ٿيون: مثال طور، مان ڪرنل 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 تي)، جيڪو هيٺ ڏنل اجزاء سان الڳ ميزبان تي نصب ڪيو ويو آهي:

  • prometheus, alertmanager, blackbox_exporter - سڀ docker ۾
  • الرٽ موڪليا ويندا آهن ٽيليگرام چينل کي استعمال ڪندي metalmatze/alertmanager-bot bot - پڻ Docker ۾
  • tor bot لاءِ، ته جيئن بوٽ حالتن کي خبردار ڪري سگهي جڏهن انٽرنيٽ هجي، پر ٽيليگرام اڃا ڪم نٿو ڪري، ۽ بوٽ پاڻ ڳنڍي نٿو سگهي.
  • لاڳو ٿيل خبرداري: NodeVPNTTroubles (No ping to VPS)، BirdVPNTTroubles (No Bird Sesion)، AntifilterDownloadTroubles (غلطي لوڊ ڪرڻ ۾ بلاڪ ٿيل IP پتي)، SiteTroubles (بدقسمتي وارو ٽيليگرام دستياب ناهي)
  • سسٽم الرٽ، مثال طور، HostGrowingDiskReadLatency (سستا SD ڪارڊ اڻ پڙهيل ٿي وڃي ٿو)

مانيٽرنگ لڳائڻ جو مثال:

ansible-playbook ./monitoring.py -l monitoring-preprod

Prometheus لاءِ آٽو دريافت /etc/prometheus/auto_http فولڊر ۾ ترتيب ڏنل آهي، مانيٽرنگ ۾ ميزبان شامل ڪرڻ جو هڪ مثال (ميزبان ڊفالٽ مان مانيٽر نه آهن):

bash << 'EOF'
HOSTNAME=hm-bananapi-1
IP_ADDRESS=`ssh -G $HOSTNAME | awk '/^hostname / { print $2 }'`

ssh monitoring-preprod sudo sponge /etc/prometheus/auto_http/$HOSTNAME.json << EOF2
[
  {
    "targets": ["$IP_ADDRESS:9100"],
    "labels": {
      "env": "prod",
      "hostname": "$HOSTNAME"
    }
  }
]
EOF2
EOF

TODO: 2 فراهم ڪندڙ، 2 BPI، ڪو به ڪاسٽ ناڪامي

هر شي کان علاوه، مون ٻن مهيا ڪندڙن سان ڳنڍڻ جي منصوبابندي ڪئي ته جيئن انٽرنيٽ ڪم جاري رکي، جيتوڻيڪ هڪ فراهم ڪندڙ کي نيٽ ورڪ سان مسئلو آهي، يا اهي انٽرنيٽ، وغيره وغيره، ۽ ٻيا انساني عنصر لاء ادا ڪرڻ وساريندا آهن.

ملٽي وان جي موضوع تي سڀ کان وڌيڪ ترقي يافته صارف تجربو بيان ڪيو ويو آهي هتي 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 تي اهو تقريباً هڪ ڏينهن کان پوءِ بند ٿي وڃي ٿو، لکي ٿو:

sa@bananapir64:~$ dmesg | grep -E 'mt7622_wmac.*timeout'
[470303.802539] mt7622_wmac 18000000.wmac: Message 38 (seq 3) timeout
[470314.042508] mt7622_wmac 18000000.wmac: Message 50 (seq 4) timeout
...

صرف هڪ ٻيهر شروع ڪرڻ ۾ مدد ڪري ٿي. اسان کي اڳتي وڌڻو پوندو درجه بندي ڪريو.

Ethernet

Ethernet ڪم ڪري ٿو، پر ~ 64 ڪلاڪن کان پوءِ (DHCP) RXNUMX کان پيڪٽ اچڻ بند ٿي ويا.
انٽرفيس کي ٻيهر شروع ڪرڻ ۾ مدد ڪري ٿي:

ifdown br0; sleep 30; ifup br0

ڊرائيور نئون آهي، ان کي اڃا تائين ڪرنل ۾ قبول نه ڪيو ويو آهي، اميد اٿم ته اهو چيني لينڊن چاو آهي ان کي ختم ڪري ٿو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو