200911241110busybox的login與serial consloe問題

最近在測試嵌入式系統的登入功能,如果用com port進入,也就是serial port。常常會出現登入失敗,登入失敗指的是第一次輸入帳號後,就會等個60秒無法輸入密碼。如果用ssh遠端登入就沒有這個問題,原本以為是busybox的login.c有bug,進去trace之後發現跟本就是serial port的問題。

後來為了先解決當務之急,先把busybox的login.c裡timeout的時間改為5秒,讓其他rd登入時不用等太久時間,最後才是尋找解決的方法。

在網路上尋找相關的問題之後,發現使用免登入的方式進入rootfs才是我們所需要的功能。首先進去/dev底下創立console的連結到ttyS0,不過進到/dev目錄查看之後,才發現console被創造為裝置節點。

所以先把console node移除掉(rm -f console),再創立新的連結(ln -s ttyS0 console),這時重開機之後發現前可所說的登入問題被解決掉了,原因還在查找中。至少第一次登入及顯示訊息都正常了! 之後修改/etc/inittab檔案,先把原本的

ttyS0::respawn:/sbin/getty -L ttyS0 115200 -vt100

註解掉

#ttyS0::respawn:/sbin/getty -L ttyS0 115200 -vt100

再增加新的一行

::respawn:/sbin/getty -n -L ttyS0 115200 vt100 -n -l /bin/sh

之後重新開機就可以不用登入了。至於getty並非是標準linux指令的樣子,在fedora 8上用man查尋並未找到相關訊息,之後google到相關訊息在補上來。

回應
關鍵字