سیستم عامل یونیکسی FUZIX برای رزبری پای Pico و میکروکنترلر RP2040

سیستم عامل یونیکسی FUZIX برای رزبری پای Pico و میکروکنترلر RP2040

سیستم عامل یونیکسی FUZIX برای رزبری پای Pico و میکروکنترلر RP2040
سیستم عامل یونیکسی FUZIX برای رزبری پای Pico و میکروکنترلر RP2040

FUZIX یک سیستم عامل قدیمی دانشگاهی و نسخه‌ای کلون شده از یونیکس است که برای میکروپروسسور 8 بیتی Zilog Z80 نوشته شده است. این سیستم عامل در سال 2014 توسط آقای Alan Cox به‌صورت عمومی منتشر شد. آقای Alan Cox که یکی از توسعه دهندگان پرکار هسته لینوکس بود، در سال 2013 از جمع توسعه دهندگان لینوکس خارج شد. وی این سیستم عامل را برای کسانی که به دنبال نوستالژی و روزهای خوب قدیم هستند، توصیه می‌کند. روزهایی که تمام کدها روی یک فلاپی جا می‌شد!

سیستم عامل FUZIX برای معماری‌های دیگر، مثل 6502، 68000 و MSP430 نیز پورت شد. آقای دیوید گیون (David Given) که قبلاً این سیستم عامل را برای MSP430 و ESP8266 پورت کرده بودند، هم اکنون این سیستم عامل را برای رزبری پای پیکو با میکروکنترلر RP2040 هم پورت کردند! یعنی شما می‌توانید سیستم عامل یونیکس را بر روی یک میکروکنترلر 4 دلاری اجرا کنید!

 

 

کامپایل کردن و اجرای FUZIX از منبع (Building from source)

سیستم عامل FUZIX که بر روی میکروکنترلر RP4020 اجرا می‌شود، نوعی یونیکس است که رابط کنسول آن پورت سریال و USART0 میکروکنترلر است. همچنین FUZIX از SD کارت پشتیبانی کرده و هم از فایل‌های سیستمی و هم ناحیه swap استفاده می‌کند. هر چند ایمیج باینری آن به صورت آماده برای دانلود وجود دارد، اما می‌توانید خودتان هم سورس آن را کامپایل کنید.

برای این کار، باید ابتدا تولچین رزبری پای پیکو (Pico) و SDK های C/C++ را بر روی سیستم خود داشته باشید.
سپس به کمک گیت، نسخه پورت شده سیستم عامل FUZIX برای رزبری پای پیکو را دریافت کنید.

حال، دایرکتوری را به platform-port تغییر دهید:

 

اولین خط فایل Makefile را ویرایش کرده و مسیر pico-sdk را وارد کنید. برای بیلد کردن پروژه برای رزبری پای پیکو، باید فایل pico_setup.sh را اجرا کرده و یا طبق دستورالعمل‌های وب سایت رزبری پای عمل کرده و مسیر SDK را در این متغیر ذخیره کنید.

 

بعد از این مرحله، شما هم می‌توانید FUZIX UF2 و هم فایل‌های سیستمی مربوط به روت را بیلد کنید.

 

اگر همه چیز درست پیش رفته باشد، شما باید یک فایل UF2 در مسیر build/fuzix.uf2 و یک فایل ایمیج به نام filesystem.img در مسیر فعلی خود داشته باشید.
حالا می‌توانید به صورت معمولی فایل UF2 را بر روی رزبری پای پیکو Pico اجرا کنید.

کابل میکرو USB را به کامپیوتر متصل کنید و هنگامی که می‌خواهید طرف دیگر را به رزبری پای پیکو وصل کنید، دکمه BOOTSEL را نگه دارید. وقتی برد به کامپیوتر متصل شد، دکمه را رها کنید.
حافظه رزبری پای با نام RPI-RP2 باید بر روی دسکتاپ شما ظاهر شود. فایل UF2 را بر روی آن ذخیره کنید. بعد از این کار، حافظه به طور خودکار از کامپیوتر شما جدا شده و رزبری پای پیکو شما پس از ریستارت، سیستم عامل Unix را اجرا می‌کند. اما متأسفانه بدون فایل سیستم قادر به اجرای هیچ کاری نمی‌باشد.

 

ساخت SD کارت بوتیبل

