Orange Pi 2G-IOT: خريطة حقل الألغام



منذ بعض الوقت ، عُرِض علي العمل قليلاً مع جهاز كمبيوتر أحادي اللوحة Orange Pi 2G-IOT (2G مدمج والسعر يبدو جذابًا للغاية). بعد قراءة منشور عن Orange Paradise ، اعتقدت أنني سأكرر هذا المسار دون صعوبة ، خاصة وأنني مع Linux أنا على "أنت" (أو بالأحرى ، لقد فكرت قبل ثلاثة أسابيع) ولدي بالفعل تجربة مع Raspberry Pi 2 B +. في الممارسة العملية ، اتضح أن هذا المسار أطول من ذلك بكثير. كان هناك شعور بأن أصدقائنا الصينيين خلقوا صعوبات عمداً (وأحيانًا بسخرية خاصة). إذا كنت تريد حفظ هذا المنتدى وشرائه ، فاقرأ أولاً هذا المنشور وفكر مرة أخرى.

إن أمكن ، سأحاول كبح المشاعر أو على الأقل ترجمتها إلى فكاهة.
لذلك ، هنا أحصل على لوحة وبطاقة SD من الصف العاشر. دعنا نذهب.

يشير كل شيء مكتوب أدناه إلى طراز Orange Pi 2G-IOT ، ولكن في دردشة Telegram (ابحث عن "Orange Pi وليس فقط") يقولون إن نماذج 2G و 3G و 4G تتصرف بنفس الطريقة (سيئة على قدم المساواة). لا ينطبق المكتوب ، على سبيل المثال ، على Orange Pi PC و Orange Pi One ، وهما ثابتان وفقًا للمراجعات.

مينا رقم 1 (التدريب): تنزيل صورة نظام التشغيل


يبدو أنه يمكن أن يكون أسهل؟ نذهب إلى موقع الشركة المصنعة وتنزيل. ومع ذلك ، تؤدي جميع الروابط إلى mega.nz ، التي تجمعها مباشرة في المتصفح. لم يسحب جهاز الكمبيوتر المحمول الرخيص ذو سعة 4 جيجابايت من ذاكرة الوصول العشوائي هذه المهمة وسقطت علامة التبويب. يمكن للمرء استخدام برنامج خاص للتنزيل من Mega ، لكنه لم يلهمني في الثقة (والأهم من ذلك أن بعض الناس يكتبون على الإنترنت أن البرنامج معترف به من قبل برامج مكافحة الفيروسات على أنه برامج ضارة). خيارات الحل: قم بالتنزيل من موقع غير رسمي (على سبيل المثال ، هنا ) ، ونشر جهازًا افتراضيًا ووضعه عميلًا لتنزيله من Mega ، واطلب من شخص لديه جهاز كمبيوتر أكثر حداثة تنزيل الصورة.

أكثر من ذلك بقليل عن أنظمة تشغيل البرتقال
بالنسبة للعديد من موديلات Orange ، يوصي المستخدمون بشركة Armbian ، لكنه لم يثر إعجابي على تطبيق 2G-IOT: يبدو كرسبيبيان أضيق الحدود. بالمناسبة ، لا توجد صورة لـ 2G-IOT على موقع Armbian ، فقط على موقع Orange Pi. جربت أيضًا خادم Ubuntu ، لكنه لم يظهر أي علامات على الحياة على الإطلاق. يبدو أن نظام NAND المدمج في Android يعمل ، لكنني لم أدرسه على الإطلاق ، على الأرجح ، وبدون استخدام شاشة تعمل باللمس ، فإنه قليل الفائدة. بالمناسبة ، أذكرك بأن جهاز التمهيد يتم تحديده من خلال موضع وصلة المرور في زاوية اللوحة ، بشكل افتراضي يوجد تمهيد من ذاكرة NAND المدمجة.

مينا رقم 2: الوصول إلى الإنترنت عبر المودم


بعد حرفي تكوين wvdial و pppd على الإنترنت ، اكتشفت فجأة أن طلبات ping كانت جيدة ، لكن حزم TCP العادية لم تكن بأي حال من الأحوال:

