امبدد لینوکس, آموزش, آموزش کار با تراشه V3S, توصیه شده

کار با تراشه V3S – قسمت سوم – ساخت ایمیج

کار با تراشه V3S – قسمت سوم – ساخت ایمیج

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

شاید برای شما مفید باشد: آموزش الکترونیک از 0 تا 100

ساخت ایمیج لینوکسی در یوکتو

برای ساخت ایمیج از این ریپازیتوری کمک میگیریم. (ما توی این آموزش با Ubuntu 18.04 پیش میریم.)

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

بعد از اون یک فولدر با نام yocto در پوشه home خودمون میسازیم، اگر این پوشه رو در جایی دیگه بسازید باید در دستوراتی که در ادامه وارد میکنیم رو هم اصلاح کنید، پس اگه تازه کار هستید مسیر رو تغییر ندید.

همونطور که در دستورات هم مشخصه ما از نسخه dunfell یوکتو استفاده کردیم و layer های مورد نیاز رو با کمک دستورات گیت دانلود کردیم.

با کمک این دستور پوشه ای رو برای ذخیره کانفیگ های ایمیجمون مشخص میکنیم.

حالا فایل bblayers.confرو در مسیر ~/yocto/build/sinux_v3/conf/ به این صورت تغییر میدیم.

بعد از اون لازمه که یکسری متغیر رو در فایل local.conf که کنار فایل قبلی هست تغییر بدیم.

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

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

بعد از کامپایل ، ایمیج ما در این آدرس قابل دسترسی هست.

برای اینکه ایمیج رو روی کارت حافظه بریزیم روی اون راست کلیک میکنیم و گزینه Open with disk image writer رو میزنیم. (فایل console-image-sinux_v3.sunxi-sdimg رو باید انتخاب کنید.)

embedded_write_sd

دقت کنید که sdcard را از قبل به سیستم وصل کرده باشید(یه موقع هاردتون رو فرمت نکنیدا !! )،حالا sd رو انتخاب کرده و Start Restoring…. را میزنیم.

ریستور SD کارت

در پنجره باز شده restore را زده و در پنجره بعدی هم رمزمون را وارد می‌کنیم.
بعد از اینکه رایت کردن تمام شد eject را می‌زنیم و sd را خارج می‌کنیم.

زدن eject برای خارج کردن SD

حالا کافیه که sd را به برد وصل کرده و منتظر بوت شدن باشیم.

برای مشاهده مراحل بوت شدن باید با استفاده از یک رابط usb به سریال پایه‌های ‌UAR0 RX و  ‌UAR0 TX برد sinux v3 رو به سیستم وصل کنید.

دو ال ای دی رو برد هست که یکی متصل بودن تغذیه رو نشون میده و اون یکی هم اگر سیستم عامل در حال نوشتن و خواندن از حافظه sd باشه چشمک میزنه.

نام کاربری root هست و رمز عبورم نداره.

این هم از صفحه lcd هنگام بوت شدن (نمایشگری که در حال حاضر متصل می‌باشد، دارای رزولوشن 800*480 هست.)

زمان بوت شدن Yocto

مرحله بعدی وصل کردن شبکه برد هست، در حالت عادی شبکه فعال می‌باشد و روی حالت dhcp است، یعنی باید به مودم به طور مثال وصل بشه و از اون آیپی بگیره، در صورتی که به مودم وصلش کردید با این دستور میتونید آیپی برد رو چک کنید.

اما برای اینکه بتونید مستقیم به سیستمتون وصلش کنید باید یه آیپی ثابت بهش بدید که برای اینکار خط 17 فایل interfaces رو با ادیتور vi تغییر میدیم.

بعد از اینکار این دستور رو باید بزنید تا تنظیمات شبکه بروز شود.

در حال حاظر آیپی برد 192.168.5.78 هست و لازمه آیپی سیستمی که میخواید باهاش به برد وصل بشید هم توی همین رنج قرار بدیم، مثلا 192.168.5.75 بزاریم.

 

حالا میخوایم یک پکیج به ایمیجمون اضافه کنیم، برای اینکار باید سراغ فایل console-image.bb در مسیر poky/meta-sinux/recipes-images/images بریم . داخل متغیر IMAGE_INSTALL میتونید پکیج های دلخواهتون رو اضافه کنید،‌ به طور مثال بعد از اضافه کردن پکیج htop این متغیر به این صورت در میاد.

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

 

در این بخش میتونید به همه قسمت‌های سری آموزش کار با تراشه V3S دسترسی پیدا کنید:

شاید برای شما مفید باشد: آموزش امبدد لینوکس از 0 تا 100

