Pertanyaan:
Saya terhubung ke sebuah perangkat (yaitu modem GSM) melalui port serial (alias RS-232), dan saya perlu melihat dengan file mana di /dev/
filesystem perangkat ini diikat, untuk dapat berkomunikasi dengannya. Sayangnya tidak ada file yang baru dibuat di /dev/
atau tidak dapat dilihat apa pun di dmesg
output. Jadi ini sepertinya pertanyaan yang sulit.
Latar Belakang:
Saya belum pernah bekerja dengan perangkat serial, jadi kemarin, ketika ada kebutuhan, saya mencoba Google tetapi tidak menemukan sesuatu yang bermanfaat. Saya menghabiskan beberapa jam mencari, dan saya ingin membagikan jawaban yang ditemukan karena dapat membantu seseorang.
devices
tty
serial-port
Hai Malaikat
sumber
sumber
Jawaban:
Sayangnya port serial non-PlugNPlay, jadi kernel tidak tahu perangkat mana yang dicolokkan. Setelah membaca tutorial HowTo, saya punya ide yang berfungsi.
The
/dev/
direktori unix seperti OS berisi file bernama ttySn (dengan n menjadi angka) . Sebagian besar tidak sesuai dengan perangkat yang ada. Untuk menemukan yang mana, lakukan perintah:Di atas adalah contoh output dari PC saya. Anda dapat melihat inisialisasi beberapa port serial:
ttyS0
,ttyS1
,ttyS4
,ttyS5
.Salah satunya akan memiliki tegangan positif pada perangkat yang terhubung. Jadi dengan membandingkan konten file
/proc/tty/driver/serial
dengan dan tanpa perangkat yang terhubung, kita dapat dengan mudah menemukan ttyS yang terkait dengan perangkat kita. Jadi, sekarang lakukan:(un) pasang perangkat
Selanjutnya periksa perbedaan antara kedua file. Di bawah ini adalah output dari PC saya:
Dengan membandingkan tiga angka dengan output dmesg kita dapat menentukan yang mana adalah port:
Karenanya, perangkat kami adalah
/dev/ttyS0
, misi tercapai!sumber
dmesg
harus memiliki pesan tentang menetapkan irq ke perangkat serial. Dan jika tidak, saya akan menganggap beberapa masalah perangkat keras. Itu hanya asumsi, dan mungkin salah, tetapi jika saya men-debug masalah seperti itu, saya akan memulai penelitian dengan gagasan bahwa port serial seharusnya sudah diinisialisasi.