Banana Pi R64 راؤٹر - Debian، Wireguard، RKN

Banana Pi 64 Raspberry Pi کی طرح ایک سنگل بورڈ کمپیوٹر ہے، لیکن کئی ایتھرنیٹ پورٹس کے ساتھ، جو اسے عام مقصد کے لینکس کی تقسیم پر مبنی روٹر میں تبدیل کرنا ممکن بناتا ہے۔

Banana Pi R64 راؤٹر - Debian، Wireguard، RKN

ہاں، پہلے سے ہی Openwrt موجود ہے، لیکن اس کے اپنے مسائل ہیں، اس کے GUI اور CLI؛ Mikrotik ہے، لیکن پھر سے اس کا اپنا GUI/CLI ہے، اور Wireguard باکس سے باہر کام نہیں کرتا... عام طور پر، مجھے معیاری لینکس کے فریم ورک کے اندر رہتے ہوئے، لچکدار ترتیبات کے ساتھ ایک راؤٹر چاہیے، جس پر آپ کام کرتے ہیں۔ ہر دن کے ساتھ.

بی پی آئی، آر 64، سنگل بورڈ کے ناموں کے تحت مضمون میں، میرا مطلب ایک ہی چیز ہے - خود کیلے پی آئی آر 64 سنگل بورڈ۔

ایک تصویر کا انتخاب۔ eMMC کے ذریعے ڈاؤن لوڈ کریں۔

پہلی مہارت جس کے ساتھ کام کرتے وقت آپ کو حاصل کرنے کی ضرورت ہے۔ SBC عام طور پر، اور خاص طور پر 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، ریبوٹ کریں، SD کارڈ کو ہٹائیں، 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]

اگلا، آپ کو ایک خصوصی بوٹ پارٹیشن میں پری لوڈر لکھنے کی ضرورت ہے۔

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) کے لیے آپ کو صرف کرنل لوڈ کرنے کے لیے مزید کئی فائلیں (ایس ڈی کارڈ، اے ٹی ایف، یو بوٹ کے لیے پری لوڈر) لکھنے کی ضرورت ہے۔ یہ موضوع اب بھی ہے۔ ترقی کر رہا ہےلیکن ہمارے لیے اہم بات یہ ہے کہ یہ کام کرتا ہے اور ٹھیک ہے۔

اب میں eMMC کے ذریعے ڈاؤن لوڈ کرتا ہوں، سچ پوچھیں تو، میں اسے استعمال نہیں کرتا، ایک SD کارڈ کافی ہے، لیکن میں نے اسے کام کرنے میں کافی وقت صرف کیا، لہذا اسے مضمون میں رہنے دیں۔

آپریٹنگ سسٹم کا انتخاب۔ ارمبین

پہلا ایپلیکیشن کام ایک وی پی این شروع کرنا ہے، قدرتی طور پر وائر گارڈ۔ یہ فوری طور پر دریافت کیا گیا تھا کہ دانا کی طرف یہ جمع نہیں تھا اور کوئی ہیڈر نہیں تھے۔ میں نے کرنل کو دوبارہ بنایا اور جیسا کہ x86 کے ساتھ میری عادت ہے، DKMS کا استعمال کرتے ہوئے کرنل ماڈیول کو اسمبل کیا۔ تاہم، arm64 پر چھوٹی افادیت کی تعمیر کی رفتار نے مجھے ناخوشگوار طور پر حیران کر دیا۔ اور پھر ایک اور کرنل ماڈیول کی ضرورت تھی، وغیرہ۔ عام طور پر، یہ پتہ چلتا ہے کہ دانا سے متعلق ہر چیز کو گرم x86 لیپ ٹاپ پر بہترین طور پر جمع کیا جاتا ہے، پھر سادہ کاپی کرکے، دوبارہ شروع کرکے اور ٹیسٹ کرکے R64 میں منتقل کیا جاتا ہے۔

ایک اور چیز یوزر اسپیس کا حصہ ہے۔ Debian کو منتخب کرنے کے میرے معاملے میں، arm64 فن تعمیر کے لیے سب کچھ پہلے سے ہی packages.debian.org پر ہے اور کسی بھی چیز کو دوبارہ بنانے کی ضرورت نہیں ہے۔

