为什么linux的TTY登录程序getty/agetty一般都会设置一个-L的option?
生活随笔
收集整理的這篇文章主要介紹了
为什么linux的TTY登录程序getty/agetty一般都会设置一个-L的option?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-L option表示程序不等待DCD信號。DCD信號是串口通訊時的一個信號,表示Data Carrier Detected,一般是modem連通之后會發送回來的一個信號,表示數據載波OK,可以繼續通信了。
但是,在現在的串口通信中,特別是嵌入式開發的時候,開發板上的串口,DCD這個pin一般都不會連線的,一般只連tx/rx/cts/rts四根線就OK了。
所以,如果getty或者agetty沒有指定-L選項,那么open /dev/ttyS0就會block在那里,因為kernel會wait在一個waitqueue上,等待串口的DCD信號上來(通過中斷)。
事實上,在getty/agetty程序中,指定-L option之后,代碼中就會以NON_BLOCK的方式來打開/dev/ttyS0,這樣kernel就不會去等待DCD信號了,從而打開串口就不會block了。
?
對于local的開發板上的串口來說,不連DCD線是合理的。因為這是local設備,不是要和遠程的一個modem進行通信,所以需要DCD。本地的串口連上述那四根線就OK了。
總結
以上是生活随笔為你收集整理的为什么linux的TTY登录程序getty/agetty一般都会设置一个-L的option?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式ARM Linux开发板自启动,跳
- 下一篇: (总结)Linux的/etc/servi