跑到init()中的"if (open("/dev/console", O_RDWR, 0) < 0)"這行就會卡住??

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

跑到init()中的"if (open("/dev/console", O_RDWR, 0) < 0)"這行就會卡住??

文章hillvskobe » 週一 2月 14, 2011 5:48 pm

如題~

我在使用Net-Start!這塊開發版時,用自己build的kernel + 光碟所附的file system,
每次開機到freeing init memory: 40K的地方就會卡住,
經過trace後發現是在main.c中的init()裡執行到"if (open("/dev/console", O_RDWR, 0) < 0)"這一行,
程式碼就不再往下跑了,系統也完全沒反應了,
想請問各位前輩,這可能是什麼原因呢?
該從哪一方面著手?
/dev/console所對應的driver source是哪一個.c檔?
還是它是直接對應到我的UART port的driver?


謝謝!
hillvskobe
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週五 3月 28, 2008 11:15 am

Re: 跑到init()中的"if (open("/dev/console", O_RDWR, 0) < 0)"這行就會

文章訪客 » 週二 2月 15, 2011 1:07 am

請問你的 rootfs 中, /dev/console 檔案是否存在, 屬性是否正確?
訪客
 

Re: 跑到init()中的"if (open("/dev/console", O_RDWR, 0) < 0)"這行就會

文章hillvskobe » 週二 2月 15, 2011 9:36 am

訪客 寫:請問你的 rootfs 中, /dev/console 檔案是否存在, 屬性是否正確?


/dev/console確實存在,屬性也正確,我也有試過把它拿掉,
這樣就會出現"can not open an initial console"的error,
所以應該不是這問題,
我是比較傾向是driver的問題,
不過不知道是哪個driver: /dev/console, /dev/tty, /dev/ttyS0出問題,
除了/dev/ttyS0我知道它的driver source是哪一個.c檔外,
/dev/tty和/dev/console對應的driver source .c檔我都不清楚在哪,
有前輩可以解答一下嗎?
或是可以直接告訴我open("/dev/console", O_RDWR)這行會呼叫到哪個.C檔裡的OPEN函式?


謝謝!
hillvskobe
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週五 3月 28, 2008 11:15 am


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客