29.411764705882355% Complete

استخراج و پیکربندی تنظیمات سخت افزار

برای راه اندازی یک کامپیوتر (PC) برای لینوکس (و یا هر سیستم عامل دیگر) نیاز به آشنایی با تجهیزات نصب شده در سیستم و پیکربندی آن هادارید. مواردی که باید با آنها آشنا باشید شامل مودم، پورت های سریال و موازی، آداپتورهای شبکه، آداپتورهای SCSI، هارد درایو ها، کنترل کننده USB و کارت صدا است. بسیاری از این دستگاه ها، به خصوص دستگاه های قدیمی تر ،‌نیاز به پیکربندی دستی دارد تا از تداخل در اختصاص منابع (resource conflicting) جلوگیری شود. بقیه پیکربندی ها توسط firmwareهای کامپیوتر یا BIOS انجام می شود.

BIOS

فیرم ور موجود در سیستم (معمولا به آن BIOS می گویند)‌ مسئول است تا سخت افزار را برای بوت آماده کند.در سیستم‌های مختلف این کار متفاوت است، اما این کار معمولا شامل مقدار دهی اولیه (initalization)،‌تست حافظه و دیگر تجهیزات، و در نهایت پیدا کردن سیستم عامل از بین تجهیزات حافظه است.به علاوه BIOS یه رابط سطح-پایین پیکربندی سیستم را فراهم می کند، که به کاربر اجازه انتخاب گزینه هایی مانند تجهیز بوت (boot device) و غیره را می دهد.فروشندگان نسخه‌های سفارشی BIOS را برای محصولات مختلف خود ارائه میدهند که با توجه به ساختار سیستم با یکدیگر متفاوت‌اند.در زمان بوت اکثر کامپیوترهای شخصی روش وارد شدن به ابزار پیکربندی BIOS را نشان می‌دهند،این کار معمولا با فشردن کلید خاصی انجام می شود.

تاریخ و زمان

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

دیسک ها و تجهیزات بوت

یکی از موارد اصلی جهت پیکربندی در BIOS، مشخص کردن تجهیزات ذخیره سازی است.سیستم های جدید توانایی شناسایی و پیکربندی بیشتر این سخت‌افزار ها را دارند.به هر حال BIOS های قدیمی نیاز به پیکربندی دستی در این موارد پیدا می کنند.

استفاده از پوشه proc:

این پوشه حاوی اطلاعات مفیدی در مورد پروسه ها و اطلاعات سیستمی می باشد.در واقع محل نگهدار وضعیت هسته یا کرنل است که از ساختمان داده ی کرنل استفاده کرده تا اطلاعاتی راجع به سیستم استخراج کند.همچنین می توان به منابعی که توسط سخت افزارها استفاده می شود نیز دسترسی پیدا کرد.از جمله ioport،DMA،interrupt ها. برای مثال فایل proc/interrupts/ حاوی اطلاعاتی در‌ مورد وقفه های سیستمی است و با استفاده از دستور cat به راحتی میتوان این اطلاعات را مشاهده کرد

    # cat /proc/interrupts

USB

USB یا Universal Serial Bus یک نوع رابط برای اتصال دستگاه های جانبی مانند کیبورد ، موس ،‌پرینتر و ... است

همبندی USB

تجهیزات USB با یک ساختار درختی توسط تعدادی تجهیز hub به سیستم متصل می شوند

با کمک دستور lsusb می توان ابزارهای متصل از طریق پورت usb را نشان داد.در صورتی که از گزینه ی -t با این دستور استفاده شود خروجی به صورت یک نمودار درختی مشاهده می شود:

 $ lsusb –t
/:    Bus 04.Port 1:  Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
      |_port 2:  Dev 2, Class=HID, Driver=usbhid, 1.5M
/:    Bus 03.Port 1:  Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M

کنترلر های USB

برای هر usb سه نوع کنترل وجود دارد که به شرح زیر می باشد:

