کارت ویزیت من لینوکس دارد

ترجمه مقاله از پست وبلاگ مهندس جورج هیلیارد

کارت ویزیت من لینوکس دارد
قابل کلیک

من یک مهندس سیستم های تعبیه شده هستم. در اوقات فراغت خود اغلب به دنبال چیزی می گردم که بتوان از آن در طراحی سیستم های آینده استفاده کرد یا چیزی از علایقم.

یکی از این حوزه‌ها رایانه‌های ارزان‌قیمتی هستند که می‌توانند لینوکس را اجرا کنند و هر چه ارزان‌تر باشد، بهتر است. بنابراین من یک سوراخ خرگوش عمیق از پردازنده های مبهم حفر کردم.

فکر کردم، «این پردازنده‌ها آنقدر ارزان هستند که عملاً می‌توان آن‌ها را به‌طور رایگان واگذار کرد». و بعد از مدتی این ایده به ذهنم خطور کرد که یک کارت خالی برای لینوکس در قالب یک کارت ویزیت بسازم.

وقتی در مورد آن فکر کردم، به این نتیجه رسیدم که این کار واقعاً جالبی است. من قبلا دیدم الکترونیکی کارت بازرگانی به آنو قابلیت‌های جالب مختلفی مانند شبیه‌سازی کارت‌های فلش، چشمک زدن لامپ‌ها یا حتی انتقال داده‌های بی‌سیم داشتند. با این حال، من کارت ویزیت با پشتیبانی لینوکس را ندیده ام.

پس خودم را یکی ساختم.

این نسخه نهایی محصول است. یک کامپیوتر ARM کامل که نسخه سفارشی لینوکس من را اجرا می کند که با Buildroot ساخته شده است.

کارت ویزیت من لینوکس دارد

یک پورت USB در گوشه ای دارد. اگر آن را به کامپیوتر وصل کنید، در حدود 6 ثانیه بوت می شود و به صورت فلش کارت و پورت سریال مجازی قابل مشاهده است که از طریق آن می توانید وارد پوسته کارت شوید. روی فلش درایو یک فایل README، یک کپی از رزومه و چندین عکس از من وجود دارد. این پوسته دارای چندین بازی، کلاسیک های یونیکس مانند fortune و rogue، نسخه کوچک بازی 2048 و یک مفسر MicroPython است.

همه اینها با استفاده از یک تراشه فلش بسیار کوچک 8 مگابایتی انجام می شود. بوت لودر در 256 کیلوبایت جای می گیرد، هسته 1,6 مگابایت و کل فایل سیستم ریشه 2,4 مگابایت را اشغال می کند. بنابراین فضای زیادی برای فلش درایو مجازی باقی می ماند. همچنین یک فهرست اصلی وجود دارد که در صورتی که هر کسی هر کاری را که بخواهد ذخیره کند، قابل نوشتن است. همه اینها در یک تراشه فلش نیز ذخیره می شود.

قیمت کل دستگاه کمتر از 3 دلار است. به اندازه کافی ارزان است که ببخشید. اگر چنین وسیله ای را از من دریافت کرده اید، به این معنی است که به احتمال زیاد سعی می کنم شما را تحت تاثیر قرار دهم.

طراحی و ساخت

همه چیز را خودم طراحی و مونتاژ کردم. این شغل من است و من آن را دوست دارم، و بسیاری از چالش ها پیدا کردن قطعات ارزان قیمت برای سرگرمی است.

انتخاب پردازنده مهمترین تصمیم تاثیرگذار بر هزینه و امکان سنجی پروژه بود. پس از تحقیقات گسترده، F1C100s را انتخاب کردم، یک پردازنده نسبتاً کمتر شناخته شده از Allwinner که از نظر هزینه بهینه شده است (یعنی لعنتی ارزان است). رم و CPU هر دو در یک بسته قرار دارند. من از Taobao پردازنده خریدم. تمام اجزای دیگر از LCSC خریداری شدند.

من تابلوها را از JLC سفارش دادم. آنها 8 نسخه برای من به قیمت 10 دلار تهیه کردند. کیفیت آنها قابل توجه است، به خصوص برای قیمت. نه به زیبایی OSHPark، اما هنوز هم خوب به نظر می رسد.

من اولین دسته را مشکی مات ساختم. آنها زیبا به نظر می رسیدند، اما به راحتی کثیف می شدند.

کارت ویزیت من لینوکس دارد

