最近、仕事現場がお祭りです。
そんな身の上話はおいといて・・・・
複数UARTのChannelを持っている装置でのお話です。
UART0 : とあるmodule
UART1 : console出力用232c
という構成で、UART0を無効にしていました。
そーすると、Linux上ではconsoleがttyS0になります。
この時は何も弊害なく動作していました。
ある時、UART0側を有効にしました。
そーすると、Linux上ではconsoleがttyS1になります。
・・・・なんと、動かない!
kernelのメッセージ出力は確かにされていて、
ドライバも正常に動作しているように見えてるのですが、
userlandの部分(INITから先)が全く表示されず。
telnetでログインすると、なんと/dev下にnodeが一切無く、
udevd(だけ)が起動していないという状態でした。
しかも、telnet上で手動でudevdを起動するとなんも問題なく、
echo >/sys/class/tty/ttyS1/uevent
でttyS1がdev下に生成されるのです。
なーんでそんなことが起こるのか、全然分かりませんでしたが、
原因はKGDBのSerialPortが1だったからでした。
標準出力とかぶってしまった為、上手く動作しなかったようです。
KGDBなんて使っていなかったので、気にもしていなかったのですが、
知人が偶然発見し、なんとか解決に至りました。
こんな動きをするんですねぇ・・・。
なかなか解決し辛い事象だと思いますので、書いてみました。
同じ現象でお悩みの方がいるかは分かりませんが、
KGDBを使用の際はお気をつけて。
0 件のコメント:
コメントを投稿