نوشته‌های من

درباره برنامه‌نویسی، بازی، کتاب و هر چیزی که دوست داشته باشم

نوشته‌های من

درباره برنامه‌نویسی، بازی، کتاب و هر چیزی که دوست داشته باشم

نوشته‌های من
طبقه بندی موضوعی

۳ مطلب در اسفند ۱۳۹۱ ثبت شده است

ویرایش: تلفظ صحیح Arch، آرچ است و نه آرک. در متن اصلاح شد.

در این مطلب سعی می‌کنم که نحوه نصب لینوکس آرچ را به روی کوبی‌بورد آموزش بدم. البته به تفصیل و به صورتی که با کمی دقت و تغییر بشود برای بورد‌های آرم دیگر و برای نصب توزیع‌های دیگر لینوکس هم مفید واقع شود. لازم به ذکر است که این نصب تنها بل خروجی تصویر HDMI آزمایش شده است و برای دریافت خروجی روی مانیتور و یا LCD بایستی بعد از نصب برخی تنظیمات تغییر یابند.

نحوه بوت شدن

قبل از بررسی و انجام مراحل مختلف نصب و راه‌اندازی لینوکس روی کوبی‌بورد، بهتر است مراحل بوت شدن این بورد را متوجه شویم.  پردازنده‌های Allwinner A10 دارای یک BROM هستند. این قسمت از پردازنده از دو بخش تشکیل شده است. بخش اول وظیفه راه‌اندازی بورد از روی حافظه‌های جانبی همچون NAND و یا MMC را دارد و بخش دوم از یک برنامه به نام FEL تشکیل شده است که در اینجا به آن نمی‌پردازیم. چنانچه دکمه مربوط به FEL پایین نباشد BROM بخش اول را اجرا می‌کند که وظیفه راه‌اندازی بورد از روی حافظه‌های جانبی را دارد و به ترتیب زیر عمل خواهد کرد:
  1. اطلاعات مورد نیاز راه‌اندازی بورد را از اولین کارت حافظه می‌خواند (حداقل این اطلاعات ۴کیلو بایت هستند و از ابتدای کارت حافظه ۸کیلوبایت فاصله دارند) چنانچه این اطلاعات وجود داشته باشند و معتبر باشند ادامه راه‌اندازی به این قسمت سپرده می‌شود.
  2. چنانچه اطلاعات در اولین کارت حافظه وجود نداشته باشند و یا معتبر نباشند اطلاعات مورد نظر از حافظه NAND خوانده می‌شود و در صورت موجود بودن و معتبر بودن ادامه راه‌اندازی به این قسمت سپرده می‌شود.
  3. و در ادامه چنانچه اطلاعات مورد نظر روی حافظه NAND وجود نداشته و یا معتبر نباشد این اطلاعات از روی کارت حافظه دوم خوانده می‌شود.
  4. و در نهایت چنانچه اطلاعات مورد نیاز در کارت حافظه دوم نیز موجود نباشد و یا نامعتبر باشد، ادامه راه‌اندازی بورد به برنامه FEL واگذار خواهد شد.
اطلاعات راه‌اندازی که BROM از روی کارت حافظه می‌خواند به «راه‌انداز برنامه ثانویه» و یا (SPL) شناخته می‌شود. همانطور که متوجه شده‌اید BROM قابل تغییر نیست و وظیفه SPL مربوط به راه‌اندازی سخت‌افزار بورد است و پس از انجام وظایف خود راه‌انداز دیگری را فرا‌می‌خواند که به آن U-Boot گفته می‌شود. U-Boot راه‌اندازی است که سیستم عامل را راه‌می‌اندازد. U-Boot می‌بایست از ۳۲کیلوبایتی اول حافظه شروع شود.

در نتیجه مراحل راه‌اندازی بورد به این ترتیب است:

