يعمل Linux على بطاقة العمل الخاصة بي

ترجمة مقال من مدونة المهندس جورج هيليارد


نقر

أنا مهندس أنظمة مدمجة. في وقت فراغي ، غالبًا ما أبحث عن ما يمكن استخدامه في تصميم الأنظمة المستقبلية ، أو شيء من فئة اهتماماتي.

أحد هذه المجالات هو أجهزة الكمبيوتر الرخيصة التي يمكنها دعم Linux ، والأرخص كان ذلك أفضل. لذلك ، دفنت نفسي في حفرة أرنب عميقة من المعالجات غير المعروفة.

فكرت: "هذه المعالجات رخيصة جدًا بحيث يمكن تسليمها مجانًا مجانًا". وبعد فترة من الوقت ، جاءت الفكرة لي لصنع بطاقة عارية لنظام التشغيل Linux في عامل شكل بطاقة أعمال.

بمجرد التفكير في الأمر ، قررت أنه سيكون من الرائع جدًا القيام به. لقد رأيت بالفعل بطاقات أعمال إلكترونية من قبل ، وكان لديها العديد من الميزات المثيرة للاهتمام ، مثل محاكاة بطاقات الفلاش ، الأضواء الوامضة ، أو حتى نقل البيانات اللاسلكي. ومع ذلك ، لم أر بطاقات عمل مع دعم Linux.

لذلك أنا جعلت نفسي واحد.

هذه نسخة كاملة للمنتج. تم إنشاء الحد الأدنى الكامل للكمبيوتر على ARM ، والذي يقوم بتشغيل إصدار خاص من Linux ، باستخدام Buildroot.



في الزاوية لديها منفذ USB. إذا قمت بتوصيله بجهاز كمبيوتر ، فسيتم تحميله في غضون 6 ثوانٍ ويمكن رؤيته كبطاقة فلاش ومنفذ تسلسلي افتراضي ، يمكنك من خلاله إدخال غلاف البطاقة. على محرك الأقراص المحمول ، يوجد ملف README ، ونسخة من سيرتي الذاتية وبعض الصور الخاصة بي. هناك العديد من الألعاب في اللعبة ، والكلاسيكية من Unix مثل ثروة و rogue ، ونسخة صغيرة من لعبة 2048 ومترجم MicroPython.

كل هذا يتم مع رقاقة فلاش صغيرة جدا من 8 ميغابايت. يناسب أداة تحميل التشغيل 256 كيلو بايت ، ويستغرق kernel 1.6 ميجابايت ، ونظام الملفات الجذر بأكمله - 2.4 ميجابايت. لذلك ، لا يزال هناك مساحة كبيرة لمحرك أقراص فلاش افتراضي. يحتوي أيضًا على دليل رئيسي قابل للكتابة - إذا فعل شخص ما شيئًا يريد حفظه. يتم تخزين هذا أيضا على رقاقة فلاش.

الجهاز كله يكلف أقل من 3 دولارات. انها رخيصة بما فيه الكفاية ليتم توزيعها. إذا تلقيت مثل هذا الجهاز مني ، فهذا يعني على الأرجح أنني أحاول إقناعك.

تصميم وتجميع


لقد قمت بتصميم وتجميع كل شيء بنفسي. هذه هي وظيفتي ، وأنا أحبها ، وكانت معظم الصعوبات تتمثل في العثور على أجزاء رخيصة كافية لمثل هذه الهواية.

كان اختيار المعالج هو أهم قرار يؤثر على تكلفة وجدوى المشروع. بعد البحث النشط ، اخترت F1C100s ، وهو معالج Allwinner غير معروف نسبيًا ، وهو مُحسَّن من حيث التكلفة (أي أنه رخيص الثمن). في حالة واحدة على حد سواء RAM و CPU. اشتريت المعالجات على تاوباو. جميع المكونات الأخرى المشتراة في LCSC.

لقد طلبت لوحات من JLC. لقد دفعت 10 نسخ مقابل 8 دولارات. جودتها مثيرة للإعجاب ، خاصة بالنسبة للسعر ؛ ليست مرتبة مثل OSHPark ، لكنها لا تزال تبدو جيدة.

أنا جعلت أول دفعة ماتي الأسود. كانت تبدو جميلة ، ولكن كان من السهل جدا المتسخة.



حدثت بعض المشاكل في الدفعة الأولى. أولاً ، لم يكن موصل USB طويلاً بما يكفي ليناسب بشكل آمن أي منافذ USB. ثانياً ، لم يتم عمل مسارات الفلاش بشكل صحيح ، لكنني تحايلت على ذلك عن طريق ثني جهات الاتصال.



بعد فحص كل شيء في العمل ، طلبت مجموعة جديدة من اللوحات ؛ يمكنك رؤية صورة لأحدهم في بداية المقال.

نظرًا لصغر حجم كل هذه المكونات الصغيرة ، قررت اللجوء إلى إنحسر اللحام باستخدام موقد رخيص . لدي إمكانية الوصول إلى قاطع ليزر ، لذلك قمت بقطع استنسل لحام من فيلم لأغشية تغليف عليه. تحولت الاستنسل بشكل جيد. تتطلب ثقوب جهات اتصال المعالج التي يبلغ قطرها 0.2 مم عناية خاصة للتصنيع عالي الجودة - كان من الأهمية بمكان تركيز الليزر بشكل صحيح وتحديد قوته.


لوحات أخرى جيدة لعقد المجلس عند تطبيق لصق.

أنا طبقت لصق جندى ورتبت المكونات يدويا. لقد تأكدت من عدم استخدام الرصاص في أي مكان في العملية - جميع الألواح والمكونات واللصق متوافقة مع RoHS - حتى لا أتعذّب على الضمير عندما أقوم بتوزيعها على الناس.


فاتني قليلاً مع هذه الدفعة ، لكن معجون اللحام يغفر الأخطاء ، وكل شيء سار على ما يرام

استغرق كل مكون حوالي 10 ثوانٍ لوضعه ، لذا حاولت أن أجعل عددهم ضئيلًا. يمكن العثور على مزيد من التفاصيل حول تصميم الخريطة في مقالتي التفصيلية الأخرى.

قائمة المواد والتكلفة


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

عنصرالسعر
F1C100s1.42 دولار
PCB0.80 دولار
فلاش 8MB0.17 دولار
جميع المكونات الأخرى0.49 دولار
في المجموع2.88 دولار


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

الاحتمالات


ماذا أقول؟ تُحمّل الخريطة نظام Linux اقتصاصًا كبيرًا للغاية في 6 ثوانٍ. نظرًا لعامل الشكل والتكلفة ، لا تحتوي البطاقة على I / O ، أو دعم الشبكة ، أو قدر كبير من التخزين لتشغيل البرامج الثقيلة. ومع ذلك ، تمكنت من دفع مجموعة من الأشياء المثيرة للاهتمام في صورة البرامج الثابتة.

USB


باستخدام USB ، يمكنك التوصل إلى الكثير من الأشياء المثيرة للاهتمام ، لكنني اخترت الخيار الأسهل ، بحيث يعمل الأشخاص ذوو الاحتمالات العالية إذا قرروا تجربة بطاقة العمل الخاصة بي. يتيح نظام Linux للبطاقة أن تتصرف "كجهاز" مع دعم أداة Gadget Framework . أخذت بعض برامج التشغيل من المشاريع السابقة التي شملت هذا المعالج ، حتى أتمكن من الوصول إلى جميع وظائف إطار أداة USB. قررت محاكاة محرك أقراص محمول تم إنشاؤه مسبقًا وإتاحة الوصول إلى shell عبر منفذ تسلسلي افتراضي.

قذيفة


بعد تسجيل الدخول كجذر ، يمكنك تشغيل البرامج التالية على وحدة التحكم التسلسلية:
  • المارقة: لعبة مغامرة يونيكس الكلاسيكية.
  • 2048: لعبة بسيطة في 2048 في وضع وحدة التحكم ؛
  • ثروة: اختتام مختلف أقوال الرثاء. قررت عدم تضمين قاعدة الاقتباس بأكملها هنا لترك مساحة للوظائف الأخرى ؛
  • micropython : مترجم Python صغير جدًا.


مضاهاة محرك فلاش


في وقت الترجمة ، تقوم أدوات الإنشاء بإنشاء صورة FAT32 صغيرة وإضافتها كأحد أقسام UBI. يقدم نظام Linux gadget الفرعي جهاز الكمبيوتر الخاص به كجهاز تخزين.

إذا كنت مهتمًا بمعرفة ما يظهر على محرك الأقراص المحمول ، فإن أسهل طريقة للقيام بذلك هي التعرف على المصدر . هناك أيضا بعض الصور وسيرتي الذاتية.

موارد


شفرة المصدر


تم تحميل My Buildroot tree على GitHub - thirtythreeforty / businesscard-linux . هناك رمز لإنشاء صورة فلاش NOR ، والتي تم تعيينها باستخدام وضع تنزيل USB للمعالج. كما أن لديها كل تعريفات الحزمة للألعاب والبرامج الأخرى التي قمت بحشوها في Buildroot بعد أن عملت. إذا كنت تريد استخدام F1C100s في مشروعك ، فستكون هذه نقطة انطلاق رائعة (لا تتردد في طرح الأسئلة ).
لقد استخدمت مشروع Linux v4.9 الذي تم تنفيذه بشكل جميل لـ F1C100s بواسطة Icenowy ، وأعده قليلاً. يعمل الإصدار v5.2 القياسي تقريبًا على بطاقتي. انها تقع على جيثب - ثلاثون / لينوكس .
أعتقد أن لدي اليوم أفضل منفذ U-Boot لـ F1C100s في العالم ، وهو يعتمد جزئيًا على عمل Icenowy (بشكل غير متوقع ، جعل U-Boot يعمل كما يجب أن يكون مهمة غير سارة للغاية). يمكنك أيضا أن تأخذ على GitHub - thirtythreeforty / u-boot .

وثائق F1C100s


لقد وجدت وثائق نادرة إلى حد ما من F1C100s ، وأنا نشرها هنا:


بالنسبة للفضوليين ، أقوم بتحميل مخطط مشروعي .



استنتاج


لقد تعلمت الكثير من الأشياء أثناء تطوير هذا المشروع - هذا هو أول مشروع لي ، حيث استخدمت فرن لحام إنحسر. لقد تعلمت أيضًا كيفية العثور على موارد للمكونات ذات الوثائق الرديئة.

لقد استخدمت تجربتي مع Linux المضمنة والخبرة في تطوير المجالس. لا يخلو المشروع من العيوب ، لكنه يظهر كل مهاراتي جيدًا.

بالنسبة لأولئك المهتمين بتفاصيل العمل مع Linux المضمنة ، أقترح قراءة سلسلة مقالاتي حول هذا: Mastering Embedded Linux . هناك أتحدث بالتفصيل عن كيفية إنشاء برامج وأجهزة من نقطة الصفر لأنظمة Linux صغيرة ورخيصة ، على غرار بطاقة الأعمال هذه الخاصة بي.

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


All Articles