آموزش حرفه ای Embedded Linux with Buildroot

با Buildroot سیستم لینوکس صنعتی خود را بسازید!

Embedded Linux Development with Buildroot Course

نام دوره آموزشیلینوکس Embedded سطح سوم (Embedded Linux development with Buildroot)

 Logos For Embedded

معرفی دوره آموزشی: این دوره ی کاربردی و تخصصی ویژه ی سازمان ها یا متخصصانی است که تمایل دارند که سیستم  Embedded Linux  خود را ایجاد نمایند.Buildroot  یک ابزار متن باز ساده و کارآمد است که پروسه ساخت یک لینوکس کامل و قابل بوت را در سیستم های Embedded خودکار می کند. Buildroot یک System Builder است و در اصل برنامه ای  است که به توسعه دهندگان یک سیستم لینوکسی کمک می کند تا بسته های نرم افزاری لازم را برای ساخت یک سیستم انتخاب کرده و در نهایت یک توزیع لینوکس جدید ایجاد کنند، یعنی "هسته سیستم عامل" برای پلتفرم مورد نظر.  سپس می توان آن کرنل را با طیف گسترده ای از برنامه ها برای کاربر نهایی ترکیب کرد. Buildroot بر اصل سادگی و مصرف کم منابع استوار است. کوچکترین نصب ممکن 2.2 مگابایت بوده با حدود 1000 خط. قابل ذکر است که این پروژه به شدت توسط جامعه متن باز هدایت می شود، اگرچه حامیان مالی بزرگتری مانند گوگل نیز وجود دارند که مکرر ا از رویداد هایی مانند جلسات توسعه دهندگان پشتیبانی می کنند. این دوره سومین سطح از دوره های تخصصی Embedded Linux خانه لینوکس ایران بوده که در بالاترین سطح علمی و عملیاتی به متخصصان این حوزه ارائه می گردد.

  

محتوای آموزشی:

  • Introduction to Buildroot
  • Managing and building the configuration
  • Buildroot source and build trees
  • Toolchains in Buildroot
  • Managing the Linux kernel configuration
  • Root filesystem
  • Download infrastructure
  • GNU Make 101
  • Integrating new packages
  • Advanced package aspects
  • Analyzing the build
  • Advanced topics
  • Application development with Buildroot
  • Understanding the Buildroot internals
  • Buildroot community: support and contribution
  • What’s new in Buildroot?

مخاطبین دوره Embedded Linux development with Buildroot:

  • توسعه دهندگان سخت افزارهایی که از کرنل لینوکس استفاده می کنند
  • متخصصان و توسعه دهندگان سیستم های  Embedded Linux
  • متخصصان توسعه نرم افزار
  • متخصصان IOT

 

سطح دوره آموزشی: پیشرفته

 

مدت زمان آموزش: ۳۵ ساعت

 

نحوه برگزاری: بصورت آنلاین و حضوری

 

پیش نیاز آموزش: گذراندن دوره Linux Embedded سطح دوم

 

دوره رایگان Embedded Linux development with Buildroot: برای اطمینان از کیفیت دوره Embedded Linux development with Buildroot جلسه اول دوره را رایگان ثبت نام کنید.

 

زمانبندی و هزینه آموزش: برای اطلاع از هزینه لطفا به تقویم آموزشی مراجعه نمایید.

 

تجهیزات مورد نیاز:

  • یک کامپیوتر با سیستم عامل به انتخاب خودتان به همراه محیط گرافیکی، با مرورگر وبGoogle Chrome یا Chromium برای ارتباط ویدیو کنفرانس
  • وب کم و میکروفن ترجیحا با headset
  • دسترسی به اینترنت
  • نصب Virtualbox و حداقل 30 گیگ فضای خالی دیسک

 

سخت افزار شبیه سازی شده:

 سخت افزار شبیه سازی شده ARM Vexpress A9 board با QEMU

 

سخت افزار واقعی در سناریوهای عملی:

Raspberry Pi 4 یا هر برد Quad-core Cortex-A72 (64 bit SOC) ARM CPU from Broadcom با ویژگی های زیر:

  • 2GB LPDDR4 RAM
  • 1 Ethernet ports (1000 Mbit)
  • 802.11ac Wi-Fi
  • Bluetooth 5
  • 40-pin GPIO header
  • 2 USB 2.0 ports
  • 2 USB 3.0 ports
  • 1 MMC/SD slot
  • 6 serial ports
  • I2C, SPI ports
  • 2 MIPI DSI display ports
  • 2 MIPI CSI camera ports
  • 4-pole sterio audio and composite video ports
  • Dual monitor support (micro HDMI) up to 4Kp60
  • 5V DC via USB-C or GPIO header
  • Misc: JTAG, GPIOs

 

معتبرترین مدرک آموزشی: در پایان هر دوره مدرک معتبر اعطا خواهد شد که نمونه آن را می توانید در لینک"معتبر‌ترین مدرک IOT" مشاهده کنید. 


Embedded Linux and build system introduction

  • The general architecture of an embedded Linux system
  • Build systems vs. binary distributions
  • Role of a build system
  • Comparison of existing build systems

 

Introduction to bulidroot

  • Key facts about the project
  • Getting Buildroot
  • Basic configuration of Buildroot
  • Doing a first build

 

Basic Buildroot usage

  • Getting and setting up Buildroot
  • Configuring and building a basic system with Buildroot for the Apex-V210
  • Flash and test the generated system on the Apex-V210

 

Managing the build and configuration

  • Out of tree build
  • Using and creating defconfigs
  • Defconfig fragments
  • Other building tips

 

Buildroot source and build trees

  • Details about the Buildroot source code organization
  • Details about the Buildroot build tree

 

Toolchains in Builtroot

  • The different choices for using toolchains in Buildroot
  • Overview of the toolchain options
  • Using existing binary toolchains, such as Sourcery CodeBench toolchains, understanding multilib capabilities and integration of toolchains in Buildroot
  • Generating custom toolchains with Crosstool-NG, and re-use them as external
  • Toolchains

 

Managing the Linux kernel configuration

  • Loading, changing and saving the kernel configuration

 

Root filesystem construction in Buildroot

  • Understand how Buildroot builds the root filesystem: skeleton, installation of packages, overlays, post-build and post-image scripts
  • Customization of the root filesystem contents
  • System configuration: console selection, various /dev management methods, the different init
  • implementations, etc

 

Understand how Buildroot generates filesystem images

  • Rootfile systems customization
  • Explore the build output
  • Customize the root filesystem using a rootfs overlay
  • Customize the kernel with patches and additional configuration options
  • Add more packages
  • Use defconfig files and out of tree build

 

Download infrastructure in Buildroot

  • Downloading logic
  • Primary site and backup site, doing offline builds
  • VCS download, integrity checking
  • Download-related make targets

 

GNU Make 101

  • Basics of make rules
  • Defining and referencing variables
  • Conditions, functions
  • Writing recipes

 

Integrating new packages in Buildroot

  • How to integrate new packages in the Buildroot configuration system
  • Understand the different package infrastructures: for generic, autotools, CMake, Python packages and more.
  • Writing a package Config.in file: how to express dependencies on other packages, on
  • toolchain options, etc
  • Details on writing a package recipe: describing the package source code location, download
  • method, configuration, build and installation steps, handling dependencies, etc
  • New packages in Buildroot
  • Create a new package for nInvaders
  • Understand how to add dependencies
  • Add patches to nInvaders for Nunchuk support

 

Advanced package aspects

  • Licensing report
  • Patching support: patch ordering and format, global patch directory, etc
  • User, permission, device tables
  • Init scripts and systemd unit files
  • Config scripts
  • Understanding hooks
  • Overriding commands
  • Legacy handling
  • Virtual packages

 

Advanced packages

  • Package an application with a mandatory dependency and an optional dependency
  • Package a library, hosted on GitHub
  • Use hooks to tweak packages
  • Add a patch to a package

 

Analyzing the build: licensing, dependencies, build time

  • Usage of the legal information infrastructure
  • Graphing dependencies of packages
  • Collecting and graphing build time information

 

Advanced topics

  • BR2_EXTERNAL to store customizations outside of the Buildroot sources
  • Package-specific targets
  • Understanding rebuilds
  • Tips for building faster

 

Advanced aspects in action

  • Use build time graphing capabilities
  • Use dependency graphing capabilities
  • Use licensing report generation, and add licensing information to your own packages
  • Use BR2_EXTERNAL

 

Application development with Buildroot

  • Using Buildroot during application development
  • Usage of the Buildroot environment to build applications outside of Buildroot
  • Generate an SDK for other developers
  • Remote debugging with Buildroot

 

Application development with Buildroot in action

  • Build and run your own application
  • Remote debug your application
  • Use <pkg>_OVERRIDE_SRCDIR
  • Set up Eclipse for Buildroot application development

 

Understanding Buildroot internals

  • Detailed description of the Buildroot build process: toolchain, packages, root filesystem construction, stamp files, etc.
  • Understanding virtual packages

 

Getting support and contributing, what’s new in Buildroot

  • Getting support: Bugzilla, mailing list, IRC
  • Contributing: understanding the development process, how to submit patches
  • What’s new in Buildroot: summary of the major changes since the last two years

 

درباره buildroot بیشتر بدانید :

System Builder ها در اصل برنامه‌هایی هستند که به توسعه‌دهندگان یک سیستم لینوکسی کمک می‌کنند تا بسته‌های نرم‌افزاری لازم را برای ساخت یک سیستم انتخاب کرده و در نهایت یک توزیع لینوکس جدید ایجاد کنند، یعنی "هسته سیستم‌عامل" برای پلتفرم مورد نظر؛ در مورد بحث ما برای یک سیستم جاسازی شده. سپس می‌توان آن کرنل را با طیف گسترده‌ای از برنامه‌ها برای کاربر نهایی ترکیب کرد.این ابزارهای سازنده سیستم (System Builder) در انواع مختلف و اشکال مختلف موجود هستند. دو مورد از آنها که در سالهای اخیر به شکل خاصی برجسته شده‌اند، دو پروژه Buildroot و Yocto می‌باشند. هر دو پروژه متن‌باز هستند و امکان ساخت سیستم‌های تحت لینوکس را برای شما فراهم می‌کنند. آنها همچنین به طور گسترده در بخش صنعتی استفاده می‌شوند و به خوبی مستند شده‌اند. در نتیجه با استفاده از پروژهBuildroot یا Yocto، شما هر آنچه را که برای ساخت یک توزیع لینوکس نیاز دارید دریافت خواهید کرد، مواردی مثل:

  • یک سیستم فایل Root
  • یک زنجیره ابزار
  • خود هسته لینوکس
  • و همچنین بوت لودر

هر دو ابزار با حدود 2000 بسته نرم‌افزاری، از نظر کیفیت و کمیت تقریباً در سطح یکسانی قرار دارند. هر دو را می‌توان برای سیستم‌عامل‌ها و معماری‌های مختلف مانند ARM یا i386 ترکیب و استفاده کرد. به همین دلیل است که Yocto و Buildroot نیز از "کراس پلتفرم" صحبت می‌کنند.

Build System هایی که توسط جامعه نگهداری می‌شوند مانند دو پروژه Buildroot و Yocto، جاسازی (Embedding) لینوکس را انتزاعی و خودکار کرده‌اند، تا جایی که هر توسعه‌دهنده‌ای می‌تواند برای اکثر معماری‌ها و پلتفرم‌ها به راحتی توزیع مورد نظرشان را ایجاد کند. با این حال، شرکت‌هایی که از لینوکس های تعبیه شده در محیط عملیاتی و در مقیاس زیاد استفاده می‌کنند، الزاماتی دارند که مشارکت‌های جامعه آزاد به آنها نمی‌پردازد.

همان‌گونه که گفته شد دو پروژه Buildroot و OpenEmbedded (سیستم ساخت پروژه Yocto) از محبوب‌ترین ابزارهای موجود در صنعت برای ساخت سیستم‌های لینوکس تعبیه شده سفارشی هستند. در حالی که هدف کلی یکسانی دارند، از نظر رویکرد در حل مشکل، از نظر پیکربندی، از نظر سناریوهای استفاده و استفاده روزانه تفاوت چشمگیری دارند.

 

پروژه Buildroot :

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

 

سوالات رایج به نحوه شرکت در دوره ها:

چه کسانی نیاز دارند این دوره را بگذرانند؟

این دوره ی کاربردی و تخصصی ویژه ی سازمان ها یا متخصانی است که تمایل دارند که سیستم Embedded Linux خود را ایجاد نمایند.

 

برای شرکت در این دوره چه پیش نیازهایی باید داشته باشیم؟

دانش لینوکس در سطح دوره Embedded Linux Level 2 نیاز است.

 

با گذراندن این دوره در چه حوزه هایی می توانم وارد شوم؟

شما با یادگیری لینوکس می توانید در حوزه هایی چون مدیریت سیستم، شبکه و زیر ساخت، علوم داده، توسعه نرم افزار، DevOps، IOT، Embedded systems و خیلی حوزه های تخصصی دیگر وارد شوید.

دوره های خانه لینوکس حضوری هست یا آنلاین؟

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

 

آیا امکان شرکت در دوره ها از خارج از ایران امکان پذیر هست؟

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

 

سامانه آموزش آنلاین مجموعه چیست؟

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

 

آیا کیفیت دوره های آنلاین به اندازه دوره های حضوری هست؟

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

 

دوره ها به چه زبانی برگزار می گردند؟

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

 

آیا می توانم همزمان در دو یا چند دوره آموزشی شرکت نماییم؟

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

 

آیا امکان پرسش و پاسخ در کلاس آنلاین وجود دارد؟

بله شما در طول کلاس می توانید بصورت صوتی و یا تصویری، یا بصورت چت و حتی با به اشتراک گذاری تصویر صفحه کامپیوترتان در سامانهLMS ، به راحتی سوالات خود را بپرسید و استاد محترم مشکلات شما را در طول دوره به بهترین نحو حل می نماید.

 

آیا مدرس دوره تجربه عملیاتی مناسبی در حوزه مربوطه دارد؟

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

 

آیا می توانیم قبل از شرکت در دوره تعیین سطح و مشاوره داشته باشیم؟

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

 