دانلود رایگان شماتیک و PCB برد توسعه SINUX V3

فایل‌های طراحی را می‌توانید به‌صورت رایگان از گیت هاب من دریافت کنید!

buy allwiner v3s board sinux v3

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

32 دیدگاه در “کار با تراشه V3S – قسمت سوم – ساخت ایمیج

  1. Avatar for حمیدرضا حمیدرضا گفت:

    سلام وقت به خیر;
    وقتی دستور bitbake رو می زنم در خیلی طول میکشه و تا حلا ۲ ساعت هستش که داره انجام میده.اینقده طول میشکه؟ یا مشکلی هست

  2. Avatar for محمد محمد گفت:

    سلام
    من ایمیج رو درست کردم و ال سی دی هم وصل کردم اما همچین چیزی نشون نمی ده. فقط ی صفحه سیاه که دو تا نوشته نشون داده.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      خب تا اینجا درسته دیگه 🙂

  3. Avatar for بهزاد عبدی بهزاد عبدی گفت:

    سلام دوباره خدمت شما.
    این پروژه گرافیکی لینوکسی خیلی جالبه.
    قبلا با f1c100s و بیلد روت تست کردم سرعت بالا اومدنش خوب بود..
    نمیدونم آیا یوکتو هم با همون سرعت بوت میشه یا نه.
    میشه در موردش توضیح بدید. تشکر میکنم.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      یوکتو و بیلدروت هر دو قابلیت شخصی سازی ایمیج دارند
      اینکه شما چه قابلیت هایی رو توی ایمیج فعال کنید باعث افزایش یا کاهش زمان بوت میشه
      نه بیلد سیستم

      1. Avatar for بهزاد عبدی بهزاد عبدی گفت:

        سلام آقای مهدی.
        خیلی ممنون از جوابتون .
        بله ویدیو پیدا کردم تو ۲ ثانیه بوت میشد.
        ولی baremetal با lvgl خیلی فوق العاده میشه.
        فقط اگر میشید sdk رو هم پیدا کنم میتونستم شروع کنم .برای f1c100s اس دی کا بود.
        این یکی v3s رو میتونید منبعی پیدا کنید ..
        خیلی لطف میکنید.
        تشکر.

        1. Avatar for Mahdi.h   Mahdi.h   گفت:

          همین لینکی که فرستادم baremetal برای تراشه های مختلف هست که f1c100 , v3s و خیلی تراشه های دیگه رو داخلش داره
          اینم لینک گیت هابش
          https://github.com/xboot/xboot

  4. Avatar for سعید سعید گفت:

    بعد از اجرا این دستور bitbake console-image این ارور را می دهد:
    ERROR: Unable to start bitbake server (None)
    ERROR: Server log for this session (/home/saeed/yocto/build/sinux_v3/bitbake-cookerdaemon.log):
    — Starting bitbake server pid 12807 at 2023-10-03 09:49:54.824721 —
    ERROR: The following layer directories do not exist:
    ERROR: /home/saeed/yocto/poky/meta
    ERROR: /home/saeed/yocto/poky/meta-poky
    ERROR: /home/saeed/yocto/poky/meta-openembedded/meta-oe
    ERROR: /home/saeed/yocto/poky/meta-openembedded/meta-networking
    ERROR: /home/saeed/yocto/poky/meta-openembedded/meta-python
    ERROR: /home/saeed/yocto/poky/meta-qt5
    ERROR: /home/saeed/yocto/poky/meta-sinux
    ERROR: Please check BBLAYERS in /home/saeed/yocto/build/sinux_v3/conf/bblayers.conf
    کسی با این مشکل روبرو شده است؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      اگر انتهای ارور رو بررسی کنید ، نوشته آدرس دهی هایی که در فایل bblayers.conf کردید اشتباه هست و این فولدر ها رو پیدا نمیکنه
      باید آدرس دهیتون رو چک کنید و اگر بر اساس آموزش نرفتید و مسیر ها رو تغییر دادید ، در این فایل هم آدرس دهی ها رو اصلاح کنید.

  5. Avatar for Aliasghar Aliasghar گفت:

    سلام و وقت بخیر
    تشکر فراوان از اموزش بسیار عالیتون
    یک مشکل در دایرکتوری گیت git://github.com/megous/linux.git وجود داره که جابه جا شده این لینک و لینک جدید هم در Recipe قرار نداره برای همین مشکل fetch در مرحله اخر bitbake ایجاد میشه امکانش هست راهنمایی کنید که چطور این لینک رو تغییر بدیم در فایل ها
    ممنون.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      اصلاح شد
      تست کنید اگر مشکلی بود بگید

  6. Avatar for سعید سعید گفت:

    سلام
    وقتی ابزارها را می خواهم نصب کنم این خطا را می دهد:
    Note, selecting ‘git’ instead of ‘git-core’
    E: Unable to locate package texinfogcc-multilib
    E: Unable to locate package xtermlibmpc-dev
    زمانی که می خواهم این دستور را می زنم source oe-init-build-env ~/yocto/build/sinux_v3
    این خطا را می دهد:
    Error: TEMPLATECONF value points to nonexistent directory ‘meta-canexp/conf’
    متاسفانه در داخل نت هم نتوانستم مشکلات را پیدا کنم.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      از چه توزیع لینوکس و چه نسخه ای استفاده میکنید ؟

      1. Avatar for سعید سعید گفت:

        اوبونتو Ubuntu 20.04.3 LTS

  7. Avatar for مجید مجید گفت:

    سلام خسته نباشید
    یه تغییر باید در recipe کرنل که قرار دادید بدید .
    لینک git://github.com/megous/linux.git برای کلن کردن لینوکس با branch orange-pi-5.8 حذف شده و در لینک دیگه ای قرار داره
    متاسفانه دوستان یکی از خطاهایی که تو bitbake میگیرن do_fetch کردن این کرنل هست .
    ممنون از آموزشتون

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      ممنون از شما
      مثل اینکه هفته پیش این اتفاق افتاده
      اولین فرصت اصلاحش میکنم

      1. Avatar for علی اصغر علی اصغر گفت:

        سلام وقت بخیر ممنون از اموزش عالیتون
        این مشکلی مجید جان گفته بودن رو چطور میشه حل کرد تو Recipe کرنل و جایگزین کرد با لینک سالم؟

        1. Avatar for Mahdi.h   Mahdi.h   گفت:

          سلام
          اصلاح شد
          تست کنید اگر مشکلی بود بگید

      2. Avatar for رامین رامین گفت:

        با سلام و خسته نباشید

        امکان اصلاح یا ارسال لینک جدید رو دارین؟

    2. Avatar for رامین رامین گفت:

      با سلام لطف میکنین آدرس جدید رو بذارین

      1. Avatar for Mahdi.h   Mahdi.h   گفت:

        سلام
        اصلاح شد
        تست کنید اگر مشکلی بود بگید

    3. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      اصلاح شد
      تست کنید اگر مشکلی بود بگید

  8. Avatar for بهزاد بهزاد گفت:

    سلام – لازمه عرض کنم
    bitbake console-image
    کلی خطا میده و مراحل کلا قطع میشه
    scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc’; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
    collect2: error: ld returned 1 exit status
    make[3]: *** [scripts/Makefile.host:106: scripts/dtc/dtc] Error 1
    make[3]: *** Waiting for unfinished jobs….
    و کلی خطای دیگه… آیا خودتون این رو تست کرده بودین..
    تشکر.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      بله تست کردم و مشکلی نداره
      این ارور به نظر دلیلش نسخه اشتباه gcc هست
      توی انجمن سیسوگ مراحلی که طی کردید رو به همراه نسخه لینوکس و .. توی یک موضوع بنویسید تا مراحل رو با هم چک کنیم

  9. Avatar for بهزاد بهزاد گفت:

    سلام و عرض خسته نباشید.
    git://git.openembedded.org/meta-openembedded
    این لینک کارنکرد من حالا از سایت خودش یه لینک جایگزین رو \دا کردم
    ولی برای ساخت ایمج دستور بیت بیک خطا داد میگه بیت بیک وجود نداره..
    درحالیکه جزی از ‍بوکی هست و باید قاعدتا باشه..
    حالا اگر میشه یه راهنمایی بفرمایید. مرسی

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      به جاش از این لینک میتونید استفاده کنید
      git clone https://github.com/openembedded/meta-openembedded --depth 1 -b dunfell
      برای اینکه دستور bitbake کار بده هم حتما قبلش باید این دستور زده بشه
      source oe-init-build-env ~/yocto/build/sinux_v3

  10. Avatar for سعید سعید گفت:

    سلام،
    از چه ابزاری خواندن داده سریال از برد به کامپیوتر را انجام می دهید. من از این دستور استفاده می کنم:
    sudo putty /dev/ttyUSB0 -serial -sercfg 115200,8,n,1,N

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      به شخصه از gtkterm استفاده میکنم

  11. Avatar for A.T A.T گفت:

    سلام
    خدا قوت
    بسیار عالی

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      ممنون از شما

  12. Avatar for هادی براتی هادی براتی گفت:

    عالی👍🏻

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      ممنون از شما 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *