দ্রষ্টব্য: এটি একটি লিনাক্স উত্তর; অন্যান্য কার্নেলগুলির সাথে এটির মোকাবিলা করার জন্য কিছুটা আলাদা উপায় থাকবে।
প্রসঙ্গ
পিসিআই বাস নিয়ে কথা না বলে ইউএসবি বাস নিয়ে কথা বলা মুশকিল। একটি সিপিইউ একটি ইউএসবি বাসের সাথে কথা বলতে পারে না, যা ঘটে তা হ'ল সিপিইউ একটি পিসিআই বাসের সাথে কথা বলে যার সাথে একটি ইউএসবি কন্ট্রোলার যুক্ত থাকে (এবং একটি ইউএসবি নিয়ন্ত্রণকারী / হাব যাকে lsusb
ইউএসবি বাস বলে ডাকে)। পিসিআই বাসগুলি সিপিইউ থেকে কতটা দূরে রয়েছে তার উপর ভিত্তি করে নাম্বার করা হয়েছে, উদাহরণস্বরূপ:
+-----+
| CPU |
+-----+
| PCI Bus 0
---+--+-----------------------------+
| |
+---+----+ +----+---+
| Bridge | | Bridge |
+---+----+ +----+---+
| PCI bus 1 | PCI bus 2
--+--------+ +-------+-------------+
| | |
Disk Controller USB Controller Network Card
(Device 00) (Device 00) (Device 01)
সন্ধান করে man lspci
আমরা নিম্নলিখিতটি দেখতে পাই:
Slot The name of the slot where the device resides
([domain:]bus:device.function). This tag is
always the first in a record.
অতএব আমরা এখন পিসিআই নম্বর ব্যাখ্যা করতে জানি। এরপরে আমরা পিসিআই বাসগুলিতে সংযুক্ত ইউএসবি কন্ট্রোলারের দিকে নজর দেব। আমি বর্তমানে যে মেশিনে রয়েছি তার একটি আকর্ষণীয় ইউএসবি কনফিগারেশন রয়েছে তাই আমি এটি উদাহরণ হিসাবে ব্যবহার করব:
$ lspci -tv
-[0000:00]-+-00.0 Advanced Micro Devices, Inc. [AMD] RS780 Host Bridge
+-01.0-[01]----05.0 Advanced Micro Devices, Inc. [AMD/ATI] RS780M [Mobility Radeon HD 3200]
+-04.0-[02]----00.0 Qualcomm Atheros AR928X Wireless Network Adapter (PCI-Express)
+-05.0-[03]----00.0 Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
+-06.0-[04-06]--
+-11.0 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
+-12.0 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
+-12.1 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
+-12.2 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
+-13.0 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
+-13.1 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
+-13.2 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
+-14.0 Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller
+-14.1 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller
+-14.2 Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)
+-14.3 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller
+-14.4-[07]--
+-14.5 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
+-18.0 Advanced Micro Devices, Inc. [AMD] Family 11h Processor HyperTransport Configuration
+-18.1 Advanced Micro Devices, Inc. [AMD] Family 11h Processor Address Map
+-18.2 Advanced Micro Devices, Inc. [AMD] Family 11h Processor DRAM Controller
+-18.3 Advanced Micro Devices, Inc. [AMD] Family 11h Processor Miscellaneous Control
\-18.4 Advanced Micro Devices, Inc. [AMD] Family 11h Processor Link Control
অপেক্ষার অপেক্ষায় অপেক্ষা করুন, সেসব প্লাস কী? শীর্ষে আমাদের ডোমেন এবং পিসিআই বাস রয়েছে -[0000:00]
(এই মেশিনটিতে কেবল একটি পিসিআই বাস রয়েছে)। এবং তারপরে আমাদের কয়েকটি বাসের সাথে সংযুক্ত ডিভাইস রয়েছে। আসুন দেখুন যেগুলি ইউএসবি ডিভাইসগুলি:
$ lspci -tv | grep -i usb
+-12.0 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
+-12.1 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
+-12.2 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
+-13.0 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
+-13.1 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
+-13.2 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
+-14.5 Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
ভাল, এখন এর তুলনা করা যাক lsusb
(আমি sort
পরে তালিকার সন্ধান আরও সহজ করার জন্য ব্যবহার করি ):
$ lsusb | sort
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 174f:5a31 Syntek Sonix USB 2.0 Camera
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c019 Logitech, Inc. Optical Tilt Wheel Mouse
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 0b05:1751 ASUSTek Computer, Inc. BT-253 Bluetooth Adapter
আবার অপেক্ষা করুন। আমাদের অনুযায়ী 7 টি ইউএসবি ডিভাইস রয়েছে lspci
তবে 10 ডিভাইস অনুযায়ী lsusb
! lspci
কেবল ইউএসবি নিয়ন্ত্রণকারীদের তালিকাভুক্ত করে; একটি নিয়ামক এর সাথে একাধিক ইউএসবি ডিভাইস সংযুক্ত থাকতে পারে। এটি /sys/bus/
কীভাবে হয় তা দেখতে আমাদের অনুসন্ধান করুন ।
$ ls -l /sys/bus/usb/devices/
... 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:12.2/usb1/1-0:1.0
... 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:13.2/usb2/2-0:1.0
... 2-1 -> ../../../devices/pci0000:00/0000:00:13.2/usb2/2-1
... 2-1:1.0 -> ../../../devices/pci0000:00/0000:00:13.2/usb2/2-1/2-1:1.0
... 2-1:1.1 -> ../../../devices/pci0000:00/0000:00:13.2/usb2/2-1/2-1:1.1
... 3-0:1.0 -> ../../../devices/pci0000:00/0000:00:12.0/usb3/3-0:1.0
... 3-1 -> ../../../devices/pci0000:00/0000:00:12.0/usb3/3-1
... 3-1:1.0 -> ../../../devices/pci0000:00/0000:00:12.0/usb3/3-1/3-1:1.0
... 4-0:1.0 -> ../../../devices/pci0000:00/0000:00:12.1/usb4/4-0:1.0
... 5-0:1.0 -> ../../../devices/pci0000:00/0000:00:13.0/usb5/5-0:1.0
... 6-0:1.0 -> ../../../devices/pci0000:00/0000:00:13.1/usb6/6-0:1.0
... 7-0:1.0 -> ../../../devices/pci0000:00/0000:00:14.5/usb7/7-0:1.0
... 7-1 -> ../../../devices/pci0000:00/0000:00:14.5/usb7/7-1
... 7-1:1.0 -> ../../../devices/pci0000:00/0000:00:14.5/usb7/7-1/7-1:1.0
... 7-1:1.1 -> ../../../devices/pci0000:00/0000:00:14.5/usb7/7-1/7-1:1.1
... 7-1:1.2 -> ../../../devices/pci0000:00/0000:00:14.5/usb7/7-1/7-1:1.2
... 7-1:1.3 -> ../../../devices/pci0000:00/0000:00:14.5/usb7/7-1/7-1:1.3
... usb1 -> ../../../devices/pci0000:00/0000:00:12.2/usb1
... usb2 -> ../../../devices/pci0000:00/0000:00:13.2/usb2
... usb3 -> ../../../devices/pci0000:00/0000:00:12.0/usb3
... usb4 -> ../../../devices/pci0000:00/0000:00:12.1/usb4
... usb5 -> ../../../devices/pci0000:00/0000:00:13.0/usb5
... usb6 -> ../../../devices/pci0000:00/0000:00:13.1/usb6
... usb7 -> ../../../devices/pci0000:00/0000:00:14.5/usb7
এখন এটি উপলব্ধি করা শুরু হচ্ছে, আমাদের কাছে USB টি ইউএসবি কন্ট্রোলার রয়েছে যা পিসিআই বাসে ডিভাইস হিসাবে প্লাগ রয়েছে। উদাহরণস্বরূপ, ইউএসবি বাস 001 পিসিআই ডিভাইসের সাথে 0000:00:12.2
এবং ইউএসবি বাস 007 0000:00:14.5
ডিভাইসের সাথে সম্পর্কিত।
ডিভাইস নম্বর
ইউএসবি বাস নম্বর (যেমন 7-1:1.2
) দিয়ে শুরু হওয়া ডিরেক্টরিগুলি হ'ল ইউএসবি নিয়ামকের সাথে সংযুক্ত প্রকৃত ডিভাইস। পিসিআই বাসের মতো বেশ কয়েকটি ডিভাইস একটি ইউএসবি কন্ট্রোলার (একটি হাব) সংযুক্ত থাকতে পারে এতে বেশ কয়েকটি ইউএসবি ডিভাইস সংযুক্ত থাকতে পারে।
ডিভাইস সংখ্যাগুলি সহজভাবে কাউন্টার হয়: সংযুক্ত প্রথম ডিভাইসটি 1 পায়, পরেরটি 2 পায় এবং আরও অনেক কিছু। তবে আরও কিছু আছে: ইউএসবি হট-প্লাগেবল হতে ডিজাইন করা হয়েছিল; অতএব আপনি ডিভাইস সংযোগ এবং সংযোগ বিচ্ছিন্ন করতে পারেন। আপনি যখন কোনও ইউএসবি ডিভাইস সংযোগ বিচ্ছিন্ন করেন তখন সেই USB কন্ট্রোলারের অন্য কোনও ডিভাইসের জন্য ডিভাইস নম্বরটি কার্নেল দ্বারা আর ব্যবহার করা হবে না। উদাহরণস্বরূপ, আপনি যদি পেনড্রাইভকে সংযুক্ত করে সংযোগ বিচ্ছিন্ন করেন এবং lsusb
চালিয়ে যান তবে আপনার পেনড্রাইভটির জন্য ডিভাইস নম্বরটি দেখতে পাবেন।
বাস নম্বর
আপনি যদি মনোযোগ দিয়ে উপরেরটি পড়ে থাকেন তবে আপনি হয়ত এমন একটি জিনিস সম্পর্কে ভাবছেন যা আমি স্পর্শ করি নি। পিসিআই নম্বরিংয়ের ক্রমটি ইউএসবি কন্ট্রোলারদের যে নম্বর অনুসারে সংযুক্ত ছিল তার সাথে মিলে না! আমাদের আবার এটি দেখতে দিন:
USB | PCI
-----+----
usb1 | 0000:00/0000:00:12.2
usb2 | 0000:00/0000:00:13.2
usb3 | 0000:00/0000:00:12.0
usb4 | 0000:00/0000:00:12.1
usb5 | 0000:00/0000:00:13.0
usb6 | 0000:00/0000:00:13.1
usb7 | 0000:00/0000:00:14.5
তালিকাটি ক্রমযুক্ত, তবে বেশ নয়। প্রথম দুটি ইউএসবি কন্ট্রোলার অস্থির বলে মনে হচ্ছে। তবুও, এর একটি কারণ রয়েছে: lspci
উপরের দিকে নজর দিলে আপনি দেখতে পাবেন যে সেগুলি EHCI
ইউএসবি (ইউএসবি ২.০), অন্য সমস্ত ইউএসবি কন্ট্রোলার OHCI
ইউএসবি (ইউএসবি ১.০) হয়।
অতএব আমরা এই টেবিলটিকে এইভাবে পুনরায় আঁকতে পারি:
USB | PCI
-----+----
usb1 | 0000:00/0000:00:12.2
usb2 | 0000:00/0000:00:13.2 USB 2.0
-----+---------------------------------
usb3 | 0000:00/0000:00:12.0 USB 1.x
usb4 | 0000:00/0000:00:12.1
usb5 | 0000:00/0000:00:13.0
usb6 | 0000:00/0000:00:13.1
usb7 | 0000:00/0000:00:14.5
এবং নম্বর নির্ধারণ স্পষ্ট হয়ে যায়।