امبدد لینوکس.
سلام، همیشه سؤال پرسیدن رو دوست دارم و این بار هم باز با سؤال و جواب سر صحبت رو باز میکنم.
من: امکانات Raspberry Pi Zero میدونید چی هست؟
شما: بله، SOC این برد BCM2835 هست که CPUش ARM1176JZF-S 1GHz هست، FPUش VFPv2 و GPUش Broadcom VideoCore IV با فرکانس 250MHz هست. خروجی HDMI داره، ورودی دوربین MIPI داره، USB داره از نوع High Speed، رمش 512 Mebibyte (MiB) هست، انواع لینوکس امبدد و کلی سیستم عامل دیگه میتونی روش بریزی و خیلی چیزهای دیگه.
من: قیمتش چند هست با این همه امکانات؟
شما: فقط 5 دلار!
من: با 5 دلار چه بردی از شرکت ST یا NXP یا Microchip میتونید بخرید؟
شما: برد؟!!! به زور شاید یه میکرو 200 مگاهرتزی بشه خرید باهاش.
من: داستان چی است؟ ما یه برد داریم با این همه امکانات به قیمت فقط 5 دلار، تازه، پردازندش هم مال شرکت Broadcom هست نه یه شرکت ناشناس چینی! بعد ماها و خیلیهای دیگه تو کل دنیا میریم با کلی مشقت یه برد طراحی میکنیم واسه یه میکروکنترلر که با امکاناتی خیلی کمتر از این برد قیمتی بیشتر هم داره؟
دقیقا اصل ماجرا چیه؟!
خوب، این اولین صحبت من با شما در مورد بحث شیرین و مفصل امبدد لینوکس Embedded Linux هست پس بهتره اولش یکم سنگ هامون رو با هم وابکنیم و من یکم درد دل کنیم!
اول بگم که Embedded Linux که از این به بعد به اختصار بهش میگیم eLinux گرفتن یه برد آماده و استفاده از سیستم عامل و بوت لودر و بقیه چیزهای آماده و نوشتن یه برنامه با پایتون و ذوق کردن نیست! بلکه قراره خودمون سیستم عامل مخصوص خودمون را کامپایل کنیم.
eLinux همون طور که شاید خیلیهاتون تا الآن متوجه شده باشین یه اقیانوس هست که یادگیریش واقعاً نیاز به وقت و همت داره! تقریباً توش هیچ چیز آمادهای مثل AVRCodeWizard یا CubeMX وجود نداره. با آزمون و خطا توش خیلی کاری نمیشه کرد و باید مطالعه کرد و یاد گرفت!
در واقع جزو کارهای عمیق محسوب میشه. کارهایی که هر کسی حوصله یادگیری و انجام دادنش رو نداره.
پیشنهاد میکنم کتاب کار عمیق رو بخونید و یا خلاصه این کتاب رو از این لینک گوش کنید تا منظورم رو از کار عمیق بهتر متوجه بشید و بفهمید چرا عدهای از الکترونیک و درآمدشان بسیار راضی و عدهای دیگر بسیار ناراضی هستند.
کلی سؤال جورواجور در مورد امبدد لینوکس!
احتمالاً بعضیهاتون چند باری وسوسه شدید برید سراغ امبدد لینوکس یا همون eLinux ولی عظمت اقیانوس ترسونده شما رو! شاید یکم هم شنا کرده باشین، ولی خوب جرات نکرده باشین خیلی دور شین از ساحل!
من هم روز اول از این همه اسم و مبحث جدید و ارتباط و بی ارتباطیشون به هم میترسیدم و اصلاً نمیدونستم چیو باید بخونم یا دنبال چی بگردم.
نصب لینوکس روی ماشین مجازی یا واقعی؟
اصلاً کدوم توزیع لینوکس واسه من تازه کار؟ Fedora، Debain، Ubuntu و …
چقدر فضا لازمه؟ پارتیشن بندیش چه طوره؟ این swap چی هست؟
Cross Compiler یا کلیتر Toolchain یا اصلاً GNU Tools چی هستن اینا؟
با همون Toolchainی که واسه رسپبریپای برنامه رو بیلد میکنم میتونم واسه اورنجپای هم بیلد کنم یا نه؟
اصلاً اگه خودم بخوام از سایت ARM یا Linaro دانلود کنم کدوم رو باید دانلود کنم؟
Bootloader که خوب، بوت لودره ولی این U-Boot چی هست؟ واسه هر برد فرق میکنه؟ یا نه بستگی به پردازنده داره؟ Bare Metal چی هست دیگه؟
این همه نسخه کرنل، کدومش بدرد برد من میخوره؟ چه جوری به کرنل بفهمونم بردم چی هست؟
اگه یه روزی خواستم LED رو به جایی به جز اونی که خودش وصل کرده وصل کنم چی؟
این Device Tree چی میگه؟
Buildroot، Yocto اینها چی هستن؟
یه PetaLinux هم شنیدم واسه Xilinx هست اون دیگه چیه؟ یعنی همه اینا رو باید بلد باشم یا یکیشون کافیه یا هیچ کدوم؟
Rootfs؟
SSH؟
Shell چیه؟ bash چیه؟ BusyBox چی میگه این وسط؟
چرا هر چی از گیتهاب میخوام بگیرم میگن بهتره یا باید git clone کنی؟ چرا مثل ویندوز راحت زیپش رو دانلود نکنم؟
Python هم لازمه حتماً؟
آخه میگن واسه eLinux باید حتماً Python بلد باشی! (تن لینوس و کِریم در حال لرزیدن ???)
این Qt که cute میخوننش چی هست؟
اینها و خیلی سوالهای دیگه ممکنه شما رو از ورود به دنیای eLinux بترسونه و حتی نا امید کنه!
برو تو دل کار!
نترسین و نا امید نشین! به جواب تک تک این سوالها و خیلی سوالهای دیگه در مورد امبدد لینوکس با هم خواهیم رسید.
یه فیل رو چطور میخورن؟ بله! لقمه، لقمه ?!
لقمه اول:
ماشین مجازی یا واقعی؟ قطعاً واقعی!!!
من خودم خیلی قدیما دوبار کل هاردم پرید سر نصب نسخه واقعی ولی خوب یاد گرفتم!
الآن شما با یه سرچ راحت میتونید بدون پریدن هاردتون این کار رو انجام بدین!
کدوم توزیع؟ برای ما تازه کارها Ubuntu از بقیهشون راحتتر و بهتره.
چقدر فضا لازمه؟ پارتیشنبندیش چه طوره؟ این swap چی هست؟
من الآن 50 گیگ از SSD م و 116 گیگ از HDD م مال لینوکس هست.
شما هم یه صد و پنجاه گیگ یا بیشتر فضا خالی کنید از لپ تاپتون.
آخرین نسخه LTS Ubuntu رو از سایتش بگیرید و روی سیستمتون نصب کنید.
واسه swap هم 8 یا 16 گیگ فضا کافی هست.
? تا لقمه بعدی !
راستی میدونید چرا سؤال کردن خوبه ؟ چون سؤال به ذهن قلاب میشه!
میپرسید یعنی چی ؟
ببینم، ساعت چنده؟
دیدید، ذهنتون رفت سمت اینکه الان ساعت چنده!
این یعنی: سؤال به ذهن قلاب میشه
لقمه بعدی (قسمت بعد) رو ازینجا میتونید مطالعه کنید، اما بهتره قبلش یه سری هم به نظرات این پایین بندازید!
همه آموزش های امبدد لینوکس
منبع :سیسوگ
[…] بگم که من به هر بخشی که منتشر میشه میگم یه فصل و فصل قبل، فصل منفی یک بود نه صفر! الان با پیشگفتار و بلافاصله […]