کنترلر OHCI یا Open Host Controller Interface : نسخه USB 1.1 – حداکثر 12Mbps

کنترلر UHCI یا Universal Host Controller Interface : نسخه USB 1.1 – حداکثر 12Mbps

کنترلر EHCI یا Enhanced Host Controller Interface : نسخه USB 2.0 – حداکثر 480Mbps

کنترلر XHCI یا eXtensible Host Controller Interface: نسخه USB 3.0 – حداکثر 5000Mbps

تجهیزات USB

تجهیزات USB به چندین دسته (class) شامل دسته های زیر تقسیم میشوند :

تجهیزات رابط انسان (HID : Human Iterface Device)

  • موس ،‌کیبورد

تجهیزات ارتباطی مانند مودم (Communications device)

  • مودم ها

رسانه های ذخیره سازی (mass stronge device)

  • فلش خوان ها ‌

صدا (Audio)

  • تجهیزات صدا

IrDA

  • تجهیزات مادون قرمز

پرینتر

  • پرینترها یا کابل های USB-to-parallel

درایور های USB

پشتیبانی از USB در سری 2.3.x به کرنل لبنوکس اضافه شد . بعد از آن همه بخش ها به غیر از پشتیبانی از دستگاه های ذخیره سازی انبوه USB (به علت تغییرات SCSI در 2.3.x) به لینوکس 2.2.x backport شد . back-port در انتشار نسخه 2.2.18 گنجانده شد .

برای تست کردن ماژول های usb از دستور زیر استفاده میشود:

$ cat /proc/modules | grep hci
uhci_hcd 16057 0 – Live 0xf7dbe000
ehci_hcd 28693 0 – Live 0xf7dlc000
usbcore 98969 4 usbhid,uhci_hcd,ehci_hcd, Live 0xf7c4c000

گزارش گیری از سخت‌افزار

قبل اقدام به اضافه کردن تجهیزات جدید به سیستم،بهتر است اطلاعاتی در مورد تجهیزات نصب شده بدست بیاورید.در ادامه بعضی از دستورات کاربردی در این زمینه معرفی شده است

lspci

برای مشخص شدن تجهیزاتی که به درگاه pci متصل شده اند از این دستور استفاده می شود که در واقع جزئیات بیشتری از سخت افزارها را نشان می دهد.مانند ماژول هایی که برای آنها استفاده می شود.این دستور با دو گزینه –v و –vv قابل استفاده است.

lsmod

این دستور کلیه ماژول های کرنل را که لود شده اند نشان می دهد که خروجی آن چیزی شبیه به زیر است:

در ستون اول اسم ماژول، در ستون دوم حجم و ستون سوم دفعات استفاده از ماژول را نشان می دهد.ستون چهارم شامل ماژول های وابسته می باشد.

برای مثال در تصویر بالا ماژول vfat به fat وابسته است

راه دیگر پیدا کردن این ماژول ها استفاده از خروجی /proc/modules است.

دستکاری کردن ماژول‌ها

insmod

با کمک این دستور می توان یک ماژول از کرنل را بارگذاری کرد.بهتر است قبل از آن از وجود ماژول مطمئن شد.این کار را می توان با جست و جوی ماژول در مسیر زیر انجام داد :

/lib/modules/kernel_version/kernel/

مثال:

 # find /lib/modules/3.2.0-4-amd64/ -iname *vfat*
/lib/modules/3.2.0-4-amd64/kernel/fs/fat/vfat.ko

در این مثال نشان داده شده است که ماژول msdos به ماژول fat وابسته است پس اول باید ماژول fat بارگذاری شود:

 # insmod /lib/modules/3.2.0-4-amd64/kernel/fs/fat/msdos.ko

 # insmod /lib/modules/3.2.0-4-amd64/kernel/fs/fat/msdos.ko

rmmod

این دستور برای حذف ماژول ها استفاده می شود که در صورت وجود وابستگی برای هر ماژول باید آن را به صورت مجزا حذف کرد.

