مدتی میشه که از رزبری پای استفاده میکنم، دیروز سیستم عاملشو عوض کردم و آخرین نسخه Raspbian رو روش نصب کردم. یه چک لیستی تحت عنوان «کارهایی که بعد از راه اندازی رزبری پای باید انجام داد» برا خودم درست کردم و میخوام شرح چگونگی انجام هر یک از موارد لیست رو تو شمشاد بنویسم تا راهنمای خوبی برا دفعات بعدی خودم باشه و همچنین شاید به کار کسی بیاد.
با هر بار متصل شدن رزبری به شبکه، آی پی جدیدی به آن اختصاص داده میشود، این مسئله هنگام کنترل سیستم از طریق شبکه مشکلاتی را پدید میآورد و از طرفی هم استفاده و یادآوری یک اسم آسانتر از به کار بردن یک عدد چند رقمی است. برای برطرف کردن این مشکلات در شبکه محلی به رزبری یک دامنه (Domain) اختصاص میدهیم.
خوشبختانه ابزار کار بسیار ساده هست و تقریبا بدون هیچ تنظیم خاصی و با نصب بسته Avahi دامنه مورد نظر با پسوند local به سیستم اختصاص داده میشود. بسته Avahi، یک شبکه zeroconf را برای ما به ارمغان میآورد. (در مورد شبکههای zeroconf در ویکیپدیای فارسی و انگلیسی بیشتر بخوانید.)
نصب avahi:
sudo apt-get update
sudo apt-get install avahi-daemon
بعد از نصب اگر خطایی وجود نداشته باشد، در شبکه محلی دامنه raspberrypi. local (به صورت پیشفرض) در دسترس است، اما چنان که هنگام ping گرفتن با پیغام ناشناخنه بودن هاست مواجه شدید مانند:
در لینوکس:
######@linux-ucbi:~> ping raspberrypi.local
ping: unknown host raspberrypi.local
در ویندوز:
C:\Users\######> ping raspberrypi.local
Ping request could not find host raspberry.local. Please check the name and try again.
ابتدا باید از باز بودن پورت UDP 5353 در سیستم درخواست کننده مطمئن شوید (فایروال را چک کنید)، مسئله بعدی پشتیبانی سیستم درخواست کننده از شبکههای زیروکانف است، کامپیوترها و دیوایسهایی که از مک بهره میبرند به صورت پیشفرض از این نوع شبکهها پشتیبانی میکنند اما در ویندوز باید بسته نرم افزاری بنژور (Bonjour که میتوانید از اینجا دانلود کنید.) نصب شود و در سیستمهای مبتنی بر لینوکس این امکان با نصب بسته Avahi فراهم میشود. متاسفانه من روش و یا نرم افزاری که بتواند امکان پشتیبانی اندروید را از این نوع شبکهها محیا سازد نتوانستم پیدا کنم، فقط کتابخانهای برای توسعه دهندهها و برای آنکه از این نوع شبکه در برنامههایشان استفاده کنند وجود دارد و فعلا (تا جایی که من پیدا کردم) تنها ابزاری که در اندروید میتواند در مورد این شبکهها کمک کند برنامهٔ ZeroConf Browser است، این برنامه کلیه دامنههایی که در شبکه محلی شما با استفاده از زیروکانف وجود دارند را شناسایی و آی پی آنها را در اختیارتان میگزارد و میتوانید عملیات مورد نظرتان را با آی پی انجام دهید.
تغییر نام دامنه:
ترمینال را باز کنید و بزنید:
sudo nano /etc/hosts
چیزی شبیه این در ترمینال باز خواهد شد:
بی انکه با سطر های دیگر کاری داشته باشید به سطر آخر بروید، همان سطری که با برچسب 127.0.1.1 مشخص شده است و hostname آن به صورت پیشفرض “raspberrypi” است ، این عبارت را به هر اسم دلخواهی (مثلا : my-raspberry ) که می خواهید بر روی رزبری تان بگزارید ( دامنه مورد نظر) تغییر دهید ، حالا با “ Ctrl + x “ از ویرایشگر خارج شوید، با درخواست دوباره نوشتن فایل و ذخیره آن موافقت کنید. در گام بعدی در ترمینال بزنید:
sudo nano /etc/hostname
در این فایل تنها hostname فعلی وجود دارد که همان “raspberrypi” است ، این عبارت را به همان اسمی که در مرحله قبل انتخاب کردید (دامنه مورد نظر ) تغییر دهید ، فایل را ذخیره و از ویرایشگر خارج شوید. رزیبری را دوباره راه اندازی ( reboot ) کنید:
sudo reboot
کار دیگر تمام است و رزبری را با دامنه مورد علاقه تان و با پسوند “ local “ در شبکه محلی دارید. ( مثال : my-raspberry.local )
بدیهی است که آنچه در بالا آمده در تمامی توزیع های لینوکس نهایتا با کمی تغییر ( بسته به نصاب بسته ها و مکان فایل ها) قابل پیاده سازی است.