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

امبدد لینوکس – قسمت نهم – Toolchain یا زنجیره‌ای از ابزارهای لازم برای ساختن همه چیز (بخش پنجم)

آموزش امبدد لینوکس

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

(فصل دوم – بخش پنجم)

قسمت قبل

 

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

 

ساختن تولچین Toolchain

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

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

برای کار در راه اول، اگه کسی علاقه داشت می‌تونه بره سراغ این سایت:

http://www.linuxfromscratch.org/

 

ما روش دوم رو انتخاب می‌کنیم و ابزاری هم که باهاش این کار رو می‌خواهیم انجام بدیم اسمش crosstool-NG هست که زمان کریم اسمش crosstool بوده.

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

 

کراس تول ان جی یا کراس تول (crosstool / crosstool-NG)   چیست؟

سال‌ها پیش آقای Dan Kegel یه سری اسکریپ و makefile نوشت برای ساختن کراس تولچین و اسمش رو گذاشت crosstool که خوشبختانه هنوز هم از این آدرس قابل دسترس هست:

http://kegel.com/crosstool/

 

بعدها آقای Yann E. Morin اومد پشتیبانی از uClibc رو به کار آقای Kegel اضافه کرد و اسمش رو گذاشت crosstool-NG که اون NG مخفف Next Generation هست.

اگه یه سر به سایت crosstool-NG بزنیم می‌بینیم که خودش خودش رو اینجوری معرفی کرده:

Crosstool-NG is a versatile (cross) toolchain generator. It supports many architectures and components and has a simple yet powerful menuconfig-style interface.

به زبون خودمونی crosstool-NG یک تولچین‌ساز همه کاره است که معماری‌های بسیاری رو پشتیبانی می‌کنه و رابط کاربریش هم menuconfig طور هست. حالا menuconfig چیه؟ عجول نباشین، می‌بینمیش یکم دیگه.

 

دانلود و نصب crosstool-NG

یا علی گفتیم و کارهای عملی آغاز شد!

یه سر به قسمت داکیومنت سایت می‌زنیم ببینیم برای نصب چه باید کرد:

http://crosstool-ng.github.io/docs/

بله فقط فهرست اینجا هست و دیگر هیچ 🙂

پس می‌ریم به قسمت Installing crosstool-NG.

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

خوش‌بختانه کریس رفته دیده و می‌گه که باید این‌ها رو نصب کنید:

 

حالا قبل از اینکه بریم واسه دانلود کردن crosstool-NG من یکم منظم‌سازی می‌کنم

 

خب حالا می‌ریم واسه گیت کردن و ساختن و نصب  crosstool-NG.

 

اول اینجوری گیتش می‌کنیم:

 

بعد میریم توی فولدرش

 

بعد با این دستور می‌بینیم که چه نسخه‌ای هست

 

که به من می‌گه

 

همنیجا بگم که اگه گیت رو بلد نیستین برین از عمو جادی یاد بگیرین!

حالا قبل از make باید اسکریپت bootstrap رو اجرا کنیم

 

خب مثل هر سورس دیگه‌ای توی لینوکس مراحل رو می‌ریم فقط من ترجیح می‌دم که بش بگم قراره اینجا نصب شی

 

پس سه تا دستور زیر رو اجرا می‌کنیم

 

خب اگه همه چی خوب پیش بره خروجی این دستور باید واستون جذاب باشه!

تولچین Toolchain

 

 

خب حالا شما یکم به این اسم‌ها دقت کنید و سعی کنید یکم با crosstool-NG بازی کنید تا باهاش بیشتر آشنا بشید، چون توی قسمت بعد بدردتون خواهد خورد.

 

پایان بخش پنجم از فصل دوم

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

همه آموزش های امبدد لینوکس

author-avatar

درباره Rich_Dad (آنی روت)

طراحی، بهینه سازی و تولید محصولات الکترونیکی، درحوزه های تجاری،صنعتی و تجهیزات پزشکی، مجری سیستم های امبدد لینوکس *( مهندسی-بازرگانی آنی روت https://aniroot.com )

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

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

23 دیدگاه در “امبدد لینوکس – قسمت نهم – Toolchain یا زنجیره‌ای از ابزارهای لازم برای ساختن همه چیز (بخش پنجم)

  1. Avatar for علیخانی علیخانی گفت:

    reza@areza-ThinkPad-P50:~/EmbededLinux/f1c100s/build-tools/crosstool-ng$ dir
    ABOUT-NLS bash-completion config.h.in configure contrib debian kconfig m4 Makefile.in po scripts verbatim-data.mk
    aclocal.m4 bootstrap config.h.in~ configure~ COPYING docs LICENSE maintainer packages README.md testing
    autom4te.cache config config.log configure.ac ct-ng.in issue_template.md licenses.d Makefile.am paths.sh.in samples TODO
    areza@areza-ThinkPad-P50:~/EmbededLinux/f1c100s/build-tools/crosstool-ng$ make
    make: *** No targets specified and no makefile found. Stop.
    areza@areza-ThinkPad-P50:~/EmbededLinux/f1c100s/build-tools/crosstool-ng$ sudo make install
    [sudo] password for areza:
    make: *** No rule to make target ‘install’. Stop.

  2. Avatar for احمدرضا علیخانی احمدرضا علیخانی گفت:

    درود بر شما. من تا اینجا دروس را دنبال کرده ام اما دو دستورmake,make install اجرا نمی شود(no such file or directory) ubuntu 24.04 کار می کنم
    لطفا راهنمایی فرمایید

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

      سلام. قبلش دستور configure رو اجرا کردید ؟
      بدون ارور اجرا شده ؟

      1. Avatar for احمدرضا علیخانی احمدرضا علیخانی گفت:

        بلی در دایرکتوری دو فایل Makefile.in و Makefile.am وجود داردکه توی اینترنت سرچ کرده ام میگه باید توی دایرکتوریMakefile بدون پسوندوجود داشته باشه(دایرکتوریcrosstool-ng),configure هم اجراشده
        ممنون

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

          همونطور که گفتم باید بدون ارور اجرا شده باشه.
          برای اینکه راحت تر بتونیم پیش بریم سوالتون رو داخل انجمن بپرسید
          خروجی دستور configure رو هم قرار بدید
          https://ask.sisoog.com/

  3. Avatar for صاحبی صاحبی گفت:

    سلام
    کراس تول ان جی نصب شد.
    فقط مشکلی که من خوردم DNS لینوکسم آی پی ایرانی بود، برای همین بعضی از پکیج‌ها رو نصب نمیکرد دستور apt-get update خطای دریافت اطلاعات میزد. DNS ها رو به 8.8.8.8 و 1.1.1.1 تغییر دادم اون چندتا پکیجی که نصب نمیشدن، نصب شدن و بعدشم به سلامتی دستور ct-ng list-sample اجرا شد.

    ممنونم و سپاسگذارم

    1. Avatar photo آنی روت گفت:

      سلام وقتتون بخیر
      ممنون از همراهی شما

  4. Avatar for Pouya Pouya گفت:

    سلام … ابزار هایی که برای اجرای کامند های فوق بود کامل نبود.
    من از ubuntu linux استفاده می کنم البته.
    که برای اجرای کامند ها باید قبلش دوتا ابزار دیگه که با دستور های زیر می تونید نصب کنیدشون.
    sudo apt install help2man
    sudo apt install libtool-bin

    1. Avatar for Pouya Mohammadi Pouya Mohammadi گفت:

      البته اینو بگم که برای هر کسی ممکنه هر اتفاقی بیوفته اخرش که متفاوته با دیگری … حتما ارور هاتون رو بخونید شاید با یه sudo apt install توی اون مراحل نصب کارتون راه بیوفته 🙂

    2. Avatar photo Rich_Dad گفت:

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

    3. Avatar photo آنی روت گفت:

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

  5. Avatar for محمد پورخلیلی محمد پورخلیلی گفت:

    سلام و تشکر، من کلی داخل نت برای f1c100s سرچ کردم اما هیچکدوم مطالبشون پیوسته و پایه ای نبود.

    1. Avatar photo Rich_Dad گفت:

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

  6. Avatar for سجاد سجاد گفت:

    درود و خسته نباشید

    1. Avatar photo Rich_Dad گفت:

      سلام و تشکر

  7. Avatar for CounterMader CounterMader گفت:

    سلام و تشکر بابت آموزش.
    «گفته که با توجه به سیستم‌عامل هاست یه سری پیش نیازها هست که برید از اینجا ببینید.»
    تقریبا سخت ترین بخش ساخت crosstoll این بخش هست که نیاز داره به کار با داکر(البته با توجه به متفاوت بودن نسخه سیستم عامل ها و کتابخانه های مختلف ،استفاده از داکر منطقی هست).جادی عزیز یه آموزش در رابطه با داکر داره که دوستانی که آشنایی ندارن میتونن استفاده کنن.
    Rich_Dad عزیز بهتر بود این بخش رو بیشتر توضیح میدادید.

    1. Avatar photo Rich_Dad گفت:

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

  8. Avatar for احسان احسان گفت:

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

    1. Avatar photo Rich_Dad گفت:

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

      1. Avatar for احسان احسان گفت:

        خیلی هم عالی
        کمتر کسی مطالبی به این ارزشمندی در اختیار دیگران قرار میده
        ممنون

        1. Avatar photo Rich_Dad گفت:

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

  9. Avatar for عباس عباس گفت:

    سلام. مهندس عالی پیش میرید. خسته نباشید

    1. Avatar photo Rich_Dad گفت:

      سلام و تشکر

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

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