در دسته اول چند مشکل وجود داشت. اول، کانکتور USB به اندازه کافی طولانی نبود که به طور ایمن در هر درگاه USB قرار گیرد. ثانیا، تراک های فلش اشتباه ساخته شده اند، اما من با خم کردن کنتاکت ها این مشکل را برطرف کردم.

کارت ویزیت من لینوکس دارد

پس از بررسی اینکه همه چیز کار می کند، یک دسته جدید از تخته ها را سفارش دادم. در ابتدای مطلب می توانید عکس یکی از آنها را مشاهده کنید.

با توجه به اندازه کوچک همه این اجزای کوچک، تصمیم گرفتم به لحیم کاری مجدد متوسل شوم اجاق گاز ارزان. من به یک برش لیزری دسترسی دارم، بنابراین از آن برای برش شابلون لحیم کاری از فیلم لمینت استفاده کردم. شابلون کاملاً خوب ظاهر شد. سوراخ‌های با قطر 0,2 میلی‌متر برای کنتاکت‌های پردازنده به مراقبت ویژه‌ای نیاز داشت تا از ساخت با کیفیت بالا اطمینان حاصل شود - تمرکز صحیح لیزر و انتخاب قدرت آن بسیار مهم بود.

کارت ویزیت من لینوکس دارد
سایر تخته ها به خوبی برای نگه داشتن تخته در حین استفاده از خمیر کار می کنند.

من خمیر لحیم کاری کردم و اجزا را با دست قرار دادم. من مطمئن شدم که سرب در هیچ کجای فرآیند استفاده نشده است - همه بردها، قطعات و خمیر مطابق استاندارد هستند. سازگار با استاندارد RoHS - تا وقتی آنها را بین مردم توزیع می کنم، وجدانم عذابم ندهد.

کارت ویزیت من لینوکس دارد
من با این دسته اشتباه جزئی کردم، اما خمیر لحیم اشتباهات را می بخشد، و همه چیز با هم خوب پیش رفت

موقعیت هر جزء حدود 10 ثانیه طول کشید، بنابراین سعی کردم تعداد اجزا را به حداقل برسانم. جزئیات بیشتر در مورد طراحی نقشه را می توانید در دیگری بخوانید مقاله مفصل من.

لیست مواد و هزینه

من به یک بودجه سخت پایبند بودم. و کارت ویزیت همانطور که در نظر گرفته شده بود - بدم نمی آید آن را بدهم! البته، من آن را در اختیار همه قرار نمی دهم، زیرا تهیه هر کپی زمان می برد و زمان من در هزینه کارت ویزیت در نظر گرفته نمی شود (به نوعی رایگان است).

کامپوننت
قیمت

F1C100s
$1.42

PCB
$0.80

فلش 8 مگابایت
$0.17

تمام اجزای دیگر
$0.49

در کل
$2.88

طبیعتاً هزینه هایی نیز وجود دارد که محاسبه آنها دشوار است، مانند تحویل (زیرا بین اجزای در نظر گرفته شده برای چندین پروژه توزیع می شود). با این حال، برای بردی که از لینوکس پشتیبانی می کند، قطعاً بسیار ارزان است. این تفکیک همچنین ایده خوبی از هزینه‌ای برای شرکت‌ها برای ساخت دستگاه‌هایی با پایین‌ترین قیمت ارائه می‌دهد: می‌توانید مطمئن باشید که این هزینه برای شرکت‌ها حتی کمتر از هزینه من است!

توانمندی ها

چه بگویم؟ این کارت یک لینوکس بسیار ضعیف را در 6 ثانیه راه اندازی می کند. با توجه به فرم فاکتور و هزینه، کارت ورودی/خروجی، پشتیبانی شبکه یا مقدار قابل توجهی فضای ذخیره سازی برای اجرای برنامه های سنگین ندارد. با این وجود، من موفق شدم دسته ای از چیزهای جالب را در تصویر سیستم عامل قرار دهم.

یو اس بی

کارهای جالب زیادی وجود داشت که می‌توان با USB انجام داد، اما من ساده‌ترین گزینه را انتخاب کردم تا مردم اگر تصمیم بگیرند کارت ویزیت من را امتحان کنند، احتمالاً آن را به کار می‌گیرند. لینوکس به کارت اجازه می دهد تا مانند یک "دستگاه" با پشتیبانی رفتار کند چارچوب ابزارک. من برخی از درایورهای پروژه های قبلی را که شامل این پردازنده بودند برداشتم، بنابراین به تمام عملکردهای چارچوب ابزار USB دسترسی دارم. من تصمیم گرفتم یک درایو فلش از پیش تولید شده را شبیه سازی کنم و به پوسته از طریق پورت سریال مجازی دسترسی داشته باشم.