مثال:

 # rmmod fat
 rmmod: fat is in use
 # rmmod msdos
 # rmmod fat

modprobe

این دستور مشابه دستورات insmod و rmmod است با این تفاوت که امکانات بیشتری دارد ازجمله اینکه هنگام بارگذاری وابستگی ها را مدیریت می کند.این دستور را می توان با گزینه های زیر استفاده کرد:

-a: همه مازول ها را بارگذاری می کند و بیشتر با –t استفاده می شود.

-c: پیکربندی ماژول را نمایش می دهد. /etc/modules.conf یا /etc/modprobe.d

-l: لیست تمامی ماژول ها را نمایش می دهد.

-r: ماژول را حذف می کند.

-s: خروجی را به syslog می فرستد.

-t moduletype: پوشه ی ماژول ها را مشخص می کند.

-v: حالت verbose

مسیر قرارگیری ماژول ها

کلیه ی ماژول ها در مسیر زیر قرار دارند:

/lib/modules/kernel_version/kernel/

از نام هر پوشه در این شاخه می توان به همراه گزینه ی –t در دستور modprobe استفاده کرد.

مثال:

 # ls /lib/modules/2.6.32-5-686-bigmem/kernel/arch/x86
crypto/  kernel/  kvm/  oprofile/

modinfo

برای مشاهده ی مشخصات، پارامترهای قابل پیکربندی و وابستگی های ماژول از این دستور استفاده می شود:

این دستور را می توان با گزینه های زیر می توان استفاده کرد:

-f:مشخصات نویسنده ماژول

-d مورد کارکرد ماژول

-p: پارامترهای قابل تنظیم ماژول

مثال:

 # modinfo msdos
 # modinfo –p psmouse

تنظیم پارامترهای یک ماژول

برای بارگذاری(load) یک ماژول و پارامترهای آن به صورت زیر عمل می شود:

 #  modprobe psmouse protp=imps

برای دائمی کردن این تنظیمات ابتدا پوشه ی /etc/modprob.d را ساخته و مقدار زیر در یک فایل با پسوند conf. در آن وارد می شود:

Option psmouse proto=imps

بارگذاری خودکار ماژول‌ها

برای اینکه ماژولهایی که به صورت خودکار بارگذاری (load) نمی شوند در زمان بوت شدن سیستم بارگذاری شوند باید آنها را به فایل etc/modules/ اضافه کرد.

باید توجه داشت که هر ماژول را باید در یک خط وارد کرد.

 /etc/modules : 
 # /etc/modules: kernel modules to load at boot time.
 #
 # This file contains the names of kernel modules that should be loaded
 # at boot time, one per line. Lines beginning with "#" are ignored.
 # Parameters can be specified after the module name.

 vfat
 msdos
 loop

تجهیز‌های HotPlug و ColdPlug

هر زمان که شما با سخت‌افزار سر و کار دارید ،‌ شما باید در نظر داشته باشید تجهیزات به دو دسته HotPlug و ColdPlug تقسیم می‌کند.تفاوت این تجهیزات بسته به این است که این تجهیزات وقتی کامپیوتر روشن (گرم یا Hot) است به کامپیوتر متصل می شوند یا فقط وقتی کامپیوتر خاموش (سرد یا cold) است.

به طور سنتی تجهیزات داخلی مانند CPU ، memory ، کارت‌های PCI و دیسک‌های سخت ColdPlug هستند.با این حال نمونه‌های‌ HotPlug کارت‌های PCI هم توسعه‌یافته، و در بعضی کامپیوتر ها استفاده می‌شود ،‌ معمولا بر روی سرور ها و سیستم هایی که نمی‌توانند مدتی برای تعویض تجهیزات از خاموش شوند.نمونه های HotPlug تجهیزات SATA نیز امروزه موجود است.