ترتیب راه‌اندازهای کوبی‌بورد
در بیشتر موارد فایل‌های مربوط به SPL Loader و U-Boot برای هر سخت‌افزاری، توسط سازندگان آن در دسترس است و نیازی به تولید آن‌ها نیست هر چند این امکان وجود دارد. برخی سازندگان سخت‌افزار همچون کوبی بورد یک بسته سخت‌افزاری در اختیار کاربران قرار می‌دهند که علاوه بر راه‌انداز‌ها حاوی کرنل کامپایل شده مناسب برای بورد و ماژول‌های کرنل و درایورهای سخت‌افزاری آن بورد می‌باشند.
بسته سخت‌افزاری کوبی‌بورد با ۱گیگا بایت حافظه را از اینجا و بسته سخت‌افزاری کوبی بورد با ۵۱۲مگا بایت حافظه را از اینجا دریافت کنید.
  • حامد ذقاقی

کوبی بورد

کوبی‌بورد یک بورد توسعه است که اولین بار در سایت indiegogo.com معرفی شد و  پس از جمع آوری مبلغ مورد هدف پروژه، بورد طراحی، ساخته و ارائه شد. این بورد دارای مشخصات زیر است:

  • 1G ARM cortex-A8 processor, NEON, VFPv3, 256KB L2 cache
  • Mali400, OpenGL ES GPU
  • 512M/1GB DDR3 @480MHz
  • HDMI 1080p Output
  • 10/100M Ethernet
  • 4Gb Nand Flash
  • 2 USB Host, 1 micro SD slot, 1 SATA, 1 ir
  • 96 extend pin including I2C, SPI, RGB/LVDS, CSI/TS, FM-IN, ADC, CVBS, VGA, SPDIF-OUT, R-TP..
  • Running Android, Ubuntu and other Linux distributions
اطلاعات بیشتر در این باره را می‌توانید در سایت تولید کننده کوبی‌بورد، فروم رسمی کوبی‌بورد و همچنین فروم وارد کننده ایرانی این محصول بخوانید و بدانید.

همانطور که  تا الان حتما متوجه شده‌اید این بورد کاربردهای بسیار زیادی دارد که از جمله می‌توان به  موارد زیر اشاره کرد:
  • یک کامپیوتر سبک لینوکس برای کاربرد خانگی
  • اتصال به تلویزیون و داشتن یک تلویزیون اندرویدی
  • راه‌اندازی یک وب سرور
  • اتصال یک هارد ساتا و راه‌اندازی یک مدیا سرور و یا فایل سرور
  • اگر اطلاعات الکترونیکی کافی داشته باشید راه‌اندازی اتوماسیون منزل
  • اتصال یک LCD و یک صفحه‌ی تاچ و ساخت تبلت
  • و یا هر ایده‌ی دیگه‌ای که الان به ذهنتان خطور کرد.


سیستم عامل

به صورت پیش‌فرض روی این بورد سیستم‌عامل اندروید نصب شده است و می‌توانید به راحتی با اتصال آن به یک تلویزیون با ورودی HDMI این سیستم عامل را روی تلویزیون تجربه کنید.
در صورت نیاز هم می‌توانید با نصب لینوکس روی یک کارت حافظه uSD، بورد را با سیستم عامل لینوکس راه‌اندازی کنید و استفاده کنید.

نحوه خرید

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


  • حامد ذقاقی

همانطور که احتمالا می‌دانید «گیت» یا همان "git" یک «سیستم کنترل نسخه» توزیع شده است. تا دیروز تمامی پروژه‌هایم توسط "svn" کنترل می‌شد اما برای پروژه‌ی اخیر تصمیم گرفتم که از گیت استفاده کنم. در ادامه مراحل مختلف نصب و راه اندازی گیت را توضیح می‌دهم به امید اینکه بتواند مورد استفاده واقع شود.