orangepi@OrangePi:~$ curl --interface ppp0 195.201.201.32 curl: (7) Failed to connect to 195.201.201.32 port 80: Connection timed out orangepi@OrangePi:~$ curl --interface ppp0 195.201.201.32 curl: (7) Failed to connect to 195.201.201.32 port 80: Connection timed out orangepi@OrangePi:~$ curl --interface ppp0 195.201.201.32 curl: (7) Failed to connect to 195.201.201.32 port 80: Connection timed out orangepi@OrangePi:~$ curl --interface wlan0 195.201.201.32 46.0.208.54 orangepi@OrangePi:~$ ping 195.201.201.32 -I ppp0 PING 195.201.201.32 (195.201.201.32) from 10.33.64.21 ppp0: 56(84) bytes of data. 64 bytes from 195.201.201.32: icmp_seq=1 ttl=52 time=664 ms 64 bytes from 195.201.201.32: icmp_seq=2 ttl=52 time=240 ms 64 bytes from 195.201.201.32: icmp_seq=3 ttl=52 time=234 ms 64 bytes from 195.201.201.32: icmp_seq=4 ttl=52 time=246 ms 64 bytes from 195.201.201.32: icmp_seq=5 ttl=52 time=241 ms 64 bytes from 195.201.201.32: icmp_seq=6 ttl=52 time=237 ms ^C --- 195.201.201.32 ping statistics --- 7 packets transmitted, 6 received, 14% packet loss, time 6032ms rtt min/avg/max/mdev = 234.634/310.971/664.998/158.370 ms orangepi@OrangePi:~$ 

طلب الحل edtun : https://www.linux.org.ru/forum/admin/12135523 ، على الرغم من أنني أعترف أنه ربما كان أكثر بساطة.

نبهت على الفور أن مودم IMEI مليء بالأصفار. لحسن الحظ ، لا يهتم مشغل الاتصالات بالأحمر والأبيض بهذا. (بالمناسبة ، لا يحتوي WiFi المدمج بالمثل على عنوان MAC: يتم إنشاؤه عشوائيًا مع كل إزعاج لمصدر الطاقة.)

مينا رقم 3: منفذ USB


تمسك صفارة WiFi في موصل USB و ... لا شيء يحدث. عرض lsusb منفذ USB فارغ. أظهر القليل من الحفر أن اللوحة بها فقط USB واحد فقط. افتراضياً ، يتم توصيله بمنفذ microUSB. للتبديل إلى مضيف USB عادي ، تحتاج إلى تبديل وصلات العبور الموجودة على اللوحة ، والتي توجد بجانب العبور لتحديد التمهيد. وصفهم على w3bsit3-dns.com:
الحل: بدل لاعبي الوصلات إلى الوضع: 1234 للأسفل ، 5678 للأعلى

عندها فقط وجدت إشارة بسيطة لهذه الفروق الدقيقة في دليل Orange Pi.

مينا رقم 4: السائقين


الآن تم اكتشاف الجهاز في النظام ، يعرض lsusb رمز الشركة المصنعة والمنتج ، ولكن لم يتم اكتشاف واجهة الشبكة اللاسلكية في النظام. لأن المطورين لم يقدموا برامج تشغيل لمحولات WiFi باللون البرتقالي. ولا شيء على الإطلاق. يوجد برنامج تشغيل فقط لشبكة WiFi المدمجة ، لا أكثر ولا أقل. وماذا نفعل عندما لا يكون لدينا برنامج تشغيل لجهازنا؟ هذا صحيح ، دعنا نجمعهم من الكود المصدري !

المنجم رقم 5: الاستعداد للبناء


في المراسلات ، اقترح bad__day التجميع مباشرة على Orange Pi. ربما هذا ممكن ، لكنني فشلت.

بالنسبة إلى Orange Pi ، قام المطورون بصنع نظام Orange Pi Build ، بمساعدة نظريًا ، في بناء نواة أو وحدات ، يكفي اتباع الإرشادات التي تظهر على الشاشة. وترد تعليمات مفصلة في دليل بدءا من الصفحة 61. يبدو أن اتبع فقط ، وسيكون كل شيء على ما يرام ، ولكن لا.

أولاً ، حتى لا أقوم بتحرير جميع التبعيات يدويًا على جهاز الكمبيوتر الخاص بي (أقوم بتحديث البرامج بانتظام ، هذا شيء عظيم ، لكن ليس هذه المرة) ، قمت بنشر جهاز افتراضي باستخدام Ubuntu 16.04 ونفذت جميع الإجراءات هناك. ثانياً ، تسلل خطأ في البرامج النصية في مكان ما ، ولم يضع نظام البناء سلسلة أدوات للتجميع عبر الأنظمة الأساسية. يتم حل هذا مع عكاز:

  1. وضع apt-get'om يدويًا مجموعة الأدوات للتجميع المتداخل تحت ARM.
  2. عمل روابط:
     mkdir $HOME/OrangePiRDA/toolchain/bin ln -s $(which arm-linux-gnueabi-ld) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-ld ln -s $(which arm-linux-gnueabi-gcc-4.9) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-gcc ln -s $(which arm-linux-gnueabi-g++-4.9) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-g++ ln -s $(which arm-linux-gnueabi-ar) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-ar ln -s $(which arm-linux-gnueabi-nm) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-nm ln -s $(which arm-linux-gnueabi-objcopy) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-objcopy ln -s $(which arm-linux-gnueabi-size) $HOME/OrangePiRDA/toolchain/bin/arm-linux-gnueabi-size 
    يرجى ملاحظة: يتم اتخاذ المترجم الإصدار 4.9 ، لن يتم جمع أي شيء على الإصدارات أعلاه.
  3. افتح OrangePiRDA / scripts / Prepare_toolchain.sh وفقط في الحالة ، قم بالتعليق على الأسطر التي تشير إلى toolchain.

في الواقع ، كل هذه البرامج النصية فقط اتصل apt-get install -y ... وقم بعمل. لا يعرض النص للمستخدم تغيير التكوين بأي طريقة (أو لم أجده؟).

ولكن بعد كل شيء ، لا شيء يمنعنا من الاتصال بأنفسنا

 make menuconfig 

وعلامة السائقين اللازمة. نحن نفعل هذا ونجمع مرة أخرى (الآن فقط الوحدات ممكنة) و ...

المنجم رقم 6 (مع جهاز استشعار الحركة بالأشعة تحت الحمراء والمفجر): مجموعة السائق


... ثم بدأ البرنامج النصي بطرح أسئلة حول كيفية تكوين النواة. استدعى مكوِّن النواة القديم ، لكن لماذا؟ ما هو الخطأ؟

اتضح أن Makefile هو مكتوب للتحقق من التغييرات التكوين الوقت (!)!



يقرأ التعليق حرفيًا "كان شخص ما يحفر". (في لقطة الشاشة ، Makefile المعدلة بالفعل ، وصفت menuconfig.) حاولت الاتصال جعل oldconfig ، لم ألاحظ أن هذا قد تغير أي شيء في مكان ما. حسنًا ، الآن بعد استدعاء menuconfig أثناء التجميع ، ليس الأمر مخيفًا. أدعو التجمع مرة أخرى ، لاحظت الجمعية أن "شخص ما كان يحفر في التكوين" ، ويدعو menuconfig ، أخرج وأنتظر الانتهاء. الآن تخيل دهشتي عندما لم أجد السائق الذي اخترته.

إخلاء المسؤولية قبل القراءة
في هذه المرحلة ، تركت فهم ما يحدث ، وفقدت أخيراً اتصالي بالواقع والحس السليم والحضارة من كوكب روس 128 ب. لقد تجاوزت حدود معرفتي ، من كل أصدقائي و TARDIS. لقد بدأت في إنشاء هراء كامل ، وكان الهدف الوحيد هو جمع هذا السائق [الخاضع للرقابة] بأي ثمن. إذا أمسك رأسك بأكثر من مرتين عند قراءة النص أعلاه ، فلا تقرأ النص أدناه. سيكون أكثر هدوءا لك ولكم. إذا أمكنك تقديم توضيح واضح لما يحدث وشرح أين أكون مخطئًا ، ثم أخبرني. من فضلك



حسنا ، نحن نتسلق لفهم. اتضح أن يجعل إنشاء ملف modules.order ، الذي يصف جميع الوحدات التي سيتم تجميعها. وحتى بعد تغيير كل التكوينات وحفظها ، يتم ملء هذا الملف بنفس المجموعة. لم أتوصل إلى أي شيء أفضل من إضافة خطوط يدويًا إليه (يتم تجميع صفيرتي على مجموعة شرائح RTL8192CU):

 kernel/driver/net/wireless/rtlwifi.ko kernel/driver/net/wireless/rtlwifi/rtl8192cu.ko 

تم استبدال كافة المراجع إلى هذا الملف في Makefile بواسطة modules.order.fake. أبدأ التجميع. هذه المرة ، ذهب التجميع ، لكن تم إيقافه ، لأنه لا يوجد ملف مشابه في مجلد رمز مصدر rtlwifi. قمت بإعادة تسمية ملفات modules.order.fake إلى modules.order في هذا المجلد والمجلدات الفرعية ، وكانت هذه آخر مغامرة لي في بناء برنامج التشغيل. بعد ذلك ، أظهر لي النظام menuconfig مرتين أخريين ، كما لو كان يسألني "هل تريد حقًا هذا؟" ، لكن ما زال يجمع ثلاثة ملفات .ko إضافية ، والتي انتهى بها الأمر كما هو متوقع.

مينا رقم 7: عمل مشترك لشبكة WiFi خارجية ومودم


بعد تشغيل بعض الألعاب باستخدام airodump والتأكد من قدرة الجهاز على التقاط الحزم على الأقل في وضع الشاشة ، قررت التحقق من المودم مرة أخرى. القيام به

 sudo wvdial 

ويخرج مصباح LED الموجود على محول WiFi الخارجي ، وسقوط SSH. ثم قرأت في السجلات التي تم قطع اتصال المحول. الفكر الأول هو مشكلة التغذية. حتى تلك اللحظة ، كنت أستخدم الشاحن الخاص بـ 1.5 Amperes ، وتوصي الشركة المصنعة بما يصل إلى 3 أمبير (أين كثيرًا؟ حتى أنها لا تأكل أمبير واحد ). في متناول اليد كان شاحن 2 أمبير ، والتي لسنوات تغذية بانتظام التوت بي.

في الوقت الحالي ، لم أجد أي حل مستقر لهذه المشكلة. فيما يلي بعض محاولات الحل:

  • مع احتمال بنسبة 80 ٪ ، يمكنك تعطيل واي فاي خارجي باستخدام:

     chmod 777 /sys/bus/usb/drivers/usb/unbind echo 1-1 > /sys/bus/usb/drivers/usb/unbind 

    ثم قم بتشغيل wvdial ، والذي سيحاول تأسيس اتصال مع 1-3 محاولات ويمكنك الاتصال بالإنترنت. في 20 ٪ من جميع أنواع معلقة ومواطن الخلل.
  • مرة واحدة ، عن طريق الصدفة ، تبين أنه تم قتل wvdial ، ولكن بقيت pppd تعمل (كيف يمكن أن تكون؟) ، وبعد ذلك ارتفع واي فاي خارجي (انظر أعلاه ، نكتب ربط بدلاً من إلغاء الربط) وكان هناك اتصال من خلال المودم. لم يكن من الممكن إعادة إنتاج الوضع.
  • اتضح أنه بدون إعادة بناء النواة ، يمكنك إيقاف تشغيل الطاقة عن طريق USB باستخدام مثل هذه الأداة المساعدة مع الأمر

     ./hub-ctrl -h 0 -P 1 -p 0 

    وتشغيل السلطة
     ./hub-ctrl -h 0 -P 1 -p 1 
    في 2G-IOT ، لا يمكن التنبؤ بالسلوك: يمكن أن يكون انقطاع التيار الكهربائي لمدة ثانية واحدة أو قبل إعادة التشغيل. في بعض مراحل القمر ، تؤدي محاولة إرجاع الطاقة إلى تجميد اللوحة.
  • قم بتبديل وصلات العبور إلى OTG (1234 للأعلى ، 5678 للأسفل) ، وقم بتطبيق الطاقة على أرجل GPIO 2 و 6 (الرنين ، فهي متصلة مباشرة بقوة microUSB)

    Pinout


    قم بتوصيل محول WiFi عبر محول USB-OTG من الهاتف الذكي. لا يرى النظام جهاز USB على الإطلاق. ربما تحتاج إلى اللعب بشكل أكثر ثباتًا مع لاعبي التنس.

لم يتم اختباره ، ولكنه قد ينجح (خطط لتجربة كل هذه الخيارات):

  • محول واي فاي آخر.
  • مزود طاقة مستقر للغاية مع أقصى تيار 3 أمبير.
  • قوة اضافية لأقدام USB.
  • البنزين والمباريات.

بشكل عام ، تبدو المهمة مثل سحب بطانية ثلاثية اللون فوق برتقالي رباعي الزوايا.

هذا كل شيء الآن.

شكر وتقدير
أود أن أعرب عن امتناني لكل من bad__day و edtun و A. Repin ومستخدمي المنتدى من w3bsit3-dns.com والموظفين القدامى في دردشة Telegram و Kotu ، الذين استمعوا إلي بصبر طوال الوقت ولم يحاولوا الهرب تقريبًا.


UPD: اليوم أحضروا لي مصدر طاقة بإخراج 5V 3A. باستخدامه ، كان من الممكن تشغيل المودم ومحول USB WiFi في نفس الوقت. يرش المودم بالأخطاء ، ويتوقف عن الاستجابة ، ولكنه في المتوسط ​​يتصل من المحاولة الثالثة. بعد ذلك ، يمكنك استخدام USB WiFi.

لتلخيص.


لوحة Orange Pi 2G-IOT أحادية اللوحة تكون خامًا ولا تدعمها الجهة المصنعة تقريبًا. حتى في الأمور البسيطة ، حيث يبدو أن لا شيء ينذر بالخطر ، قد يحدث خطأ ما. إذا كنت بحاجة إلى استخدام جهاز مزود بإمكانية الوصول إلى الإنترنت عبر شبكة جوال ولم تكن متأكدًا من قدرتك على التعامل مع Orange Pi ، فمن الأفضل أن تدفع أكثر وأن تأخذ شيئًا أكثر موثوقية وتصحيح الأخطاء. توفير الوقت والأعصاب.

Source: https://habr.com/ru/post/ar440960/


All Articles