شل

پس از ورود به عنوان root، می توانید برنامه های زیر را در کنسول سریال اجرا کنید:

  • Rogue: یک بازی ماجراجویی کلاسیک در سیاهچال یونیکس.
  • 2048: بازی ساده 2048 در حالت کنسول.
  • فورچون: خروجی گفته های متظاهر مختلف. من تصمیم گرفتم که کل پایگاه داده استناد را در اینجا وارد نکنم تا جایی برای ویژگی های دیگر باقی بماند.
  • میکروپایتون: یک مفسر بسیار کوچک پایتون.

شبیه سازی فلش درایو

در طول کامپایل، ابزارهای ساخت یک تصویر کوچک FAT32 تولید می کنند و آن را به عنوان یکی از پارتیشن های UBI اضافه می کنند. زیرسیستم گجت لینوکس رایانه شخصی خود را به عنوان یک دستگاه ذخیره سازی ارائه می کند.

اگر علاقه مند به دیدن آنچه بر روی فلش درایو ظاهر می شود، ساده ترین راه برای انجام این کار خواندن منابع. چندین عکس و رزومه من هم هست.

منابع

منابع

درخت Buildroot من در GitHub پست شده است - سی و سه و چهار / کارت ویزیت-لینوکس. کدی برای تولید تصویر فلش NOR وجود دارد که با استفاده از حالت دانلود USB پردازنده نصب می شود. همچنین دارای تمام تعاریف بسته برای بازی ها و برنامه های دیگر است که من بعد از اینکه همه چیز را به درستی انجام دادم در Buildroot قرار دادم. اگر علاقه مند به استفاده از F1C100s در پروژه خود هستید، این یک نقطه شروع عالی خواهد بود. از من سوال بپرس).
من استفاده کردم پروژه ای که به زیبایی اجرا شده است لینوکس نسخه 4.9 برای F1C100s توسط Icenowy، کمی دوباره طراحی شده است. کارت من تقریباً استاندارد نسخه 5.2 را اجرا می کند. در GitHub است - سی و سه و چهار/لینوکس.
فکر می‌کنم امروز بهترین پورت U-Boot را برای F1C100 در جهان دارم، و همچنین تا حدی بر اساس کار Icenowy است (در کمال تعجب، کارکرد صحیح U-Boot یک کار خسته‌کننده بود). شما همچنین می توانید آن را در GitHub دریافت کنید - سی و سه و چهار/u-boot.

اسناد F1C100s

من اسناد نسبتاً کمی برای F1C100s پیدا کردم و آن را در اینجا پست می کنم:

  • برگه داده Allwinner F1C100s - اطلاعات عمومی و پین‌آوت
  • راهنمای مرجع Allwinner F1C600 - ثبت تعاریف برای F1C600، که در واقع همان F1C100s است، اما با پشتیبانی اعلام شده لینوکس تغییر نام داده است (ha!).
  • من به طور فعال اطلاعات را از نمودار قرض گرفته ام نانو لیچی Sipeed - برد توسعه ای که برای پیکربندی نرم افزار استفاده کردم.

من آن را برای کسانی که کنجکاو هستند آپلود می کنم. نمودار پروژه من.

کارت ویزیت من لینوکس دارد

نتیجه

من در طول توسعه این پروژه چیزهای زیادی یاد گرفتم - این اولین پروژه من با استفاده از کوره لحیم کاری مجدد بود. من همچنین یاد گرفتم که چگونه منابعی برای اجزای با مستندات ضعیف پیدا کنم.

من از تجربه موجود خود در لینوکس جاسازی شده و تجربه توسعه برد استفاده کردم. پروژه بدون نقص نیست، اما تمام مهارت های من را به خوبی نشان می دهد.

برای کسانی که علاقه مند به جزئیات کار با لینوکس جاسازی شده هستند، پیشنهاد می کنم مجموعه مقالات من در این مورد را مطالعه کنند: تسلط بر لینوکس جاسازی شده. در آنجا به تفصیل در مورد نحوه ایجاد نرم افزار و سخت افزار از ابتدا برای سیستم های لینوکس کوچک و ارزان، مشابه کارت تلفن من صحبت می کنم.

منبع: www.habr.com

اضافه کردن نظر