تجهیزات جدید مانند Ethernet ، USB و تجهیزات IEEE-1394 هم HotPlug هستند.شما می‌توانید در صورت نیاز این تجهیزات را متصل یا جدا کنید.این تجهیزات برای تشخیص تغییرات سیستم هنگامی که متصل یا جدا می‌شوند به نرم‌افزار های لینوکسی خاصی نیاز دارند.چندین ابزار HotPlug ها را در لینوکس مدیریت می‌کنند:

sysfs در واقع یک فایل سیستم مجازی است که در شاخه sys/ مونت می ‌شود، و اطلاعاتی را در مورد تجهیزات در اختیار ابزار های user-space قرار می‌دهد . در صورتی که sysfs مونت نشده باشد می‌توانید از دستور زیر استفاده کنید

 # mount -t sysfs sysfs /sys
برنامه های user-space در واقع مانند برنامه های معمولی اجرا می‌شوند فرقی نمی کند با دسترسی root یا یک کاربر معمولی اجرا شوند این برنامه ها از کد های kernel space ،که به عنوان بخشی از کرنل اجرا می‌شوند جدا هستند

HAL Daemon یا Hardware Abstraction Layer یا hald یک برنامه user-space است که همیشه در حال اجرا ست و اطلاعایتی را برای برنامه های دیگر در مورد سخت‌افزار فراهم می‌کند.

D-bus یا Desktop bus یک نرم‌افزار است که از sysfs استفاده می‌کند و یک message bus daemon را پیاده‌سازی می‌کند که برای اشاعه (broadcasting) رویداد های سیستمی مانند " new hardware device added “ توسط init با اجرا کردن اسکریپتی به نام messagebus اجرا می‌شود.

udev پروسه ای است که از sysfs استفاده می‌کند و فایل مربوط به تجهیزات را در شاخه dev/ اجرا می‌کند . قوانین (rule) مربوط به اضافه و حذف کردن تجهیزات توسط udev در پوشه /etc/udev.d ذخیره شده .

بخش‌هایی از این فصل از کتاب بر گرفته از منابع زیر است :

LPIC-1 Linux Professional Institute Study Guide(3rd Edition)
LPI Linux Certification in a Nutshell, 3rd Edition
29.411764705882355% Complete

کامپیوترها، نرم افزارها و سیستم عامل ها کامپیوتر چیست؟ بخش‌های مختلف یک کامپیوتر نرم افزار سیستم عامل‌های مهم لینوکس و نرم افزار آزاد لینوکس: داستان یک موفقیت آزاد یا متن باز نرم افزارهای آزاد مهم توزیع های لینوکس مهم نصب یک توزیع معماری سیستم

استخراج و پیکربندی تنظیمات سخت افزار

روند بوت سیستم مدیریت Runlevelها و shutdown و reboot نصب لینوکس و مدیریت بسته ها طراحی ساختار دیسک نصب یک مدیر بوت مدیریت Share library ها مدیریت بسته‌های نرم افزاری در دبیان استفاده از RPM و YUM دستورات گنو و یونیکس کار با خط فرمان پردازش جریان‌های داده باکمک فیلتر ها مدیریت فایل‌ها - مقدماتی استفاده از stream‌ها, pipe‌ها و redirect ایجاد، رصد و حذف یک فرایند ویرایش اولویت اجرای فرایندها جستجوی فایل‌های متنی توسط regular expressionها ویرایش فایل با کمک vi تجهیزات، فایل سیستم های لینوکسی و فایل سیستم سلسله مراتبی ساخت پارتیشن و فایل سیستم نگهداری از یکپارچگی فایل سیستم کنترل mount و unmount شدن فایل سیستم سهمیه بندی فضای دیسک یا quota مدیریت مجوزهاو مالکیت‌ فایل ساخت و تغییر hard و symbolic link جستجوی فایل سیستم و محل درست فایل‌ها راهنمای استفاده از Docpad نصب و راه اندازی اولیه نحوه تهیه مستندات