فایل ایمیج filesystem.img که بیلد کردیم، قابل بوت شدن (Bootable) نیست. از طرفی، متأسفانه برای ساخت یک دیسک بوتیبیل برای رزبری پای پیکو، همانند نسخه‌های قبلی شما نمی‌توانید به راحتی با نرم افزارهایی مثل Etcher و… این کار را انجام دهید. برای ساخت ایمیج بوتیبل، شما باید مراحل بعدی را نیز انجام بدهید. ابزارهای معرفی شده برای لینوکس هستند، اما در ویندوز و مک نیز تقریباً با روشی مشابه می‌توانید همین مسیر را ادامه دهید.

فایل سیستم ما تنها 34 مگابایت حجم دارد، اما SD CARD های موجود، معمولاً بالای 2 گیگابایت حافظه دارند، که البته موضوع مهمی هم نیست.

SD کارت را درون رم ریدر قرار داده و آن را به کامپیوتر و یا رزبری پای (نسخه کامپیوتر) متصل کنید. ما قرار است یک جدول بر روی آن بسازیم که دو پارتیشن برای ما ایجاد کند. 2 مگابایت برای ناحیه swap و 32 مگابایت برای root سیستم عامل (فایل filesystem.img) در نظر می‌گیریم.

اتصال SD کارت به رزبری

بعد از اینکه SD کارت را متصل کردید، می‌توانید با دستور lsblk از طریق کامندلاین آن را مشاهده کنید. اگر حافظه شما خالی و بدون پارتیشن باشد، آن را به‌صورت /dev/sda خواهید دید.

 

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

 

در خروجی بالا، حافظه ما به‌صورت FAT و از نوع MBR فرمت شده و نام آن “USB” است. کامپیوتر شما آن را به‌صورت اتوماتیک در /media/pi/USB قرار داده یا به اصطلاح mount کرده است.
اگر حافظه شما mount شده، باید با دستور زیر آن را unmount کنید:

 

حال، با دستور lsblk خروجی زیر را خوهید دید:

 

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

 

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

 

در اینجا حرف “o” را وارد کنید تا یک DOS disklabel ایجاد شود.

 

سپس با وارد کردن “n” یک پارتیشن جدید ایجاد میکنیم.

 

ممکن است در این مرحله پیامی مبنی بر وجود امضا (contains a vfat signature) به شما نمایش داده شده و از شما پرسیده شود که این امضا پاک شود یا خیر. در این صورت شما حرف “Y” را تایپ کنید.
در مرحله بعدی، نوع پارتیشن “7F“ تنظیم می‌کنیم.

 

ناحیه swap سیستم عامل FUZIX ایجاد گردید. حال، باید یک پارتیشن 32 مگابایتی برای فایل سیستم ایجاد کنیم.

 

بعد از این مرحله، اگر “p” را در fdisk وارد کنید، خروجی زیر را مشاهده خواهید کرد:

 

حال، برای ذخیره جدول پارتیشن بندی، “w” را وارد کنید.
در نهایت، فایل سیستم را در پارتیشن دوم کپی می‌کنیم.

 

حالا می‌توانید SD کارت را eject کنید.

 

سیم کشی برد بورد

اگر از رزبری پای استفاده می‌کنید، USART رزبری پای را مطابق شکل زیر به رزبری پای پیکو متصل کنید.

اتصال رزبری پای به پیکو و SD کارت

پین های یوزارت رزبری پای

 

اگر برد رزبری پای ندارید، می‌توانید به کمک ماژول‌های USB2TTL نیز این کار را انجام دهید.

ماژول

اتصال به FUZIX با ماژول usb به TTL (سریال)

نحوه سیم کشی SD کارت به رزبری پای پیکو نیز به‌صورت زیر است:

Pico RP2040 SD Card
3V3 (OUT) +3.3V
Pin 16 GP12 (SPI1 RX) DO (MISO)
Pin 17 GP13 (SPI1 CSn) CS
Pin 18 GND GND
Pin 19 GP14 (SPI1 SCK) SCK
Pin 20 GP15 (SPI1 TX) DI (MOSI)

پس از اینکه همه سیم کشی‌ها را به دقت انجام دادید، کارت حافظه را نیز به پیکو متصل کنید. بعد از اینکه منبع تغذیه نیز متصل شد، سیستم عامل FUZIX نیز بوت خواهد شد.

 