دوسری سائیکل تیار نہ کرنے کے لیے، I پورٹ ارمبیان BPI R64 پر۔
یا اس کے بجائے، یہ: یوزر اسپیس کا حصہ آرمبین ہے، اور دانا ذخیرہ سے لیا گیا ہے فرینک-A تازہ ترین تصویر ڈاؤن لوڈ کی جا سکتی ہے۔ یہاں.

R64 کے سافٹ ویئر حصے کی ترقی پر تمام سرگرمیاں جاری ہیں۔ فورم. عام طور پر، مینوفیکچرر خود Openwrt کے لیے راؤٹر کو مقبول بنانے کی کوشش کرتا ہے، لیکن جرمنی سے تعلق رکھنے والے ڈویلپر فرینک کی سرگرمی کی بدولت، تمام خصوصیات جلد ہی Debian کے لیے دانا میں ختم ہو جاتی ہیں۔ حیرت کی بات یہ ہے کہ فرینک ہر فورم تھریڈ میں ایکٹو ہے۔

ورک اسپیس کی تنظیم: تاریں۔

الگ سے، میں آپ کو بتانا چاہوں گا کہ کس طرح، ڈیولپمنٹ/ٹیسٹنگ کے دوران، ایک میز پر SBC (صرف BPI نہیں) رکھیں تاکہ پورے کمرے/دفتر میں انٹرنیٹ کے ذریعہ سے اس پر ایتھرنیٹ کیبل نہ چل سکے۔ حقیقت یہ ہے کہ، ایک طرف، آپ کو انٹرنیٹ کے ساتھ ہارڈ ویئر کا ایک ٹکڑا فراہم کرنے کی ضرورت ہے، لیکن دوسری طرف، ہارڈ ویئر کے اس ٹکڑے میں موجود ہر چیز ٹوٹ سکتی ہے، اور سب سے پہلے وائی فائی۔

سب سے پہلے، میں نے ایک سستا USB-Wifi "سیٹی" خریدنے کا فیصلہ کیا، اسے BPI پر موجود واحد پورٹ میں لگائیں اور تاروں کو بھول جائیں۔ ایسا کرنے کے لیے، میں نے ایک سستا TP-LINK TL-WN725N USB 2.0 خریدا، لیکن بہت جلد یہ واضح ہو گیا کہ یہ نہیں چلے گا: سیٹی کے کام کرنے کے لیے، آپ کو کرنل ڈرائیور کی ضرورت ہے، جو یقیناً وہاں نہیں تھا۔ (بعد میں میں نے ضروری RTL8XXXU ڈرائیور کو جمع کیا، لیکن یہ اب بھی ناقابل عمل ہے)۔ اور ایتھرنیٹ کیبل نے کچھ دیر کے لیے کمرے کی شکل خراب کر دی۔

نتیجے کے طور پر، میں Tenda MW3 (وائی فائی میش سسٹم) کی مدد سے کیبل سے چھٹکارا پانے میں کامیاب ہوا: میں نے میز کے نیچے صرف ایک مکعب رکھا اور BPI کو بعد کے LAN پورٹ سے ایک میٹر لمبی ایتھرنیٹ کیبل کے ساتھ جوڑ دیا۔ کامیابی.

وائر گارڈ، آر کے این، برڈ

ایک چیز جس کے لیے میں Banana PI استعمال کرنا چاہتا ہوں وہ ہے RKN کی طرف سے بلاک کردہ سائٹس تک مفت رسائی حاصل کرنا، خاص طور پر، تاکہ ٹیلی گرام اور سلیک کالز کام کر سکیں۔ Habré پر مضامین پہلے ہی اس موضوع پر تجویز کیے جا چکے ہیں: وقت, два, تین.

میں نے Ansible کا استعمال کرتے ہوئے بالکل اس حل کو تعینات کیا: لنک.

فرض کیا جاتا ہے کہ VPS Ubuntu 18.04 چلا رہا ہے۔ میں نے یورپ میں دو میزبانوں پر فعالیت کی جانچ کی: Amazon اور Digital Ocean۔

لہذا، ہم نے 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

یہاں دلیل ہمیشہ موجودہ وی ​​پی این ہوتی ہے، اور اصل وی پی ایس کا نام متغیر میں ترتیب دیا جاتا ہے (اس صورت میں یہ پیرس-وی پی این-اوس-ٹی2-مائیکرو-1 ہے):

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

