লিনাক্সে কোনও ডিভাইসের সাথে যুক্ত ড্রাইভার (মডিউল) কীভাবে খুঁজে পাবেন?


48

লিনাক্সে, দেওয়া:

  • একটি ডিভাইস, উদাহরণস্বরূপ /dev/sda,
  • এবং এর প্রধান এবং ছোটখাট সংখ্যা, উদাহরণস্বরূপ 8, 0,

কোন মডিউল / ড্রাইভার এটি "ড্রাইভিং" করছে তা আমি কীভাবে জানতে পারি?

আমি এটি খনন করতে পারি /sysবা /procএটি আবিষ্কার করতে পারি?


কিছু সমন্বয় lsmod, /proc/modulesএবং modinfo?

4
stackoverflow.com/questions/2911050 এই প্রশ্নের মত একই দেখাচ্ছে।
মাইকেল টমকিন্স


টোটার, আমি অনুগ্রহটি যুক্ত করেছি কারণ অন্য ব্যবহারকারী একই প্রশ্ন পোস্ট করেছেন কারণ তিনি অনুভব করেছিলেন যে এই একজন যথেষ্ট মনোযোগ পান নি। আমি তাকে তার প্রশ্নটি মুছতে বলেছি এবং আরও উত্তর পাওয়ার জন্য এইটিতে একটি অনুদানের অফার দিয়েছি। যদি তারা আপনার প্রশ্নের উত্তর দেয় তবে নীচের একটি উত্তর গ্রহণ করতে দয়া করে মনে রাখবেন।
terdon

@terdon অনুগ্রহের জন্য ধন্যবাদ, এটি দুর্দান্ত উত্তর উত্পাদন করেছে। আমি এখনও সমস্ত কিছু যত্ন সহকারে পরীক্ষা করে দেখিনি, তবে এর মধ্যে গ্রিমের উত্তর গ্রহণ করব ।
টোটার

উত্তর:


56

sysfsকোনও ডিভাইস ফাইলের জন্য এই তথ্যটি পেতে প্রথমে বড় / গৌণ সংখ্যা নির্ধারণ করুন ls -l, উদাহরণস্বরূপ আউটপুটটি দেখে

 $ ls -l /dev/sda
 brw-rw---- 1 root disk 8, 0 Apr 17 12:26 /dev/sda

8, 0আমাদেরকে বলে যে প্রধান সংখ্যা 8এবং নাবালক 0bতালিকা শুরুতে এছাড়াও আমাদের বলে এটি একটি ব্লক ডিভাইস নেই। অন্য ডিভাইসগুলির cশুরুতে অক্ষর ডিভাইসের জন্য একটি থাকতে পারে ।

এরপরে যদি আপনি নীচে লক্ষ্য করেন তবে /sys/devদেখবেন দুটি ডিরেক্টরি রয়েছে। একজন ডাকল blockএবং একজন ডাকল char। এখানে নো-ব্রেইনার হ'ল এগুলি যথাক্রমে ব্লক এবং চরিত্র ডিভাইসের জন্য। প্রতিটি ডিভাইস তার প্রধান / গৌণ সংখ্যা দ্বারা অ্যাক্সেসযোগ্য এই ডিরেক্টরি। ডিভাইসের জন্য যদি কোনও ড্রাইভার উপলব্ধ থাকে তবে এটি driverবা deviceউপ-ডিরেক্টরিতে লিঙ্কটির লক্ষ্য পাঠ করে এটি পাওয়া যাবে । উদাহরণস্বরূপ, আমার জন্য /dev/sdaআমি সহজভাবে এটি করতে পারি:

$ readlink /sys/dev/block/8\:0/device/driver
../../../../../../../bus/scsi/drivers/sd

