लिनक्स पर डिवाइस से जुड़े ड्राइवर (मॉड्यूल) को कैसे खोजें?


50

लिनक्स पर, दिया गया:

  • एक उपकरण, उदाहरण के लिए /dev/sda,
  • और इसकी प्रमुख और छोटी संख्या, उदाहरण के लिए 8, 0,

मैं यह कैसे जान सकता हूं कि कौन सा मॉड्यूल / ड्राइवर "ड्राइविंग" कर रहा है?

क्या मुझे खुदाई करनी चाहिए /sysया /procइसकी खोज करनी चाहिए?


और lsmod, का कुछ संयोजन ? /proc/modulesmodinfo

4
stackoverflow.com/questions/2911050 इस प्रश्न के समान दिखता है।
माइकल टॉमकिंस


टोटर, मैंने इनाम जोड़ा क्योंकि एक अन्य उपयोगकर्ता ने एक ही सवाल पोस्ट किया क्योंकि उसे लगा कि इस पर पर्याप्त ध्यान नहीं दिया गया है। मैंने उसे अपना प्रश्न हटाने के लिए कहा और अधिक उत्तर प्राप्त करने के लिए इस पर एक इनाम दिया। यदि वे आपके प्रश्न का उत्तर देते हैं तो कृपया नीचे दिए गए किसी एक उत्तर को स्वीकार करना न भूलें।
terdon

इनाम के लिए @terdon धन्यवाद, यह अच्छा जवाब का उत्पादन किया। मैंने अभी तक सब कुछ ध्यान से नहीं देखा है, लेकिन इस बीच ग्रीम के जवाब को स्वीकार करूंगा ।
टोटर

जवाबों:


58

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प्रत्येक स्तर पर फ़ाइलों की सामग्री प्रदर्शित करता हूं (प्रतीत होता है कि इस की उपस्थिति एक उपनिर्देशिका के बजाय एक अलग स्तर को परिभाषित करती है)। मैं किसी भी सबसिस्टम लिंक का बेसनेम भी दिखाता हूं जो मुझे लगता है और यह दिखाता है कि डिवाइस इस पदानुक्रम में कैसे फिट बैठता है। 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और देना होगा ahci। क्या कोई तरीका निर्धारित ahciकिया जा रहा है?
पैट्रिक

@Prick, हाँ, अद्यतन।
ग्रीम

शानदार जवाब, धन्यवाद! बस ध्यान दें, मेरे मामले में लिंक में था 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
@ECarterYoung आप कहाँ देख रहे हैं कि udevadmहटा दिया गया है (या यहां तक ​​कि अनुशंसित है)? मैं उस पर एक संकेत देने के लिए भी कुछ नहीं पा सकते हैं।
पैट्रिक

1
@ECarterYoung मैंने किया, मुझे कुछ भी नहीं दिखाई दे रहा है।
पैट्रिक

कर्नेल में UEVENT_HELPER की अनुपस्थिति के बारे में मुझसे गलती हुई थी। सिस्टमड चल रहे सिस्टम पर, यह प्रविष्टि रिक्त है, लेकिन सिस्टम पर अभी भी हेल्प मौजूद है।
eyoung100

4

कमांड hwinfo और आउटपुट मॉडल और ड्राइवर का उपयोग करें । अगर कोई ड्राइवर नहीं है तो उसे नहीं दिखाया जाएगा। डिस्क के लिए उदाहरण के लिए:

# hwinfo --ब्लॉक | grep -Ei "ड्राइवर \: | मॉडल \:"
  मॉडल: "फ्लॉपी डिस्क"
  मॉडल: "फुजित्सु एमएचजेड 2080 बी"
  ड्राइवर: "आहि", "एसडी"
  मॉडल: "विभाजन"
  मॉडल: "विभाजन"
  मॉडल: "विभाजन"
  मॉडल: "जेनेरिक मल्टी-कार्ड"
  चालक: "उम-रियलटेक", "एसडी"
  मॉडल: "Realtek USB2.0-CRW"
  ड्राइवर: "ओम्स-रियलटेक"

नेटवर्क कार्ड के लिए:

# hwinfo - नेटकार्ड | grep -Ei "ड्राइवर \: | मॉडल \:"
  मॉडल: "ब्रॉडकॉम नेटएक्सट्रीम BCM5764M गिगाबिट ईथरनेट PCIe"
  ड्राइवर: "tg3"
  मॉडल: "इंटेल वायरलेस वाईफाई लिंक 5100"
  ड्राइवर: "iwlwifi"

USB उपकरणों के लिए:

# hwinfo --usb | grep -Ei "ड्राइवर \: | मॉडल \:"
  मॉडल: "लिनक्स 3.11.10-7-डेस्कटॉप uhci_hcd UHCI होस्ट कंट्रोलर"
  ड्राइवर: "हब"
  मॉडल: "लिनक्स 3.11.10-7-डेस्कटॉप uhci_hcd UHCI होस्ट कंट्रोलर"
  ड्राइवर: "हब"
  मॉडल: "IDEACOM IDC 6680"
  ड्राइवर: "usbhid"
  [...]

यह पता लगाने के लिए कि आप किस अन्य प्रकार के डिवाइस को क्वेरी कर सकते हैं hwinfo --help का उपयोग करें। hwinfo डिफ़ॉल्ट रूप से SUSE लाइनेक्स पर स्थापित होता है।


इसे किसी विशेष उपकरण फ़ाइल से संबंधित करने के लिए, --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
@Totor के आउटपुट में lshwऔर lspciआप एक डिवाइस द्वारा उपयोग किए जाने वाले मॉड्यूल को देख सकते हैं: कॉन्फ़िगरेशन: ड्राइवर = अहिंसा विलंबता = 0 और उपयोग में कर्नेल ड्राइवर: अहसी
स्पैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.