امکان شرکت در کلاس ها بصورت آفلاین وجود دارد؟

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

 

ساعت برگزاری دوره ها به چه صورت است؟

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

 

آیا تعداد ساعت دوره های حضوری و آنلاین با یکدیگر متفاوت است؟

خیر، کاملا یکسان است.

 

سوالات رایج آزمون ها و مدارک:

آیا پس از دوره مدرک معتبر دریافت می کنم یا باید در آزمون های بین المللی شرکت کنم؟

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

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

 

آیا مدرک خانه لینوکس قابل ترجمه هست؟

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

 

آیا می توانم بدون شرکت در دوره آموزشی در آزمون بین المللی شرکت کنم؟

بله، در صورت آمادگی برای شرکت در آزمون های بین المللی لینوکس، این امکان وجود دارد.

 

آزمون های بین المللی به چه زبانی برگزار می شوند؟

این آزمون ها در ایران به زبان انگلیسی برگزار می گردند.

 

چگونه داوطلبان می توانند صحت مدارک خود را به کارفرمایان اثبات کنند؟

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

 

آزمون پایان دوره به چه صورت است؟

این آزمون به صورت آنلاین در سامانه LMS مجموعه برگزار می گردد. اجرای تمارین کلاسی و تاییدیه مدرس جهت صدور مدرک نیاز است.

 

سوالات عمومی:

آیا من می توانم ویدیوی دوره را ضبط کنم؟

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

 

چه نیازمندی های سخت افزاری برای برگزاری این کلاس به صورت آنلاین نیاز هست؟

داشتن یک سیستم با حدود 30 گیگ هارد خالی و حداقل 8 گیگ مموری و حداقل cpu در سطح core i3 نیازمندی شرکت در این دوره هست. در دوره های حضوری مجموعه به هر دانشجو یک سیستم مجزا تخصیص داده می شود. دسترسی به اینترنت نیز برای کلاس های آنلاین، نیاز است.

 

آیا من پشتیبانی رو در طول دوره دارم؟

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

 

آیا امکان پیشنهاد کار از سمت موسسه به دانشجویان وجود دارد؟

بله، بدین منظور موسسه همواره آگهی های شغلی سازمان های همکار را در شبکه های اجتماعی منتشر می کند و با کسب دانش و تخصص، دانشجویان توانسته اند در بهترین شرکت ها و سازمان های داخلی و خارجی جمله Dell، Cisco، MTN، Amazon و حتی NASA مشغول به کار شوند.

 

آیا کلاس را می توانم بصورت خصوصی و یا اختصاصی برای سازمان برگزار کنم؟

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

 

آیا مسیر آموزشی مشخصی برای ادامه کسب تخصص وجود دارد؟

بله، حرفه ای ترین مسیر آموزش نتیجه سال ها تجربه و آموزش حرفه ای در صنعت و همچنین نتیجه اتاق فکر اساتید آنیسا بصورت یک Roadmap جامع در حوزه های مدیریت سیستم های لینوکس، توسعه نرم افزار، DevOps، IOT، Data Science، شبکه و DevNet و همچنین زیرساخت به دانشجویان ارائه می گردد.

 

تا چه مدت به دوره دسترسی دارم؟

در دوره های آنلاین، تا دو ماه پس از اتمام دوره، ویدیوهای دوره قابل بازدید در سامانه آموزش آنلاین است.

 

سوالات رایج ثبت نام و پرداخت:

آیا امکان پرداخت هزینه دوره بصورت اقساط وجود دارد؟

بله خوشبختانه، این امکان وجود دارد.

 

آیا تخفیفی برای شرکت در دوره ها وجود دارد؟

بله تخفیفات دائمی چون تخفیف گروهی، دوره های همزمان، تخفیف معرفی و تخفیفات مناسبتی وجود دارد.

 

گروه سنی مخاطب دوره ها چیست؟

مخاطب دوره های تخصصی آنیسا معمولا جوانان و بزرگ سالان متخصص هستند اما دوره های مجزایی برای رده سنی نوجوانان و کودکان وجود دارد.

 

چگونه می توانم برای شرکت در دوره ثبت نام کنم؟

کافی است برای شروع در قسمت پیش ثبت نام، پیش ثبت نام را انجام داده و منتظر تماس همکاران ما باشید که در اسرع وقت و در ساعات اداری با شما تماس خواهند گرفت و شما را در ادامه پروسه ثبت نام همراهی می نمایند.

 

آیا رعایت پیش نیاز ها واجب است؟

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

 

من دانش آموزم آیا می توانم در دوره ها شرکت کنم؟

بله، با مشاوره و سنجش دانش شما در حوزه IT امکان شرکت در دوره مناسب سن و دانش شما وجود دارد.

 

 

 

دوره های پیشنهادی