ইউএসবি সনাক্তকরণের প্রবাহটি কীভাবে বোঝবেন?


14

আমি বুঝতে চাই ইউএসবি ইভেন্টগুলির প্রবাহটি ব্যবহারকারীর স্পেসে কার্নেল স্থান তৈরি করে (আমার কৌতূহলের বাইরে, কীভাবে জিনিসগুলি বাস্তবায়িত হয় তা জেনে)।

আরও স্পষ্ট করে বলতে গেলে, আমি জানতে চাই যে আমি যখন আমার সিস্টেমে ইউএসবি ড্রাইভ প্লাগ করি এবং কীভাবে ড্রাইভটি মাউন্ট হয় তখন কীভাবে আমার ডেস্কটপে পপ-আপ আসে।

আমি আরও জানতে চাই যে এটি আমার ইউএসবিতে কিছু চিত্র উপস্থিত রয়েছে এবং "হ্যাঁ", এটি আমাকে জিএমপি বা অন্য কোনও সফ্টওয়্যারে খোলার দরকার কিনা তা আমাকে জিজ্ঞাসা করে কীভাবে?

আমি এটি একটি খুব বড় এবং বিস্তৃত প্রশ্ন জানি, কিন্তু দয়া করে এর পিছনে পুরো ধারণাটি কীভাবে বোঝা যায় সে সম্পর্কে কিছু পয়েন্টার সহ আমাকে গাইড করুন।

আমি বড় কোড ব্রাউজিং করিনি, তবে আমি আপনাকে আশ্বাস দিচ্ছি যে যদি সঠিকভাবে দিকনির্দেশনা দেওয়া যায় তবে তা করতে আমার কোনও সমস্যা নেই।

উত্তর:


16
  1. ডিভাইসটি প্লাগ ইন করা হয়েছে, এবং সেই সফ্টওয়্যার যা সেই ডিভাইসের জন্য হার্ডওয়্যার বাস পরিচালনা করে একটি বাধা পায় (বা হার্ডওয়্যার স্তরে অন্যান্য বিজ্ঞপ্তি), এবং বাস ড্রাইভার সংযুক্ত ডিভাইসগুলি গণনা করে, বা ডিভাইস সনাক্ত করতে অন্য বাস-নির্দিষ্ট হার্ডওয়্যার ক্রিয়া করে।
  2. কার্নেল / হার্ডওয়্যার এর বাস / ডিভাইস / ইত্যাদি সনাক্তকারী দিয়ে / sbin / modprobe কল করে নতুন হার্ডওয়্যারের জন্য ড্রাইভার লোড করার অনুরোধ জানায়।
  3. ব্যবহারকারী-স্পেসে মোডপ্রোব একটি মিলে যাওয়া ড্রাইভার-নির্দিষ্ট উপন্যাস সন্ধান করার চেষ্টা করে। ( /lib/modules/$(uname -r)/modules.aliasসম্পূর্ণ তালিকার জন্য দেখুন )) এগুলি হার্ডওয়্যার ইন্টারফেসের ভিত্তিতে আলাদা দেখাবে। উদাহরণস্বরূপ, pci:v0000102Bd00002527sv*sd*bc*sc*i*102B, ডিভাইসের 2527, এবং subvendor জন্য কিছু ইত্যাদি অথবা USB বিক্রেতা একটি PCI ডিভাইসের জন্য: usb:v2040p4982d*dc*dsc*dp*ic*isc*ip*
  4. একবার ডিভাইস ড্রাইভারটি লোড হয়ে গেলে (বা একটি নতুন ডিভাইস যার মধ্যে ইতিমধ্যে একটি ড্রাইভার উপস্থিত ছিল আরম্ভ করা হয়), কার্নেলের ড্রাইভারটি udevব্যবহারকারী স্পেসে লোড হওয়া ডিভাইসের একটি বিজ্ঞপ্তি প্রেরণ করে ।
  5. udevনিয়ম তালিকায় বিরুদ্ধে প্রজ্ঞাপন সাথে মিলে যায় /lib/udev/rules.d/এবং /etc/udev/rules.d। এখান থেকে, নিয়মগুলির উপর ভিত্তি করে আচরণটি অত্যন্ত বিশেষজ্ঞ।
  6. ইউএসবি ডিস্কের ক্ষেত্রে 80-udisks.rulesফাইলটি সম্ভবত কাজ করার সেরা জায়গা। এই নিয়মগুলি ব্লকিড এবং অন্যান্য সহায়কগুলির মতো কোনও ডিস্কের প্রকার এবং বিষয়বস্তু অনুসন্ধানের ENV{UDISKS_PRESENTATION_HIDE}="1"জন্য ব্যবহার করবে, কোনও কারণে কোনও ডিস্ক উপেক্ষা করার মতো জিনিসগুলি সহ সমস্ত ধরণের কনফিগারেশন মানকে জনিত করে। বিশদটির জন্য "ম্যান 7 উডিস্কস" দেখুন।
  7. Udisks-ডেমন ডিভাইসের প্রদর্শিত করতে জন্য ঘড়ি udev দ্বারা ডাটাবেস, এবং DBus উপর ডিভাইস আবিষ্কারযোগ্য তালিকা হিসাবে তাদের উপহার তাদের। ("Udisks - সংখ্যার" দেখুন।)
  8. বিভিন্ন ক্রিয়াকলাপগুলি ইউডিস্কগুলিতে কনফিগার করা হয় , এবং সেই ক্রিয়াকলাপগুলিকে অনুমতি দেওয়ার নীতিটি নীতি ফাইলে দেখা যায় /usr/share/polkit-1/actions/org.freedesktop.udisks.policy। (কে মাউন্ট করতে পারে, অনিয়ম ইত্যাদি)
  9. ডিভাইসগুলিতে আগ্রহী পরিষেবাদি উদ্বোধনকারীদের কাছ থেকে ডিবিস ইভেন্টগুলি শুনবে এবং যখন তারা কিছু শর্ত দেখতে পাবে তখন পদক্ষেপ নেবে। উদাহরণস্বরূপ, জিনোমের নটিলাস (জিভিএফএস ভলিউম-মনিটরের মাধ্যমে) ডিভাইসগুলির জন্য অটোমোটিংয়ের জন্য অনুরোধ করবে ( ইউডিস্কের মাধ্যমে , যা উপরে বর্ণিত নীতিটি পরীক্ষা করবে)।
  10. একটি ফাইল সিস্টেম মাউন্ট হয়ে গেলে, সেই একই শ্রবণকারী পরিষেবাগুলি আরও বেশি পদক্ষেপ নেবে। উদাহরণস্বরূপ, নটিলাস জিজ্ঞাসা করবে যখন সাধারণ সিস্টেম স্টোরেজ ডিরেক্টরিটি কোনও ফাইল সিস্টেমে পাওয়া যায় তখন আপনি এফ-স্পট খুলতে চান কিনা DCIM

1
সম্ভবত আপনি জানেন যে বুটের সময় এটি কীভাবে পৃথক হয় (আমি ধরে নিই যে কেবলমাত্র 1 ধাপ আলাদা হয়)? বুটের সময় কোনও ডিভাইস কেন সনাক্ত করা গেল না, তবে ম্যানুয়াল রিপ্লাগিংয়ের পরে সঠিকভাবে লোড হবে?
নক্তিনিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.