اتصال به سیستم عامل FUZIX

اگر از رزبری پای استفاده می‌کنید، ابتدا باید سریال USART را فعال کنید.

از طریق منوی
Interfacing Options → Serial
اگر پیام
“Would you like a login shell to be accessible over serial?”
را مشاهده کردید، “No” و اگر پیام
“Would you like the serial port hardware to be enabled?”
ظاهر شد، “Yes” را بزنید.

فعال کردن یوزارت رزبری پای

 

در هنگام خروج از تنظیمات، از شما برای راه اندازی مجدد رزبری پای سؤال می‌شود، با تأیید کردن آن، رزبری پای ریستارت شده و پورت سریال فعال می‌شود. حال می‌توانید با دستور minicom به سیستم عامل FUZIX متصل شوید:

 

به طور مشابه می‌توانید بر روی سیستم عامل‌های گنو/لینوکس دیگر، ویندوز و مک نیز از دستوراتی مثل minicom یا screen و… استفاده کنید.
بعد از اتصال به سیستم عامل FUZIX شما خروجی شبیه به زیر را دریافت خواهید کرد:

سیستم عامل FUZIX

اگر هیچ چیزی مشاهده نکردید، کابل USB را قطع و مجدداً متصل کنید تا FUZIX ریستارت شود.
می‌توانید با نام کاربری “root” بدون پسورد وارد شوید. تاریخ و ساعت درست را در سیستم عاملتان تنظیم کنید.
با وجود مشکلاتی که در پورت کردن سیستم عامل FUZIX وجود دارد، اما هم اکنون یکی از سیستم عامل های رسمی رزبری پای پیکو است.
در فروم های رزبری پای، در برخی سرور های غیر رسمی و صفحه بازخوردها در گیت هاب افراد بسیار زیادی در این زمینه فعال هستند.
همچنین مستندات مربوطه را می‌توانید در این صفحه مطالعه کنید. اگر آدرس این صفحه را گم کردید، می‌توانید دکمه BOOTSEL را نگه داشته و رزبری پای پیکو را از طریق USB به سیستم خود متصل کنید، و فایل INDEX.HTM را باز کنید تا شما را به این صفحه هدایت کند!

منبع

1 نفر

پــــســنــدیـده انـد

توجه

Digi Boy
Digi Boy

به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)

دیدگاه ها

10 دیدگاه

  • rafael
    ۳ اردیبهشت ۱۴۰۰

    بسیار جالب بود و انصافا هم خیلی خوب و ساده توضیح دادید، من که مشتاق شدم انجام بدم. فقط حیف که این مدل رزبری پای رو ندارم. RP2040 تو ایران اومده؟

    • Digi Boy
      Digi Boy
      ۴ اردیبهشت ۱۴۰۰

      درود بر شما، بله دوست عزیز، اگر در سامانه آی سی سیسوگ جستجو کنید، آن را پیدا خواهید کرد:
      https://isee.sisoog.com

      • kamyar
        ۲۵ فروردین ۱۴۰۱

        سلام خدمت شما
        Zilog Z80 یک میکروپروسسور است نه میکروکنترل. لطفا تصحیح کنین

        ممنون از مطالب جالبتون

        • Zeus ‌
          Zeus ‌
          ۲۷ فروردین ۱۴۰۱

          سلام دوست عزیز
          متشکرم برای تذکر و دقتتون، اصلاح می‌کنیم

  • مهدی
    ۱۷ فروردین ۱۴۰۰

    پورت کردن سیستم عامل فوزیکس هم جالب بود. ممنون.

  • آریا
    ۱۹ اسفند ۱۳۹۹

    این رزبری پای جدیده رو ندارم ولی اون قسمت مطلبتون که برای فعال کردن یوزارت رزبری پای بود خییلی حال کردم. تا حالا تو منو raspi-config نرفته بودم. خیییلی باحاله. من همش با ادیتور نانو فایل های کانفیگ رو تغییر میدادم.
    خسته نباشید.

  • محمدرضا عابدینی
    محمدرضا عابدینی
    ۱۰ اسفند ۱۳۹۹

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

    • Sisoog Os
      Sisoog Os
      ۱۴ اسفند ۱۳۹۹

      سلام خواهش میکنم دوست عزیز

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

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

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک