امین سالم
برنامه نویس و متخصص Distributed Ledgers

معرفی دستورات شناسایی و تنظیمات سخت افزار در لینوکس

در سری قبلی با مفهوم HAL بیشتر آشنا شدیم و توضیح دادیم که دایرکتوری sys توسط HAL کنترل میشود و همچنین با دایرکتوری proc آشنا شدیم که تنظیمات kernel داخل اون بود. امروز قصد داریم بیشتر با Udev و دستورات مربوط به سخت افزارها آشنا بشیم و دربارشون صحبت کنیم.در درخت دایرکتوری root, دایرکتوری به نام dev وجود دارد که به وسیله ی Udev کنترل میشه. در واقع Udev یک سری قانون هستش که بر روی HAL برای کنترل device ها قرار میدیم. دایرکتوری dev شامل تمامی دستگاه هایی است که داخل سیستم قابل mount باشند رو نشون میده.دستوری عمومی و آشنایی در لینوکس با عنوان ls داریم ولی یه سری مستقل از این دستور هم برای راحت تر کردن دسترسی های کلی ما در سیستم موجود هست.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. ۱) lsusb
  2. ۲) lspci
  3. 3) lshw
  4. 4) lsmod

۱) lsusb

تمام دستگاه های usb که به سیستم متصل هستند رو نشون میده. ممکن هست کامپیوتر اتصال یک سری سخت افزارها رو از نوع usb نشون بده. مثل مادربورد که شما از طریق usb وصل نکردید ولی سیستم شما نوع اتصال اونو usb تشخیص میده.

➜  ~ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 064e:c21c Suyin Corp. 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

۲) lspci

تمام دستگاه هایی که از طریق برد PCI به سیستم شما متصل است را نشون میده, و با دستور زیر میتونید لیست تمام VGA های سیستم خودتون رو ببینید.

➜  ~ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 630M] (rev a1)

3) lshw

لیست تمامی سخت افزارها رو با ریز مشخصات و به صورت درختی نشان خواهد داد.

4) lsmod

تمامی ماژول هایی که kernel میشناستشون رو به ما نشون میده. بذارید ساده تر توضیح بدم حتما با سری فیلم های ترانسفورمر آشنایی دارید, یه سری ماشین و سخت افزار هایی بودن که به ظاهر ساده میومدن ولی در حال خاصی به ربات تبدیل میشدن و کلی قابلیت بهشون اضافه میشد. هسته لینوکس هم به همین صورت هستش به صورت خام مثل همون ماشین های ساده میمونه که موقع بالا اومدنش کلی ماژول بهش وصل میشه و کلی قابلیت بهش اضافه میشه... منظورمون از قابلیت (ماژول) چیه؟ مثل کارت شبکه بیسیم و ...

دستوری داریم تحت عنوان

➜  ~ rmmod (module name)

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

➜  ~ insmod (module name)

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

➜  ~ modprobe (module name)

در واقع میشه خیلی ساده گفت دستور modprobe نسبت به دستور insmod بسیار باشعور تر و فهمیده تر هستش. :) در قسمت های قبل گفتم یکی از قابلیت های خوب Udev این هستش که شما قانون گذاری کنید مثلا بگید اگر فلان هارد ADATA رو به سیستم زدم از پوشه ی عکس های کامپیوتر یک کپی داخلش بریز. ولی خب چالشی که این وسط هستش شناسایی اون سخت افزار منحصر به فرده, من و شما میدونیم اون هارد ADATA فلان تراباید هستش ولی برای سیستم تشخیصش سخته برای همین مفهوم جدیدی به نام UUID برای هر سخت افزار از سمت سیستم عامل تعریف شده که اون سخت افزار رو منحصر به فرد میکنه. به همین جهت برای نوشتن قوانین udev از UUID هر دستگاه میتونیم استفاده کنیم. امیدوارم مطلب بالا مفید بوده باشه براتون و فردا هم افتخار بودن کنارتون رو داشته باشم

نویسنده : امین سالم

منبع : TOSINSO

هرگونه نشر و کپی برداری با ذکر منبع و نام نویسنده و یا بدون ذکر نام منبع به منظور نشر اطلاعات و وسیع تر شدن جامعه لینوکس و متن باز باعث خوشحالی بنده می باشد.


امین سالم
امین سالم

برنامه نویس و متخصص Distributed Ledgers

فارغ التحصیل رشته سخت افزار دانشگاه شاهد هستم ، بیشتر فعالیتی که در حوزه شبکه داشته ام در حوزه زیرساخت های ارتباطی سیسکو و مایکروسافت بوده است ، دوره های CISCO(CCNA_CCNP) و MCSE را در مجتمع فنی تهران شعبه ابن سینا سپری کرده ام ، در حوزه رباتیک دارای عناوین مختلف کشوری در مسابقات داخلی هستم و علاقه مند به کارهای عملی در حوزه شبکه می باشد ، در این راستا در چندین شرکت بصورت پروژه ای و کارآموزی پروژه هایی در حوزه زیرساختی ، مایکروسافتی و VOIP را نیز انجام داده ام ، بصورت کلی دستی در برنامه نویسی و

نظرات