এটি দেখায় যে sdড্রাইভারটি ডিভাইসের জন্য ব্যবহৃত হয়। আপনি যদি নিশ্চিত না হন যে ডিভাইসটি একটি ব্লক বা চরিত্রের ডিভাইস, শেলটিতে আপনি কেবল এই অংশটি একটি দিয়ে প্রতিস্থাপন করতে পারেন *। এটি ঠিক পাশাপাশি কাজ করে:

$ readlink /sys/dev/*/8\:0/device/driver
../../../../../../../bus/scsi/drivers/sd

ব্লক ডিভাইসগুলি সরাসরি /sys/blockবা তাদের মাধ্যমে সরাসরি তাদের নামের মাধ্যমে অ্যাক্সেস করা যায় /sys/class/block। উদাহরণ:

$ readlink /sys/block/sda/device/driver
../../../../../../../bus/scsi/drivers/sd

নোট করুন যে /sysকার্নেল কনফিগারেশনের উপর নির্ভর করে বিভিন্ন ডিরেক্টরিতে অস্তিত্ব পরিবর্তিত হতে পারে। এছাড়াও সমস্ত ডিভাইসের একটি deviceসাবফোল্ডার নেই। উদাহরণস্বরূপ, পার্টিশন ডিভাইস ফাইলগুলির মতো এটি /dev/sda1। এখানে আপনাকে পুরো ডিস্কের জন্য ডিভাইসটি অ্যাক্সেস করতে হবে (দুর্ভাগ্যক্রমে এর জন্য কোনও sysলিঙ্ক নেই )।

একটি চূড়ান্ত জিনিস যা করতে কার্যকর হতে পারে তা হল যে সমস্ত ডিভাইসের জন্য সেগুলি উপলব্ধ রয়েছে তার জন্য ড্রাইভারের তালিকা করা। এর জন্য আপনি ড্রাইভারের লিঙ্ক উপস্থিত সমস্ত ডিরেক্টরি নির্বাচন করতে গ্লোবগুলি ব্যবহার করতে পারেন। উদাহরণ:

$ ls -l /sys/dev/*/*/device/driver ls -l /sys/dev/*/*/driver 
ls: cannot access ls: No such file or directory
lrwxrwxrwx 1 root root 0 Apr 17 12:27 /sys/dev/block/11:0/device/driver -> ../../../../../../../bus/scsi/drivers/sr
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/block/8:0/device/driver -> ../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/block/8:16/device/driver -> ../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/block/8:32/device/driver -> ../../../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:0/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:1024/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:128/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:256/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:384/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/189:512/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/189:513/driver -> ../../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/189:514/driver -> ../../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/189:640/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/189:643/driver -> ../../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:768/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 20:38 /sys/dev/char/189:896/driver -> ../../../../bus/usb/drivers/usb
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/21:0/device/driver -> ../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/21:1/device/driver -> ../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:27 /sys/dev/char/21:2/device/driver -> ../../../../../../../bus/scsi/drivers/sr
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/21:3/device/driver -> ../../../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/250:0/device/driver -> ../../../../../../../bus/hid/drivers/hid-generic
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/250:1/device/driver -> ../../../../../../../bus/hid/drivers/hid-generic
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/250:2/device/driver -> ../../../../../../../bus/hid/drivers/hid-generic
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/252:0/device/driver -> ../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/252:1/device/driver -> ../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 12:27 /sys/dev/char/252:2/device/driver -> ../../../../../../../bus/scsi/drivers/sr
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/252:3/device/driver -> ../../../../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Apr 17 19:53 /sys/dev/char/254:0/device/driver -> ../../../bus/pnp/drivers/rtc_cmos
lrwxrwxrwx 1 root root 0 Apr 17 19:53 /sys/dev/char/29:0/device/driver -> ../../../bus/platform/drivers/simple-framebuffer
lrwxrwxrwx 1 root root 0 Apr 17 19:53 /sys/dev/char/4:64/device/driver -> ../../../bus/pnp/drivers/serial
lrwxrwxrwx 1 root root 0 Apr 17 19:53 /sys/dev/char/4:65/device/driver -> ../../../bus/platform/drivers/serial8250
lrwxrwxrwx 1 root root 0 Apr 17 19:53 /sys/dev/char/4:66/device/driver -> ../../../bus/platform/drivers/serial8250
lrwxrwxrwx 1 root root 0 Apr 17 19:53 /sys/dev/char/4:67/device/driver -> ../../../bus/platform/drivers/serial8250
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/6:0/device/driver -> ../../../bus/pnp/drivers/parport_pc
lrwxrwxrwx 1 root root 0 Apr 17 12:26 /sys/dev/char/99:0/device/driver -> ../../../bus/pnp/drivers/parport_pc

