উদেব- ডিভাইসটি কোন সাবসিস্টেমের অন্তর্ভুক্ত তা আমি কীভাবে আবিষ্কার করব?


19

উদাহরণস্বরূপ, আমার কাছে ডিভাইস / দেব / এসডিবি রয়েছে। আমি কীভাবে এটি উদেব সাবসিস্টেম খুঁজে পেতে পারি?

উত্তর:


12
$ udevadm info -q all -a /dev/sdb

দ্রষ্টব্য: উপরের ডিভাইস সম্পর্কিত তথ্যের জন্য ইউডিইভি ডাটাবেসটি infoঅনুসন্ধান করে, আমরা সমস্ত তথ্যের জন্য অনুসন্ধান -q allকরি এবং আমরা /sysএই ডিভাইসের লেবেলের সাথে সম্পর্কিত সমস্ত বৈশিষ্ট্যগুলি চলছি ।

উদ্ধৃতাংশ

   --attribute-walk|-a
       Print all sysfs properties of the specified device that can be used 
       in udev rules to match the specified device. It prints all devices
       along the chain, up to the root of sysfs that can be used in udev 
       rules.

উদাহরণ

এই আমার /dev/sdaডিভাইস।

$ udevadm info -q all -a /dev/sda | grep parent
walks up the chain of parent devices. It prints for every device
and the attributes from one single parent device.
  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0':
  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0':
  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0':
  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
  looking at parent device '/devices/pci0000:00/0000:00:1f.2':
  looking at parent device '/devices/pci0000:00':

এই 2 কমান্ডের মধ্যে পার্থক্য

@ সেপেরোর উত্তরটি লিফ নোডে কেবল ইউডিইভি ডিভাইসের সাথে সম্পর্কিত তথ্য দেখাচ্ছে।

সেপিরোর উত্তর

$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt

slm এর উত্তর

আমার উত্তরটি /sysডিভাইসের পুরো চেইন শ্রেণিবিন্যাসের সাথে সাথে চলতে চলতে বৈশিষ্টগুলি দেখায় ।

$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt

আপনি এই দুটি মধ্যে পার্থক্য দেখতে পারেন।

$ diff -y udevadm_info_1.txt udevadm_info_2.txt  \
    > udevadm_info_diff.txt

দ্রষ্টব্য: আমি ফেডোরা 19 তে চলছে, এর 204 সংস্করণ ব্যবহার করে udevadm:

$ udevadm --version
204

এই জটিল আদেশের চেয়ে কেন udevadm info -a -n /dev/sdb?
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

@ গিলস - এটি সমস্ত প্যারেন্ট নোডের জন্য সমস্ত এটিটিআরএস ডাম্প করে।
SLM

আমারও তাই - আউটপুট অভিন্ন।
গিলস 'তাই মন্দ হওয়া বন্ধ করুন'

গিলস - আপনি দেবিয়ান? উদেবম এর কোন সংস্করণ? আমি যখন উপরের 2 টি কমান্ডগুলি চালনা করি তখন আমি এই 2 টি ফাইল পাই। একক udevadm আউটপুট বনাম নেস্টেড udevadm আউটপুট । আউটপুটটি দেখে আমি মনে করি যে একক কমান্ড কেবলমাত্র সমস্ত পিতামাতার সমস্ত আউটপুট একত্রিত করছে যখন আমার সংস্করণ দেখায় যে কোন পিতামাতার এটিটিআরএস প্রাপ্ত হয়েছে।
SLM

পেস্টবিন.com/ এনএইচজি9পিডিএ আউটপুট থেকে প্রাপ্ত udevadm info -q allনয় udevadm info -a। আমি মনে করি -aএটির জন্য একটি শর্টকাট -q all --attribute-walk। নাকি এটি আপনার সংস্করণে আলাদা? আমি এই পরিবর্তনটি মনে করি না, তবে আমি বছরের পর বছর ফেডোরা ব্যবহার করি নি (তবে কেন কোনও বিতরণ এটি প্যাচ করবে?)।
গিলস 'তাই মন্দ হওয়া বন্ধ করুন'

5

udevadm info এই ধরণের তথ্য সরবরাহ করে।

আপনি যদি বিশেষত সাবসিস্টেমটি চান:

udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'

আপনি যখন ইউদেব বিধিগুলি লিখছেন, সর্বাধিক দরকারী কমান্ডটি

udevadm info -a -n /dev/sdb

এইগুলি এমন নিয়মগুলি মুদ্রণ করে যা আপনি ইউদেব বিধিগুলিতে ডিভাইসের সাথে মেলে ব্যবহার করতে পারেন। প্রথম ব্লকটি ডিভাইসটি সম্পর্কেই, এবং পরবর্তী ব্লকগুলি ডিভাইস ট্রিতে এর পূর্বপুরুষদের সম্পর্কে। একমাত্র সতর্কতা হ'ল আপনি বিভিন্ন পূর্বপুরুষের সাথে মিলে এমন কীগুলি মেশাতে পারবেন না। উদাহরণস্বরূপ, এই অংশটি দেওয়া হয়েছে

KERNEL=="sdb"
SUBSYSTEM=="block"
…
KERNELS=="5:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{model}=="Yoyodyne Diskinator"
…
KERNELS=="0000:00:1f.2"
SUBSYSTEMS=="pci"
DRIVERS=="ahci"

তারপরে আপনি এই ডিভাইসটির সাথে SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"বা এর সাথে SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"নয় তবে মেলাতে পারবেন SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"

নিয়মে ব্যবহারের জন্য তথ্য পাওয়ার আরেকটি উপায় রয়েছে

udevadm info -q property -n /dev/sdb --export

এটি ফর্মের ডিভাইসের সম্পত্তি মানগুলি মুদ্রণ করে যা আপনি ইউদেব বিধি হিসাবে ব্যবহার করতে পারেন ।KEY=VALUEENV{KEY}=="VALUE"

যদি আপনার ডিভাইসে কোনও /devপ্রবেশ নেই, আপনি /sysতার পরিবর্তে কোনও পাথ সহ এটি উল্লেখ করতে পারেন , উদাহরণস্বরূপ

udevadm info -a -p /sys/block/sdb

(এক্ষেত্রে দরকারী উদাহরণ নয় - এটি এমন ডিভাইসগুলির জন্য দরকারী যার বিভাগটি সাধারণ নয় এবং /devএখনও এর নিচে প্রবেশ নেই)।

আপনি যখন উদেব নিয়মগুলি পরিবর্তন করেন, সেগুলি স্বয়ংক্রিয়ভাবে পড়া হয়; তবে সেগুলি কেবলমাত্র সেই ডিভাইসে প্রয়োগ করা হয় যা পরবর্তী সময়ে সিস্টেমে প্লাগ হয়। ইতিমধ্যে সংযুক্ত ডিভাইসে নতুন নিয়মাবলী প্রয়োগ করতে, ব্যবহার করুন udevadm trigger(নির্দিষ্ট ডিভাইসে অ্যাপ্লিকেশনকে সীমাবদ্ধ করার বিকল্পগুলি সহ)।


4
$ udevadm info -q all -n /dev/sdb

এই পদ্ধতির আমার এবং আমার পার্থক্যটি হ'ল এটি কেবল পাতার নোডের /sysজন্য দেখায় /dev/sdb। অন্য পদ্ধতির শাখাগুলি সহ পাতার নোডের পুরো গাছের শ্রেণিবিন্যাস দেখায়।
SLM
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.