কীভাবে একটি ইউএসবি সিরিয়াল ডিভাইসের সাথে ttyUSBX ডিভাইস মিলবে


22

বিকল্প ড্রাইভার সঠিকভাবে ইউএসবি আইডি মেলে এবং এই ডিভাইসের জন্য ড্রাইভার লোড করে। উদাহরণ স্বরূপ

# lsusb
Bus 001 Device 002: ID 19d2:0031 ONDA Communication S.p.A. ZTE MF636
Bus 001 Device 003: ID 12d1:14ac Huawei Technologies Co., Ltd.

এটি হার্ডওয়্যার পরিচালনার জন্য ttyUSBX ডিভাইসগুলিও তৈরি করে

crw-rw---- 1 root uucp 188, 0 Jul  4 13:48 /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 1 Jul  4 13:49 /dev/ttyUSB1
crw-rw---- 1 root uucp 188, 2 Jul  4 13:35 /dev/ttyUSB2
crw-rw---- 1 root uucp 188, 3 Jul  4 13:37 /dev/ttyUSB3
crw-rw---- 1 root uucp 188, 4 Jul  4 13:37 /dev/ttyUSB4
crw-rw---- 1 root uucp 188, 5 Jul  4 13:37 /dev/ttyUSB5
crw-rw---- 1 root uucp 188, 6 Jul  4 13:37 /dev/ttyUSB6
crw-rw---- 1 root uucp 188, 7 Jul  4 13:37 /dev/ttyUSB7

তবে, আমার কাছে আরও একটি ইউএসবি সিরিয়াল ডিভাইস রয়েছে এবং আমি জানতে চাই কোন টিটিইউএসবি কোন ইউএসডিআইডি এর জন্য। যাত্রা। / dev / ttyUSB1 -> 19d2: 0031

আপনি কি এমন কোনও বিন্দু জানেন যেখানে আমি এই তথ্যটি পেতে পারি?


আপনি যদি বিক্রেতা / পণ্যের মতো বিবরণ জানেন তবে এই উত্তরটি দুর্দান্ত
'21

উত্তর:


13

সিসফেস ফাইল সিস্টেমটি দেখুন। আমার ইউএসবি সিরিয়ালটির একটি উদাহরণ:

$ lsusb
Bus 003 Device 016: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
$ ls -l /sys/bus/usb-serial/devices
lrwxrwxrwx 1 root root 0 Jul  4 17:37 ttyUSB0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:02:00.0/usb3/3-1/3-1:1.0/ttyUSB0
$ $ grep PRODUCT= /sys/bus/usb-serial/devices/ttyUSB0/../uevent
PRODUCT=67b/2303/300

আপনি দেখতে পাচ্ছেন, আমার কম্পিউটারে ttyUSB0মানচিত্র 067b:2303। অন্বেষণে মূল্যবান অন্য একটি অবস্থান /sys/class/tty/। প্রতিলিপিগুলিতে মনোযোগ দিন।


আপনি এটিকে পণ্যও তালিকাবদ্ধ করতে কিছু করেছেন?
ইগোর স্টপপা

@IgorStoppa, করার চেষ্টা করুন ফল থেকে ফাইল উদাহরণস্বরূপ,। আপনার সিরিয়াল ডিভাইসের নোড নামটি প্রতিস্থাপন করুন। catueventfind /sys -name ttyACM0
sherrellbc

9

আপনার ডিভাইস গুলি / ডেভেল / সিরিয়াল / বাই-আইডি / এর আওতায় নিবন্ধভুক্ত হয়েছে কিনা তা দেখার চেষ্টা করতে পারেন

এলএস-এল / দেব / সিরিয়াল / বাই আইডি

এই নামগুলি সামঞ্জস্যপূর্ণ হওয়া উচিত এবং সঠিক ttyUSBx এ নির্দেশ করবে (syMLink)


আপনি কি কিছু স্পেসিফিকেশন, উদাহরণ ইত্যাদি যোগ করতে পারেন অনলাইন উত্তর এসই
রোমিও নিনভ

@ রোমিওনোভ ঠিক আছে, আপনার অনুরোধ অনুসারে আমি কিছু স্পষ্টতা যোগ করেছি। এটি কেবলমাত্র অন্য ডিরেক্টরিতে সন্ধানের চেয়ে ঠিক বেশি কঠিন নয়, সুতরাং উত্তরটি আরও প্রশস্ত করে কীভাবে উন্নতি করা যায় তা কীভাবে উন্নত করা যায় তা আমি দেখতে পাচ্ছি না। এর জন্যে দুঃখিত.
ওয়াক্সহেড