تمامی دستورات بر روی سیستم اوبونتو و سرور دبیان انجام شده است. برای استفاده از این دستورات در سیستم عامل ویندوز ابتدا نرم‌افزار گیت را از سایتش (http://www.git-scm.com) دریافت کرده و پس از نصب از git bash استفاده نمایید.

برای دسترسی به یک سرور گیت می‌توان از سه پروتکل ssh، git و http استفاده کرد که در اینجا نحوه راه‌اندازی و استفاده ssh توضیح داده خواهد شد.

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

server$ sudo adduser git

پس از پاسخگویی به سوالات مربوط به کاربر git نوبت به نصب گیت میرسه.

server$ sudo apt-get install git-core

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

server$ mkdir /Projects/ProjectName
server$ cd /Projects/ProjectName
server$ git --bare init

اکنون تقریبا راه‌اندازی گیت در سرور به اتمام رسیده است. به سیستمی که قرار است از این سرور استفاده نماید می‌رویم و تنظمیات آن را نیز بدین شکل انجام می‌دهیم:

client$ sudo apt-get install git-core

با اجرای مرحله بالا گیت را روی سیستم مورد نظر نصب می‌کنیم. چنانچه قبلا این کار را انجام داده‌ایم نیازی به اجرای دوباره‌ی آن نیست.

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

client$ git config --global user.name "Hamed Zaghaghi"
client$ git config --global user.email "hamed.zaghaghi@gmail.com"

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

client$ cd ProjectPath
client$ git init

پس از ایجاد یک مخزن گیت محلی، فایل‌های پروژه را به مخزن اضافه می‌کنیم. به عنوان مثال

client$ git add *.cpp
client$ git add *.h
client$ git add Makefile

چنانچه در حال حاضر پروژه حاوی هیچ فایلی نیست، یک فایل خالی ایجاد کنید و آن را به مخزن اضافه نمایید.

در ادامه فایل‌های اضافه شده در مخزن را به مخزن تحویل می‌دهیم به عبارت دیگر این تغییرات را commit میکنیم.

client$ git commit -m "Initial commit"

عبارتی که در انتهای دستور آمده است توضیحاتی است که برای این تحویل می نویسیم و می‌تواند هر متن دیگری باشد.

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

client$ git remote add origin git@server:/Projects/ProjectName
دقت نمایید که آخرین قسمت از دستور بالا حاوی کاربر تعریف شده در سرور (git)، نام و یا آی‌پی سرور (server) و مسیر پروژه روی سرور (/Projects/ProjectName) می‌باشد.
بعد از برقراری این ارتباط تغییراتی را که به مخزن محلی تخویل داده‌ایم را برای مخزن اصلی ارسال می‌کنیم.
client$ git push origin master
بعد از اجرای فرمان بالا گیت برای ارسال تغییرات به سرور از پروتکل ssh استفاده می‌کند و به همین دلیل در این مرحله رمزعبور کاربر git پرسیده می‌شود.

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

other-client$ git clone git@server:/Projects/ProjectName

اگر می خواهید که از محیط تحت وب گیت استفاده کنید می‌توانید با اجرای فرمان زیر در سرور به این محیط تحت وب در آدرس سرور پورت 1234 دسترسی داشته باشید.

server$ git instaweb --httpd=apache2

چنانچه روی سرور، وب‌سروری غیر از apache نصب کرده‌اید مانند webrick و یا lighttpd. برای اجرای فرمان بالا از نام وب سرور به جای apache2 استفاده کنید.

با فرمان زیر نیز می‌توانید این محیط تحت وب را غیر فعال نمایید.

server$ git instaweb --httpd=apache2 --stop

بیشتر بخوانید، بیشتر بدانید

  • برای یادگیری مفاهیم کار با گیت خواندن این کتاب را توصیه می‌کنم.
  • برای تمرین دستورات گیت حتما به اینجا سر بزنید.
  • چنانچه پروژه شما متن باز است می‌توانید از سرویس رایگان github.com استفاده کنید.
  • حامد ذقاقی