انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => نصب، راه‌اندازی و بروزآوری => نویسنده: دانیال بهزادی در 04 بهمن 1389، 04:01 ب‌ظ

عنوان: نصب گنو/لینوکس روی روبات
ارسال شده توسط: دانیال بهزادی در 04 بهمن 1389، 04:01 ب‌ظ
سلام دوستان عزیز.
در آستانه ی هزارین پستم در این انجمن قصد دارم موضوعی رو با شما در میون بذارم که امیدورام با یاری و همکاری شما، برای جامعه گنو/لینوکس ایران اعتبار بیشتری به ارمغان بیاره و فرصت های بیشتری برای برای علاقه مندان بعدی ایجاد کنه.
تیم روباتیک رویان وابسته به دانشگاه آزاد اسلامی - واحد تهران شمال درنظر داره تا سه دستگاه روبات انسان نما (Humanoid) خودش رو با استفاده از سیستم عامل گنو/لینوکس راه اندازی کنه و اون ها رو برای اولین بار در مسابقات روبوکاپ آزاد آلمان شرکت بده.

ما روی این روبات یک برد اصلی RB110 ساخت شرکت Roboard داریم که روی اون پردازنده Vortex86 قرار گرفته و پورت LAN و USB هم روی دستگاه هست. حافظه این دستگاه عبارت است از یک کارت micro SD به ظرفیت 8GB که به برد اصلی وصل می شه. هم چنین در هر دفعه امکان اتصال یکی از کارت های گرافیک (برای خروجی مانیتور) و یا وایرلس رو روی اون داریم.
شرکت Roboard یک کرنل لینوکس اختصاصی برای این برد نوشته که به دو صورت سورس و فایل deb مخصوص سیستم های دبین روی سایتش قرار داده.ما برای اطمینان یک بار اوبونتو رو روی کارت SD نصب کردیم و با پچ کردن کرنل deb تونستیم اوبونتو رو روی روبات بالا بیاریم و اون رو روی مانیتور مشاهده کنیم.
از اون جایی که اوبونتو برای چنین مصارفی روی چنین سیستم هایی خیلی سنگینه ما اقدام به ساخت یک توزیع لینوکس متنی کردیم که فقط امکانات مورد نیاز ما رو از قبیل opencv، setserial و ابزارهای کامپایل و نصب مثل make و gcc و... داشته باشه. هم چنین برای ارتباط با اون، telnet و ssh رو در این توزیع پیاده سازی کردیم. این توزیع با موفقیت روی SD نصب شد و در Virtualbox کار کرد. ولی برای پچ کردن کرنل روی اون به مشکل بر خوردیم. چون که باید سورس کرنل رو کامپایل کنیم و این عمل روی پردازنده ی روبات خیلی عمل طولانی و وقت گیری می شه و همین طور ما با ssh به اون وصلیم و بعد از مدتی time-out موجب قطع اتصال می شه که به معنای terminate شدن همه اقداماته.
بنابراین به این فکر افتادیم که هسته رو روی همون کامپیوتر کامپایل کنیم. منتهای مراتب از اون جایی که ما فقط کامپیوترهایی با پردازنده Intelx86_64 در اختیار داریم، انجام این عمل قدری متفاوت به نظر می رسه، چون در حالت عادی کرنل ما رو برای سیستم 64 بیتی کامپایل می کنه. می خواستم بپرسم دوستان راه حلی ندارن که بتونیم کرنل رو روی Intelx86_64 برای Vortex86 کامپایل کرد؟