আমার দুটি অভিন্ন অ্যাডাপ্টার রয়েছে (দুটি আরডুইনো) একটি রাস্পবেরি পাইয়ের সাথে যুক্ত। ls -l /dev/serial/by-idশুধুমাত্র একটি অ্যাডাপ্টার ফেরত দেয় ../../ttyUSB1, যখন ls -l /sys/bus/usb-serial/devicesআমাকে উভয় দেখায়। সুতরাং আমি মনে করি না যে এটি একটি ভাল উত্তর।
ড্যানিয়েল এফ

6

আমারও একই সমস্যা ছিল

এটিকে /etc/udev/rules.d/50-usb.rules এ লিখুন

SUBSYSTEM=="tty", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", SYMLINK+="ONDA"
SUBSYSTEM=="tty", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14ac", SYMLINK+="HUAWEI"

অবশেষে. পুনরায় বুট করুন।

এখন আপনি /dev/ONDAনিজের ওন্ডা ডিভাইসে যেতে ব্যবহার করতে পারেন ।

আপনি যদি নন-রুট ব্যবহারকারীদের এগুলি ব্যবহার করতে সক্ষম হতে চান তবে যুক্ত করুন

, MODE="0666"

প্রতিটি লাইনের শেষে।


আমি এটি করেছি এবং ফাইলগুলি যেখানে লিঙ্ক করেছে সেগুলি চেক করেছি। আমার কাছে থাকা পণ্যটির একাধিক ইন্টারফেস রয়েছে, যেমন কঠিন ডিস্কের মতো, ইউএসবি সিরিয়াল। আমি লিংকেজটি / dev / ttyACM0 তে প্রত্যাশা করেছিলাম তবে এটি ছিল / dev / sda। কোনও নিয়ম ফাইলে সংজ্ঞায়িত করার জন্য কোনও ডিভাইসের ধরণটি প্রয়োগ করা উচিত? আমি /etc/udev/rules.d/99-ftdi.rules নিয়ম লিখেছিলেন
nurp

ঠিক আছে এটি খুঁজে পেয়েছে: বিধি পরামিতিতে SUBSYSTEM == "tty" যুক্ত হয়েছে। এই মানটি পাওয়া যাবে udevadm info --name=/dev/ttyACM0
আউটপুটটিতে

3

আমি ইউদেব ব্যবহার করব এবং এমন কিছু নিয়ম লিখব যা ডিভাইসের জন্য সিমলিংক তৈরি করে।

ডিভাইসগুলিকে আলাদা করার জন্য পর্যাপ্ত তথ্য পাওয়ার জন্য সমস্ত ডিভাইসগুলির জন্য এই জাতীয় কিছু চেষ্টা করুন:

$ udevadm info --query all --name /dev/ttyUSB0 --attribute-walk

1

নিম্নলিখিত কমান্ডগুলি আমাকে 19d2: 0016 (যা একটি জেডটিই এমএফ 831 এলটিই স্টিকের "মডেম মোড" আইডি, আপনার মতামত পৃথক হতে পারে) এর সাথে যুক্ত ttyUSB ডিভাইসের নামগুলির তালিকা দেবে:

    for i in $(find -L /sys/bus/usb/devices/ -maxdepth 2 -name "ttyUSB*"); do
        egrep -i "v19d2p0016(.*)in02" $i/../modalias >/dev/null && echo "/dev/${i##*/}"
    done

এটি / sys / bus / usb / ডিভাইসগুলিতে সিমলিংক সহ ttyUSB * ফাইলের নামের সাথে ফাইলগুলির তালিকার মধ্য দিয়ে লুপ করবে। ফলাফলগুলির মধ্যে আমরা মোডালিয়াস নামের একটি ফাইল অনুসন্ধান করব এবং বিক্রেতার আইডি "v" "19d2" এবং পণ্য আইডি "পি" 0016 সম্বলিত একটি স্ট্রিং সন্ধান করব If ​​যদি আউটপুট মেলে, আমরা "/ dev / "ইউএসবির সামনে? নাম দিন। আফাইক প্রথম বা সাধারণত সর্বশেষ (সর্বাধিক সংখ্যা) জেডটিই ডিভাইসের মডেম পোর্ট। আপনি সেই ফলাফলগুলিকে / tmp / এবং হেড -n1 বা লেজ -n1-এ লাইন অনুসারে একটি ফাইলের প্রতিধ্বনি করতে পারেন। আপনার যদি হাব থাকে তবে আপনার সম্ভবত ম্যাক্সডেপথ বাড়ানোর প্রয়োজন হতে পারে।

এটি সবচেয়ে মার্জিত উপায় নয়, তবে এটি প্রায় কোনও লিনাক্স ভেরিয়েন্টে কাজ করবে work

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.