問題:/bin/sh: can't access tty; job controlturned off 解決記錄

     今日移植AM1808 UBI文件系統,自己用busybox製作,移植後發現在最後打開終端時顯示: /bin/sh: can't access tty; job controlturned off錯誤。而且無法使用ctrl+c 中斷進程的功能,經過排查發現是inittab啓動腳本的問題。

現將問題記錄如下。

/bin/sh: can't access tty; job controlturned off  

該問題實際上是 無法使用真實的tty設備來打開/bin/sh 也就是bash. 打開inittab我可以看到一些這樣的語句

console::sysinit:/etc/init.d/rcS #

tty0::askfirst:-/bin/sh

具體的解釋可以參考韋東山的《嵌入式linux應用開發完全手冊》P346頁

關鍵在於ttySAC0必須是一個真實的tty設備。

類似於天嵌,友善的開發板,他們修改過串口設備以後,這裏也會需要修改。


我的問題在於不知道那個tty纔是真實的串口設備。觀察uboot的傳遞參數發現:

setenv bootargs console=ttySAC0,115200n8 noinitrd rw ip=192.168.14.104:192.168.14.141:192.168.14.254:255.255.255.0 root=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=64M


於是我修改tty0::askfirst:-/bin/sh 爲ttySAC0::askfirst:-/bin/sh 則可以成功啓動。

ctrl+c中斷功能正常工作。


所以,在這個問題的解決上,最重要的是找到真實的tty設備,使用這個設備來啓動bash就可以。

-----------------------------------另外所做的實驗 --------------------------------------------------------------

1.網上也有說法,例如創建console爲軟連接,連接到真實的tty設備上,我這邊嘗試後都沒有成功。

2.也有修改內核tty_io.c中noctty=1爲0的方法。我嘗試後,確實可以用console啓動,但是會出現很多奇怪的問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章