درضمن من سعی می کنم خبرهای جدیدتر رو از همین جا به اطلاع شما برسونم  ;)
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: مهدی... در 06 بهمن 1389، 04:12 ب‌ظ
دانیال جان! اگه مشکلت فقط time out هست، خب بعد از دستور یه & بزار که بره تو پس زمینه کار کنه...
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: lomion در 07 بهمن 1389، 09:36 ق‌ظ
می تونید از دستور screen هم استفاده کنید که اون ارتباط (Session) رو نگه می داره.
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: سید وحید رضا برهانی در 07 بهمن 1389، 12:39 ب‌ظ
سلام
فکر نکنم که بشه روی ۶۴ بیت  کرنل ۳۲بیت کامپایل کرد  چرا از کرنل های سبکتری مثل tinycore استفاده نمی کنید
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: مهدی... در 07 بهمن 1389، 08:34 ب‌ظ
سلام
فکر نکنم که بشه روی ۶۴ بیت  کرنل ۳۲بیت کامپایل کرد  چرا از کرنل های سبکتری مثل tinycore استفاده نمی کنید
سید جان! وقتی با ssh دارن کار میکنن دیگه مهم نیست که پردازنده خودشون چیه... بهترین راه همونه که مشکلش قطع ارتباطه... یا اگه قطع شد با قطع شدن ارتباط پروسه متوقف نشه...
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: سید وحید رضا برهانی در 07 بهمن 1389، 10:12 ب‌ظ
ولی برای پچ کردن کرنل روی اون به مشکل بر خوردیم. چون که باید سورس کرنل رو کامپایل کنیم و این عمل روی پردازنده ی روبات خیلی عمل طولانی و وقت گیری می شه و همین طور ما با ssh به اون وصلیم و بعد از مدتی time-out موجب قطع اتصال می شه که به معنای terminate شدن همه اقداماته.
بنابراین به این فکر افتادیم که هسته رو روی همون کامپیوتر کامپایل کنیم. منتهای مراتب از اون جایی که ما فقط کامپیوترهایی با پردازنده Intelx86_64 در اختیار داریم، انجام این عمل قدری متفاوت به نظر می رسه، چون در حالت عادی کرنل ما رو برای سیستم 64 بیتی کامپایل می کنه. می خواستم بپرسم دوستان راه حلی ندارن که بتونیم کرنل رو روی Intelx86_64 برای Vortex86 کامپایل کرد؟
سلام
فکر نکنم که بشه روی ۶۴ بیت  کرنل ۳۲بیت کامپایل کرد  چرا از کرنل های سبکتری مثل tinycore استفاده نمی کنید
سید جان! وقتی با ssh دارن کار میکنن دیگه مهم نیست که پردازنده خودشون چیه... بهترین راه همونه که مشکلش قطع ارتباطه... یا اگه قطع شد با قطع شدن ارتباط پروسه متوقف نشه...
سلام
مشکل اینجا دوتا هست (تا اونجایی که من فهمیدم!)یکی ssh ودیگری کامپایل کرنل هست البته شاید مشکل یکی باشه یعنی می خوان با ssh کرنل رو توی یک کامپیوتر دیگه کامپایل کنند
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: RCLord در 07 بهمن 1389، 10:32 ب‌ظ
ایشون برای اینکه گنو / لینوکس رو روی ربات پیاده سازی کنن باید این کرنل روی ربات کامپایل بشه و برای دسترسی به ربات باید از طریق ssh به اون وصل شن و جون این عمل ( کامپایل کرنل روی ربات ) عملی وقت گیره باید کاری انجام بشه که حتی بعد از قطعی ssh تا راه اندازی مجدد اون عملیات از بین نره و مجبور نشن از اول کامپایلش کنن . امیدوارم درست متوجه شده باشم .
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: مهدی... در 08 بهمن 1389، 06:32 ب‌ظ
بله درست گفتی....
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: دانیال بهزادی در 15 بهمن 1389، 04:44 ب‌ظ
ممنون از جواباتون. بیش‌تر مشکل ما اینه که وقت کافی برای کامپایل کرنل روی خود روبات نداریم. دنبال راهی هستیم که روی لپ‌تاپ خودمون کرنل رو برای روبات کامپایل کنیم.
ما در آخرین تلاشمون کرنل رو روی روبات کانفیگ کردیم و اون رو به همراه فایل کانفیگش روی لپ‌تاپ اوردیم تا کامپایلش کنیم. ولی قبل از کامپایل، سیستم کانفیگ فایل رو پاک می‌کنه و از نو یه فایل جدید می‌سازه.
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: مهدی... در 27 بهمن 1389، 09:31 ب‌ظ
دانیال جان! اینو & تست کردی؟؟
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: sisyphus در 27 بهمن 1389، 09:47 ب‌ظ
به این کار می‌گن cross compiling. در مورد معماری و شرایط خاص مسائله‌ات دنبال راهنما برای cross compiling بگرد.
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: مهدی... در 01 اسفند 1389، 09:14 ب‌ظ
دانیال جان یه راه حل پیدا کردم!
خط زیر رو تو کانفیگ ssh-server اضافه کن ببین چی میشه؟
ConnectTimeout 0

با تشکر از مهدی شیخ حسینی
عنوان: پاسخ به: نصب گنو/لینوکس روی روبات
ارسال شده توسط: دانیال بهزادی در 06 اسفند 1389، 08:56 ق‌ظ
خب به حمدالله با تشکر از همه‌ی دوستان و با آزمودن یک عالمه راه که البته هیچ کدوم اون نتایج دلخواه رو نداشت، به جای ایجاد یک توزیع از ابتدا، از نصاب اکسپرت دبین استفاده کردیم و یک توزیع کوچک با پایه‌ی دبین روی برد روبات نصب شد. به همون وسیله هم پچ کرنل مخصوص روبات رو به صورت بسته‌ی deb روی اون نصب کردیم و به خوبی هم کار می‌کنه.
سوال ما در این مرحله اینه که آیا راهی هست که ssh server رو در runlevel های پایین تر (مثلا یک) به کار انداخت؟ هم‌چنین می‌خوایم که برنامه‌های ما با روشن شدن روبات به صورت خودکار اجرا بشه که شخصا فکر می‌کنم با ید با bash init سر و کله بزنیم.