উত্তর:
শুধু ব্যবহার /sys।
উদাহরণ। আমি আমার ইথারনেট কার্ডের জন্য ড্রাইভারটি খুঁজতে চাই:
$ sudo lspci
...
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
$ find /sys | grep drivers.*02:00
/sys/bus/pci/drivers/r8169/0000:02:00.0
যে r8169।
প্রথমে আমার ব্যবহার করে ডিভাইসের স্থানাঙ্কগুলি সন্ধান করতে হবে lspci; তারপরে আমি ড্রাইভার খুঁজে পাই যা এই স্থানাঙ্কগুলির সাথে ডিভাইসের জন্য ব্যবহৃত হয়।
lspci -nkআপনাকে সংযুক্ত ড্রাইভারগুলি প্রদর্শন করবে। সাধারণভাবে সিসফগুলি অনুসন্ধানের সঠিক জায়গা।
vendorID:productID? এছাড়াও, যদি এটি পিসিআই ডিভাইস না হয় এবং আপনি কেবল lsusbউদাহরণস্বরূপ এটি দেখতে পান ?
আমি এখানে একটি ছোট স্ক্রিপ্ট লিখেছি :
#!/bin/bash
for f in /sys/class/net/*; do
dev=$(basename $f)
driver=$(readlink $f/device/driver/module)
if [ $driver ]; then
driver=$(basename $driver)
fi
addr=$(cat $f/address)
operstate=$(cat $f/operstate)
printf "%10s [%s]: %10s (%s)\n" "$dev" "$addr" "$driver" "$operstate"
done
নমুনা আউটপুট:
$ ~/what_eth_drivers.sh
eth0 [52:54:00:aa:bb:cc]: virtio_net (up)
eth1 [52:54:00:dd:ee:ff]: virtio_net (up)
eth2 [52:54:00:99:88:77]: virtio_net (up)
lo [00:00:00:00:00:00]: (unknown)
vethএটির সাথে এবং অন্যান্য ভার্চুয়াল ড্রাইভারগুলিও খুঁজে পেতে পারে । আইএমএইচওর একমাত্র সমাধান হ'ল ব্যবহার করা ethtoolবা lshw।
আপনি যদি কেবল স্পষ্টতই sysfs ব্যবহার করতে চান এবং এই সমস্ত কমান্ডগুলি যে শেষ পর্যন্ত sysfs এর অভ্যন্তরে দেখায় সেগুলি ব্যবহার করতে চান না, এখানে কীভাবে:
বলুন, এথ 6 এর জন্য মডিউল / ড্রাইভার কী? "এসএফসি" এটি
# ls -l /sys/class/net/eth6/device/driver
lrwxrwxrwx 1 root root 0 Jan 22 12:30 /sys/class/net/eth6/device/driver ->
../../../../bus/pci/drivers/sfc
বা আরও ভাল .. পঠন লিঙ্ক আপনার জন্য পথ সমাধান করুন।
# readlink -f /sys/class/net/eth6/device/driver
/sys/bus/pci/drivers/sfc
সুতরাং ... আপনার সমস্ত নেটওয়ার্ক ইন্টারফেসের জন্য ড্রাইভারগুলি কী তা নির্ধারণ করতে:
# ls -1 /sys/class/net/ | grep -v lo | xargs -n1 -I{} bash -c 'echo -n {} :" " ; basename `readlink -f /sys/class/net/{}/device/driver`'
eth0 : tg3
eth1 : tg3
eth10 : mlx4_core
eth11 : mlx4_core
eth2 : tg3
eth3 : tg3
eth4 : mlx4_core
eth5 : mlx4_core
eth6 : sfc
eth7 : sfc
eth8 : sfc
eth9 : sfc
lsmodলিনাক্স কার্নেলের লোড হওয়া মডিউল / ডিভাইস ড্রাইভারের স্থিতি পেতে আপনি কমান্ডটি ব্যবহার করতে পারেন ।
নির্দিষ্ট ডিভাইসের জন্য, আপনি বিশদটিও dmesg |grep <device-name>পেতে ব্যবহার করতে পারেন ।
lspci -vএটি নিজেই করে