Bagaimana saya tahu / dev / ttyS * mana port serial saya?


Jawaban:


21

Saya pikir ini perintah ini:

dmesg | grep tty

Menjalankan itu pada kotak Linux saya sendiri (yang hanya memiliki 1 port Serial) menghasilkan jalur output ttyS0 tunggal. Cobalah sendiri, Anda akan melihat apa yang saya maksud.


Apakah itu berarti bahwa setelah menjalankan perintah itu, jika responsnya adalah ... konsol [tty0] diaktifkan ..., dan tidak ada yang lain, perangkat apa pun terhubung ke / dev / tty0 (maaf atas kekonyolan pertanyaan yang tampak jelas)?
Hektor

1
Satu-satunya masalah adalah bahwa output dmesg dapat dihapus - jadi jika Anda menjalankan ini terlambat, Anda kurang beruntung. Melihat / proc / tty / driver / serial tampaknya jawaban yang lebih kuat dan kemudian memeriksa rx interupsi semakin bertambah saat Anda menulis data ke port
Neil McGill

Maaf, apa yang harus saya lakukan jika saya tidak melihat output apa pun?
user3019105

jika Anda saat ini berada di terminal melalui garis serial tersebut, Anda bisa mengetik tty untuk mendapatkan nama tty Anda. Saya berasumsi itulah yang dimaksud OP karena mereka tidak mengajukan pertanyaan sebagai "yang memiliki port serial getty berlari? "
Thom Nichols

7

Lihat UART mana yang terdeteksi di /proc/tty/driver/serial. Sebuah garis dengan uart:unknown berarti: tidak ada yang terdeteksi (dan kemungkinan tidak ada).

# cat /proc/tty/driver/serial 
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:16550A port:000002F8 irq:3 tx:111780 rx:1321 RTS|DTR|DSR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3

Jika ada sesuatu yang terhubung dan menggerakkan garis CTS, DSR atau CD (ini adalah jalur input) Anda bahkan dapat cukup yakin bahwa sebenarnya ada sesuatu ... Hal yang sama berlaku untuk rx-byte-count.


6

Jika Anda perlu melakukan ini secara program, membaca output dari dmesg dapat merepotkan, sebaliknya folder / dev / serial / by-id memiliki tautan sym yang dinamai setelah data yang dapat diidentifikasi dari perangkat Anda dan menunjuk ke spesifik / dev / tty * terhubung ke.

Saya tidak yakin apakah ini adalah beberapa aturan udev khusus yang spesifik untuk distribusi, tetapi berfungsi dengan baik di Ubuntu, beri tahu saya jika itu berfungsi.


3

ttyS0 melalui 3 sesuai dengan COM1 melalui 4masing-masing. Mereka biasanya memiliki sumber daya perangkat keras yang sama dan tidak selalu dapat dideteksi, sehingga selalu ada.


Terima kasih atas jawabannya. Jadi katakan saya ingin memberi tahu Linux bahwa saya ingin ttyS0 memetakan ke perangkat keras port serial saya, apa yang harus saya lakukan?
sivabudh

Anda akan menggunakannya setserial untuk memetakan sumber daya yang ttyS0 gunakan untuk port serial Anda. linux.die.net/man/8/setserial Ini biasanya tidak diperlukan, karena apa pun di luar COM4 biasanya memiliki perangkat keras tambahan yang cukup untuk memungkinkan Linux mendeteksi dan menambahkan perangkat serial yang sesuai.
Ignacio Vazquez-Abrams

0

Ada juga perintahnya setserial yang menggunakan /proc/tty/driver/serial untuk mendapatkan data itu.

# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.