اوہ ہاں، ان تمام کارروائیوں سے پہلے آپ کو فولڈر میں راز (خاص طور پر وائر گارڈ کیز) بنانے کی ضرورت ہے ./secrets، ڈائریکٹری کی طرح نظر آنا چاہئے۔ تو.

ازگر میں جوابی آٹومیشن

آپ محسوس کر سکتے ہیں کہ YAML فارمیٹ میں ہونے کے بجائے، جوابی کمانڈز کو Python اسکرپٹس میں انکوڈ کیا گیا ہے۔ مقابلے کے لیے، برڈ ڈیمون کو معمول کے مطابق کیسے فعال کیا جائے:

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

اور ازگر کے ذریعے ایسا کیسے کریں:

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 پر ابھی تک کوئی دستاویز نہیں ہے، لیکن میں اس مسئلے کو بعد میں ٹھیک کروں گا۔

وہ کیا سوچتا ہے۔ upstream کے اس کے بارے میں

نگرانی۔ پرومیتھیس

کل: ٹیلیگرام کام کرتا ہے، لنکڈ ان اور پورن ہب بھی، عام طور پر صارف کا تجربہ ٹھیک ہے۔ لیکن چینی ہارڈ ویئر سمیت ہر چیز ٹوٹ سکتی ہے۔

کرنل اپڈیٹس بھی دلچسپ ہو سکتے ہیں: مثال کے طور پر، میں کرنل 5.4 => 5.6 کو اپ ڈیٹ کرنا چاہتا تھا، ٹھیک ہے، وائر گارڈ باکس سے باہر ہے، پیچ کرنے کی ضرورت نہیں ہے... جلد ہی نہیں کہا گیا: میں نے بڑی محنت سے پیچ کو 5.4 سے منتقل کر دیا 5.6 تک، دانا شروع ہو گیا، VPS کی سرنگ پنگ ہو گئی، لیکن پرندہ "BGP Error" کی غلطی سے رابطہ نہیں کر سکتا... "میں خوف میں واپس آ گیا" (c) 5.4 تک؛ TODO میں 5.6 پر منتقلی ملتوی کر دی گئی۔

لہذا، راؤٹر اور VPS کو انسٹال کرنے کے علاوہ، میں نے مانیٹرنگ شامل کی (x86 Ubuntu 18.04 پر)، جو کہ مندرجہ ذیل اجزاء کے ساتھ علیحدہ میزبان پر انسٹال ہے:

  • prometheus, alertmanager, blackbox_exporter - سب ڈوکر میں
  • میٹل میٹز/الرٹ مینجر بوٹ بوٹ کا استعمال کرتے ہوئے ٹیلیگرام چینل کو الرٹس بھیجے جاتے ہیں - ڈوکر میں بھی
  • بوٹ کے لیے ٹور، تاکہ بوٹ انٹرنیٹ ہونے پر حالات کو آگاہ کر سکے، لیکن ٹیلیگرام پھر بھی کام نہیں کرتا، اور بوٹ خود رابطہ نہیں کر سکتا۔
  • لاگو انتباہات: NodeVPNTroubles (VPS پر کوئی پنگ نہیں)، BirdVPNTroubles (کوئی برڈ سیشن نہیں)، AntifilterDownloadTroubles (بلاک IP ایڈریس لوڈ کرنے میں خرابی)، SiteTroubles (بدقسمت ٹیلیگرام دستیاب نہیں ہے)
  • سسٹم الرٹس، مثال کے طور پر، HostGrowingDiskReadLatency (سستا SD کارڈ پڑھنے کے قابل نہیں ہو جاتا ہے)

مانیٹرنگ سیٹ اپ کی مثال:

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

Prometheus کے لیے Auto Discovery /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، anycast فیل اوور

ہر چیز کے علاوہ، میں نے دو فراہم کنندگان سے رابطہ قائم کرنے کا منصوبہ بنایا تاکہ انٹرنیٹ کام کرتا رہے، چاہے ایک فراہم کنندہ کو نیٹ ورک کے ساتھ مسائل ہوں، یا وہ انٹرنیٹ وغیرہ کے لیے ادائیگی کرنا بھول گئے ہوں، اور دیگر انسانی عوامل۔