পরিশেষে, প্রশ্নটি কিছুটা দূরে সরানোর জন্য, আমি /sysকোন আরও বিস্তৃত দৃষ্টিকোণটি পেতে আরও কোন বিস্তৃত দৃষ্টিকোণটি যুক্ত করব যার উপর ড্রাইভার কোন ডিভাইসগুলি ব্যবহার করছে (যদিও এটি সম্ভবত ডিভাইস ফাইলযুক্ত নয়):

find /sys/bus/*/drivers/* -maxdepth 1 -lname '*devices*' -ls

হালনাগাদ

এর আউটপুটটি আরও ঘনিষ্ঠভাবে অনুসন্ধান করলে udevadm, এটি ক্যানোনিকাল /sysডিরেক্টরিটি অনুসন্ধান করে (যেমন আপনি উপরের বড় / ছোটখাটো ডিরেক্টরিগুলি বিবেচনা করে দেখতে পাবেন) কাজটি আবিষ্কার করে, তারপরে ডিরেক্টরি ট্রি পর্যন্ত কাজ করে, এটি খুঁজে পাওয়া কোনও তথ্য মুদ্রণ করে। এইভাবে আপনি পিতামাতাদের ডিভাইস এবং তারা যে কোনও ড্রাইভার ব্যবহার করেন সে সম্পর্কে তথ্য পাবেন।

এটি পরীক্ষা-নিরীক্ষার জন্য আমি ডিরেক্টরি বৃক্ষ ধরে যেতে এবং প্রতিটি প্রাসঙ্গিক স্তরে তথ্য প্রদর্শনের জন্য নীচের স্ক্রিপ্টটি লিখেছিলাম। udevপ্রতিটি স্তরের পঠনযোগ্য ফাইলগুলির নাম এবং বিষয়বস্তুগুলিকে অন্তর্ভুক্ত করে দেখে মনে হচ্ছে ATTRS। এটি করার পরিবর্তে আমি ueventপ্রতিটি স্তরের ফাইলগুলির বিষয়বস্তু প্রদর্শন করি (মনে হয় এটির উপস্থিতি কেবলমাত্র একটি উপ-ডিরেক্টরিের পরিবর্তে একটি স্বতন্ত্র স্তরকে সংজ্ঞায়িত করে)। আমি যে কোনও সাবসিস্টেম লিঙ্কগুলির পাই এবং তার থেকে এই ডিভাইসটি এই শ্রেণিবিন্যাসের সাথে কীভাবে ফিট হয় তা দেখিয়েছি base udevadmএকই তথ্য প্রদর্শন করে না, সুতরাং এটি একটি দুর্দান্ত পরিপূরক সরঞ্জাম। PCIআপনি যদি lshwউচ্চ স্তরের ডিভাইসের মতো অন্যান্য সরঞ্জামের আউটপুটটির সাথে মেলে করতে চান তবে পিতামাতার ডিভাইসের তথ্য (যেমন তথ্য )ও দরকারী ।

#!/bin/bash

dev=$(readlink -m $1)

# test for block/character device
if [ -b "$dev" ]; then
  mode=block
elif [ -c "$dev" ]; then
  mode=char
else
  echo "$dev is not a device file" >&2
  exit 1
fi

# stat outputs major/minor in hex, convert to decimal
data=( $(stat -c '%t %T' $dev) ) || exit 2
major=$(( 0x${data[0]} ))
minor=$(( 0x${data[1]} ))

echo -e "Given device:     $1"
echo -e "Canonical device: $dev"
echo -e "Major: $major"
echo -e "Minor: $minor\n"

# sometimes nodes have been created for devices that are not present
dir=$(readlink -f /sys/dev/$mode/$major\:$minor)
if ! [ -e "$dir" ]; then
  echo "No /sys entry for $dev" >&2
  exit 3
fi

# walk up the /sys hierarchy one directory at a time
# stop when there are three levels left 
while [[ $dir == /*/*/* ]]; do

  # it seems the directory is only of interest if there is a 'uevent' file
  if [ -e "$dir/uevent" ]; then
    echo "$dir:"
    echo "  Uevent:"
    sed 's/^/    /' "$dir/uevent"

    # check for subsystem link
    if [ -d "$dir/subsystem" ]; then
        subsystem=$(readlink -f "$dir/subsystem")
        echo -e "\n  Subsystem:\n    ${subsystem##*/}"
    fi

    echo
  fi

  # strip a subdirectory
  dir=${dir%/*}
done

সমস্ত ড্রাইভার ব্যবহৃত হচ্ছে তা নির্ধারণ করার কোন উপায় আছে কি? উদাহরণস্বরূপ udevadmউত্তরটি আপনাকে দেবে sdএবং ahciahciপাশাপাশি নির্ধারণের জন্য কি কোনও উপায় ব্যবহার করা হচ্ছে?
প্যাট্রিক 21

@ পেট্রিক, হ্যাঁ, আপডেট হয়েছে।
গ্রামীণ

দুর্দান্ত উত্তর, ধন্যবাদ! শুধু লক্ষণীয়, আমার ক্ষেত্রে লিঙ্কটি ছিল device/device/, তাই আমার readlinkকমান্ডটি দেখতে লাগল readlink /sys/dev/char/XX\:Y/device/device/driver
হ্যারি কাটস

19

এটি udevadmআবিষ্কার করতে আপনি সরঞ্জামটি ব্যবহার করতে পারেন ।
কমান্ডটি হবে udevadm info -a -n /dev/sdaএবং তারপরে DRIVER==পরামিতিগুলি দেখুন।

# udevadm info -a -n /dev/sda | grep -oP 'DRIVERS?=="\K[^"]+'  
sd
ahci

এটি দেখায় যে এই ডিভাইসটি সরবরাহ করার জন্য আসলে 2 জন ড্রাইভার জড়িত রয়েছে sdএবং ahci। প্রথমটি, ডিভাইসের sdজন্য সরাসরি দায়বদ্ধ /dev/sdaতবে এটি নীচের ahciড্রাইভারটি ব্যবহার করে ।

 

udevadmকমান্ডের আউটপুট এর মত দেখাচ্ছে এবং এটি কীভাবে কাজ করে তার একটি বিবরণ অন্তর্ভুক্ত করে।

# udevadm info -a -n /dev/sda      

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda':
    KERNEL=="sda"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{ro}=="0"
    ATTR{size}=="500118192"
    ATTR{stat}=="   84786     1420  3091333    40215   966488    12528 14804028  2357668        0  1146934  2396653"
    ATTR{range}=="16"
    ATTR{discard_alignment}=="0"
    ATTR{events}==""
    ATTR{ext_range}=="256"
    ATTR{events_poll_msecs}=="-1"
    ATTR{alignment_offset}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{removable}=="0"
    ATTR{capability}=="50"
    ATTR{events_async}==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0':
    KERNELS=="0:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{rev}=="VZJ4"
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="6"
    ATTRS{model}=="LITEONIT LMT-256"
    ATTRS{state}=="running"
    ATTRS{queue_type}=="simple"
    ATTRS{iodone_cnt}=="0x10daad"
    ATTRS{iorequest_cnt}=="0x10ead1"
    ATTRS{queue_ramp_up_period}=="120000"
    ATTRS{device_busy}=="0"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{timeout}=="30"
    ATTRS{evt_media_change}=="0"
    ATTRS{ioerr_cnt}=="0x2"
    ATTRS{queue_depth}=="31"
    ATTRS{vendor}=="ATA     "
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{device_blocked}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{iocounterbits}=="32"
    ATTRS{eh_timeout}=="10"

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0':
    KERNELS=="target0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0':
    KERNELS=="host0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
    KERNELS=="ata1"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2':
    KERNELS=="0000:00:1f.2"
    SUBSYSTEMS=="pci"
    DRIVERS=="ahci"
    ATTRS{irq}=="41"
    ATTRS{subsystem_vendor}=="0x144d"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x010601"
    ATTRS{enabled}=="1"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{local_cpus}=="0f"
    ATTRS{device}=="0x1e03"
    ATTRS{msi_bus}==""
    ATTRS{local_cpulist}=="0-3"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0xc0d3"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

1
@ECarter Young আপনি কোথায় দেখছেন যে udevadmএটি সরানো হয়েছে (বা এমনকি প্রস্তাবিতও)? আমি এখানে কোনও ইঙ্গিত দিয়েও কিছু দেখতে পাচ্ছি না।
প্যাট্রিক 21

1
@Carter Young আমি করেছি, আমি সাজানোর কিছুই দেখতে পাচ্ছি না।
প্যাট্রিক 21

কার্নেলের মধ্যে UEVENT_HELPER এর অনুপস্থিতি সম্পর্কে আমার ভুল হয়েছিল। সিস্টেমে চলছে এমন সিস্টেমে, এই প্রবেশটি ফাঁকা, তবে সহায়তাকারী এখনও সিস্টেমে উপস্থিত রয়েছে।
eyoung100

4

ব্যবহার করুন কমান্ড hwinfo এবং আউটপুট মডেল এবং ড্রাইভার। ড্রাইভার না থাকলে এটি প্রদর্শিত হবে না। ডিস্কগুলির জন্য উদাহরণস্বরূপ:

# হুইনফো - ব্লক | grep -Ei "ড্রাইভার \: | মডেল \:"
  মডেল: "ফ্লপি ডিস্ক"
  মডেল: "FUJITSU MHZ2080B"
  ড্রাইভার: "আহকি", "এসডি"
  মডেল: "পার্টিশন"
  মডেল: "পার্টিশন"
  মডেল: "পার্টিশন"
  মডেল: "জেনেরিক মাল্টি কার্ড"
  ড্রাইভার: "ums-realtek", "sd"
  মডেল: "রিয়েলটেক ইউএসবি 2.0-সিআরডাব্লু"
  ড্রাইভার: "ums-realtek"

নেটওয়ার্ক কার্ডের জন্য:

# হুইনফো - নেটকার্ড | grep -Ei "ড্রাইভার \: | মডেল \:"
  মডেল: "ব্রডকম নেটএক্সট্রিম বিসিএম5764 এম গিগাবিট ইথারনেট পিসিআই"
  ড্রাইভার: "tg3"
  মডেল: "ইন্টেল ওয়্যারলেস ওয়াইফাই লিঙ্ক 5100"
  ড্রাইভার: "iwlwifi"

ইউএসবি ডিভাইসের জন্য:

# হুইনফো - ইউএসবি | grep -Ei "ড্রাইভার \: | মডেল \:"
  মডেল: "লিনাক্স 3.11.10-7- ডেস্কটপ uhci_hcd UHCI হোস্ট কন্ট্রোলার"
  ড্রাইভার: "হাব"
  মডেল: "লিনাক্স 3.11.10-7- ডেস্কটপ uhci_hcd UHCI হোস্ট কন্ট্রোলার"
  ড্রাইভার: "হাব"
  মডেল: "IDEACOM IDC 6680"
  ড্রাইভার: "ইউএসবিড"
  [...]

অন্যান্য ডিভাইসের ধরণের কী কী আপনি জিজ্ঞাসা করতে পারেন তা জানতে hwinfo --help ব্যবহার করুন। হুইনফো ডিফল্ট হিসাবে ইনস্টল করা হয় যেমন সুস লিনাক্সে।


এটি কোনও নির্দিষ্ট ডিভাইস ফাইলের সাথে সম্পর্কিত করার জন্য, একটি উপায় হ'ল --onlyবিকল্পটি যুক্ত করা। যেমন hwinfo --block --only /dev/sda | grep ...
গ্রামীণ

3

lshwআপনার মেশিনে পাওয়া হার্ডওয়্যার তালিকাভুক্ত করার জন্য দুর্দান্ত সরঞ্জাম। দৌড়ানোর আগে আপনাকে প্রথমে এটি ইনস্টল করতে হবে।

$ yum install lshw
$ apt-get install lshw

ব্যবহার করুন yumঅথবা apt-getসিস্টেম আপনি ব্যবহার করছেন উপর নির্ভর করে। তারপরে স্টোরেজ হার্ডওয়্যারটি নির্দিষ্টভাবে তালিকাভুক্ত করতে:

# lshw -class storage 
*-storage               
   description: SATA controller
   product: 5 Series/3400 Series Chipset 4 port SATA AHCI Controller
   vendor: Intel Corporation
   physical id: 1f.2
   bus info: pci@0000:00:1f.2
   version: 06
   width: 32 bits
   clock: 66MHz
   capabilities: storage msi pm ahci_1.0 bus_master cap_list
   configuration: driver=ahci latency=0
   resources: irq:41 ioport:1830(size=8) ioport:1824(size=4) ioport:1828(size=8) ioport:1820(size=4) ioport:1800(size=32) memory:f0305000-f03057ff

rootসমস্ত তথ্য ফিরে পেতে আপনি এটি চালাতে চাইতে পারেন ।

অন্যথায়, lspciআপনার হার্ডওয়্যার সম্পর্কেও তথ্য দিতে পারেন:

$ lspci -vv
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA AHCI Controller (rev 06) (prog-if 01 [AHCI 1.0])
    Subsystem: Dell Device 0434
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin B routed to IRQ 41
    Region 0: I/O ports at 1830 [size=8]
    Region 1: I/O ports at 1824 [size=4]
    Region 2: I/O ports at 1828 [size=8]
    Region 3: I/O ports at 1820 [size=4]
    Region 4: I/O ports at 1800 [size=32]
    Region 5: Memory at f0305000 (32-bit, non-prefetchable) [size=2K]
    Capabilities: <access denied>
    Kernel driver in use: ahci

কোনও ডিভাইসের প্রধান এবং গৌণ সংখ্যা জানতে, কেবল এটি চালান ls

$ ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 13 avril 10:54 /dev/sda

এই আউটপুটে, bমধ্যে brw-rw----.এর অর্থ হল এই একটি ব্লক ডিভাইস। অঙ্কগুলি 8এবং 0ডিভাইসের যথাক্রমে প্রধান এবং অপ্রধান সংখ্যা।


1
আমার প্রশ্নটি একটি ডিভাইস এবং এর মডিউল / ড্রাইভারের মধ্যে লিঙ্কটি সন্ধান করা। আপনি কোথায় উত্তর দিন?
টোটার

1
@ টোটার উভয় আউটপুটে lshwএবং lspciআপনি ডিভাইস দ্বারা ব্যবহৃত মডিউলটি দেখতে পাবেন: কনফিগারেশন: ড্রাইভার = আহি লেটেন্সি = 0 এবং কার্নেল ড্রাইভার ব্যবহৃত: আহি
স্প্যাক করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.