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

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

امبدد لینوکس – قسمت نهم – Toolchain یا زنجیره‌ای از ابزارهای لازم برای ساختن همه چیز (بخش پنجم)
امبدد لینوکس – قسمت نهم – 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 بازی کنید تا باهاش بیشتر آشنا بشید، چون توی قسمت بعد بدردتون خواهد خورد.

 

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

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

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

برچسب ها

حمایت از Rich_Dad IRANEMBEDDED

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

0 نفر

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

توجه

Rich_Dad IRANEMBEDDED
Rich_Dad IRANEMBEDDED

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

دیدگاه ها

16 دیدگاه

  • صاحبی
    ۲۳ خرداد ۱۴۰۰

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

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

  • Pouya
    ۲۳ فروردین ۱۴۰۰

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

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

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۶ اردیبهشت ۱۴۰۰

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

  • محمد پورخلیلی
    محمد پورخلیلی
    ۳ بهمن ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۶ بهمن ۱۳۹۹

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

  • سجاد
    ۲۷ شهریور ۱۳۹۹

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

  • علی اسماعیلی
    CounterMader
    ۲۵ شهریور ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۲۹ شهریور ۱۳۹۹

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

  • احسان
    ۱۹ شهریور ۱۳۹۹

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

    • Rich_Dad IRANEMBEDDED
      Rich_Dad
      ۲۵ شهریور ۱۳۹۹

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

      • احسان
        ۲۵ شهریور ۱۳۹۹

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

        • Rich_Dad IRANEMBEDDED
          Rich_Dad
          ۲۹ شهریور ۱۳۹۹

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

  • عباس
    ۱۹ شهریور ۱۳۹۹

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

پر بحث ترین ها

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

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

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

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

Zeus ‌ Zeus ‌
  • 4 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 2 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 11 ماه پیش

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

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

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

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

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

Zeus ‌ Zeus ‌
  • 3 سال پیش

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

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

Mahdi.h   Mahdi.h  
  • 3 سال پیش

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

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

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

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