ملٹی وان کے موضوع پر صارف کا جدید ترین تجربہ بیان کیا گیا ہے۔ یہاں 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 لیتے ہیں، ہر ایک کو ایک فراہم کنندہ سے جوڑتے ہیں، انہیں ایک دوسرے سے جوڑتے ہیں اور برڈ/OSPF کے ذریعے ایک دوسرے کے ساتھ متحرک روٹنگ بناتے ہیں۔

اگلا، اگر سروس دستیاب ہے تو ہم ہر ایک پر ایک ہی IP ایڈریس کی تشہیر کرتے ہیں (انٹرنیٹ، DNS)۔ یعنی ہم پہلے سے طے شدہ راستہ خود طے نہیں کریں گے بلکہ پرندے کے ذریعے کریں گے۔ میں نے حل کی جاسوسی کی۔ یہاں .

اس فعالیت کو ابھی تک نافذ نہیں کیا گیا ہے، کپٹی کورونا وائرس نے یہاں ایک چال چلائی (سب کچھ Aliexpress سے نہیں آیا؛ ایک اور آن لائن اسٹور، لیٹا نے ایک ہفتے میں ڈیلیور کرنے کا وعدہ کیا تھا، لیکن ایک ماہ سے زیادہ کا عرصہ گزر چکا ہے؛ دوسرے فراہم کنندہ کے پاس وقت نہیں تھا۔ قرنطینہ سے پہلے کیبل کو بڑھانے کے لیے، صرف کیبل کے لیے دیوار میں سوراخ کرنے میں کامیاب ہوا)۔

R64 آرڈر کرنے کا طریقہ

بورڈ خود سرکاری اسٹور میں ہے۔ SinoVoip.
فوری طور پر آرڈر کرنا بھی بہتر ہے:

  • غذائیت + EU یا US پلگ کے معیار کو مطلع کریں۔
  • ہیٹ سنک: ریڈی ایٹرز/پنکھے؛ کیونکہ CPU اور سوئچ چپ دونوں ہی گرم ہو رہے ہیں۔
  • وائی ​​فائی اینٹینا، مثال کے طور پر

ایک اہم بات ہے - کچھ عرصے سے سرکاری اسٹور میں ڈیلیوری کی قیمت ناکافی حد تک زیادہ ہو گئی ہے۔ مینیجر جوڈی ہوانگ نے مجھے قائل کیا کہ کوئی غلطی نہیں ہے، اور آپ ePacket کو $5 میں منتخب کر سکتے ہیں، لیکن میں نے دیکھا کہ روس کے لیے صرف EMS ہے>$33۔ ناخوشگوار، لیکن تنقیدی نہیں۔ مزید برآں، اگر آپ ڈیلیوری کے لیے کسی دوسرے ملک کا انتخاب کرتے ہیں (میں تمام براعظموں سے گزرا ہوں)، تو ڈیلیوری کی لاگت $5 ہوگی۔ روسوفوبس؟... لیکن پھر میں نے پایا کہ فرانس کے لیے ڈیلیوری کی قیمت بھی ~30$ ہے، اور میں پرسکون ہو گیا۔

نتیجے کے طور پر، جوڈی نے آرڈر دینے کی پیشکش کی، لیکن ادائیگی نہیں کی (اشارہ کرنا: کارڈ پر کم رکھیں تاکہ خودکار ادائیگی نہ ہو؛ اسے لکھیں اور وہ ڈیلیوری کی قیمت کو نارمل کر دے گی۔ کامیابی.

مسائل

ابھی تک سب کچھ ٹھیک کام نہیں کر رہا ہے۔

کارکردگی

Ansible=Python کمانڈز 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

وائی ​​فائی

Wifi کام کرتا ہے، لیکن 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
...

صرف دوبارہ شروع کرنے میں مدد ملتی ہے۔ ہمیں آگے بڑھنے کی ضرورت ہے۔ حل.

ایتھرنیٹ

ایتھرنیٹ کام کرتا ہے، لیکن R64 سے ~XNUMX گھنٹے کے بعد پیکٹ (DHCP) آنا بند ہو جاتے ہیں۔
انٹرفیس کو دوبارہ شروع کرنے میں مدد ملتی ہے:

ifdown br0; sleep 30; ifup br0

ڈرائیور نیا ہے، اسے ابھی تک دانا میں قبول نہیں کیا گیا، مجھے امید ہے کہ یہ چینی لینڈن چاو ہے اسے ختم کرتا ہے.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں