openwrt و اضافه کردن یک پکیج جدید

اینم یه تجربه پراکنده!

توی پست قبل من OpenWrt رو معرفی کردم. بعد از یه مدت متوجه شدم که یه پروژه جدید به نام LEDE ایجاد شده که انگار همونه و الان حدود ۲ سال هست که OpenWrt زیاد بروزرسانی نمی‌شه. حالا با توجه به علاقه‌ام به کارهای نزدیک سخت‌افزار و مسائل مرتبط به cross compile سعی کردم که کل OpenWrt رو کامپایل کنم و سعی کنم یه پکیج جدید بهش اضافه کنم.

البته پکیجی که من دنبالش بودم tun2socks بود که پکیجش بصورت غیر رسمی وجود داشت. کاری که من کردم این بود که آدرس‌ها رو عوض کردم و یادگرفتم که چطور میتونم اون رو برای روترم کامپایل کنم. نتیجه کار من رو میتونید توی گیت‌هاب من پیدا کنید

روند کار به ترتیب اینجوریه که:

  1. اول سورس کد رو با گیت از گیت‌هاب میگیرید
  2. دوم با توجه به راهنمای آنلاین تمام پکیج‌ها رو دانلود میکنید
  3. پکیج رو اضافه می‌کنید
  4. با استفاده از نوع معماری سیستم و نوع دستگاه و پکیج‌ها رو انتخاب می‌کنید
  5. و از ابتدا کامپایلر و کل لینوکس و پکیج رو کامپایل میکنید

پینشهاد میکنم که برای شروع اینها بخونید:

امیدوارم به دردتون خورده باشه!

همین!

OpenWrt و کارهای جانبی آن

اینم یه تجربه پراکنده دیگه!

توی پست قبل من OpenWrt رو معرفی کردم. بعدش هم من پول دادم و یدونه از این روترهای به نسبت ارزون خریدم که usb رو پشتیبانی می‌کرد. حالا خواستم یه پست کوتاه بنویسم که با این دستگاه میشه چه کاری‌های دیگه ای انجام داد انجام داد.

به نظرم لیست کارهای ایناست:
– بخاطر داشتن پکیجهای aria2 و transmission به همراه داشتن usb گزینه مناسبی برای دانلود کردن اتوماتیک هست
– میشه کارهای مدل Internet of Things انجام داد. مثلا میشه یه سری کلید تحت شبکه رو کنترل کرد. این کلیدها با گرفتن یه دستور خاص خاموش یا روشن میشن. پس میشه کلی کار جذاب تو مایه‌های اتوماسیون خانگی و خانه هوشمند و اینا انجام داد.
– میشه بصورت ساده دسترسی به اینترنت رو به ساعاتی محدود کرد. مثلا میشه گفت که فلان دستگاه فقط تو این ساعات به اینترنت درسترسی داره. این به درد دستگاه‌هایی میخوره که امکان زمانبندی کارها توشون وجود نداره
– میشه با کمک minidlna یا emby تبدیلش کرد به یه media server برای اشتراک گذاری فیلم و موسیقی

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

همین!

پ. ن. من واسه اینکه usb رو روی یکی از مدلهای tp-link راه بندازم یکبار روتر رو تا دم مرگ بردم و با روشهایی سخت افزاری که تو عکس هست دوباره زندش کردم!

کامپایل کد برای پلتفرم‌های مختلف

اینم یه تجربه پراکنده دیگه!

خب اگه شما بخوای یه کد رو برای یه پلتفرم غیر x86 یا x86_64 که همون ۳۲ بیتی و ۶۴ بیتی خودمون هستند کامپایل کنید، نیاز دارید که مفهومی به نام ToolChain مخصوص به اون پلتفورم رو داشته باشید. مثلا اگه بخواید کدی قاعدتا به زبان C یا C++ بنویسید که رو raspberry pi کار کنه باید اون رو کامپایلر مخصوص اون پلتفروم کامپایل کنیم و با کتابخانه‌های مربوطه که باز هم با همون کامپایلر کامپایل شدن لینک و در نهایت اجرا کنیم. برای این کار شما نیاز به چند تا چیز دارید

  • کامپایلر
  • لینکر
  • کتابخانه استاندارد سی

حالا ابزارهایی بوجود اومده که به شما کمک میکنه که این ابزارها رو برای تقریبا هر پلتفرمی درست کنید. اسم اون ابزار crosstool-ng هست. من هم کمک دارم ازش استفاده میکنم که اس دی کی یک دستگاه embedded رو ببرم به لینوکس. اگه موفق شدم بیشتر در موردش براتون مینویسم

همین!