দুর্ভাগ্যবশত সিরিয়াল পোর্টগুলি অ PlugNPlay, একটি পড়ার পর হয়। তাই কার্নেল জানে না কোন ডিভাইস ব্যবহার প্লাগ ইন করা হয়েছিল এ HowTo টিউটোরিয়াল আমি কাজ ধারণা পেয়েছেন।
/dev/
অপারেটিং সিস্টেমের মত UNIX নির্দেশিকা নামকরণ ফাইল রয়েছে ttySn (ক সংখ্যা হচ্ছে এন সঙ্গে) । তাদের বেশিরভাগ বিদ্যমান ডিভাইসের সাথে সামঞ্জস্য করে না। কোনটি করে তা সন্ধান করতে একটি আদেশ জারি করুন:
$ dmesg | grep ttyS
[ 0.872181] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.892626] 00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 0.915797] 0000:01:01.0: ttyS4 at I/O 0x9800 (irq = 19) is a ST16650V2
[ 0.936942] 0000:01:01.1: ttyS5 at I/O 0x9c00 (irq = 18) is a ST16650V2
উপরে আমার পিসির একটি উদাহরণ আউটপুট। আপনি কয়েকটি সিরিয়াল পোর্টের সূচনা দেখতে পারেন:
ttyS0
, ttyS1
, ttyS4
, ttyS5
।
তাদের একজন একটি ইতিবাচক ভোল্টেজ আছে যাচ্ছে একটি ডিভাইস। তাই প্লাগ উপর ফাইলের বিষয়বস্তু তুলনা করে /proc/tty/driver/serial
দিয়ে এবং ডিভাইস ছাড়া প্লাগ আমরা সহজেই জানতে পারেন ttyS আমাদের ডিভাইস এর সাথে সম্পর্কিত। সুতরাং, এখন করুন:
$ sudo cat /proc/tty/driver/serial> /tmp/1
(আনইন) কোনও ডিভাইস প্লাগ করুন
$ sudo cat /proc/tty/driver/serial> /tmp/2
এরপরে দুটি ফাইলের মধ্যে পার্থক্য পরীক্ষা করুন। নীচে আমার পিসির একটি আউটপুট দেওয়া হল:
$ diff /tmp/1 /tmp/2
2c2
< 0: uart:16550A port:000003F8 irq:4 tx:6 rx:0
---
> 0: uart:16550A port:000003F8 irq:4 tx:6 rx:0 CTS|DSR
ডেমসগ আউটপুটটির সাথে তিনটি সংখ্যার তুলনা করে আমরা নির্ধারণ করতে পারি যে কোনটি বন্দর:
[ 0.872181] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
সুতরাং, আমাদের ডিভাইস /dev/ttyS0
, মিশন সম্পন্ন!