پرش به محتویات

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

هدف اول: تعیین و پیکربندی تنظیمات سخت افزار

راه اندازی یک کامپیوتر (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

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

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