Ubuntu 9.10のFDTI USB シリアル通信

会社でRBIO-2Uのシリアル通信プログラムが動かなくなったので、テストプログラムでテストしてみた。

ソース

Ubuntu 9.10 Desktop kernel 2.6.31

noizumi@pwin2:~/src$ ./testserial
c_cflag : 800008BD	800008BD
c_iflag : 4	4
c_oflag : 0	0
c_lflag : 0	0
c_cc[VINTR]    : 0	0
c_cc[VERASE]   : 0	0
c_cc[VKILL]    : 0	0
c_cc[VEOF]     : 4	4
c_cc[VTIME]    : 0	0
c_cc[VMIN]     : 1	1
c_cc[VSWTC]    : 0	0
c_cc[VSTART]   : 0	0
c_cc[VSTOP]    : 0	0
c_cc[VSUSP]    : 0	0
c_cc[VEOL]     : 0	0
c_cc[VREPRINT] : 0	0
c_cc[VDISCARD] : 0	0
c_cc[VWERASE]  : 0	0
c_cc[VLNEXT]   : 0	0
c_cc[VEOL2]    : 0	0
put_serial_string=0
←ここでread()でブロックされて返ってこない。

Ubuntu 9.04 Desktop kernel 2.6.28-16

noizumi@noizumi-desktop:~/src$ ./testserial
c_cflag : CBD	800008BD
c_iflag : 500	4
c_oflag : 5	0
c_lflag : 8A3B	0
c_cc[VINTR]    : 1C	0
c_cc[VERASE]   : 7F	0
c_cc[VKILL]    : 15	0
c_cc[VEOF]     : 4	4
c_cc[VTIME]    : 0	0
c_cc[VMIN]     : 1	1
c_cc[VSWTC]    : 0	0
c_cc[VSTART]   : 11	0
c_cc[VSTOP]    : 13	0
c_cc[VSUSP]    : 1A	0
c_cc[VEOL]     : 0	0
c_cc[VREPRINT] : 12	0
c_cc[VDISCARD] : F	0
c_cc[VWERASE]  : 17	0
c_cc[VLNEXT]   : 16	0
c_cc[VEOL2]    : 0	0
put_serial_string=0
res=1
0D:
res=1
0A:

res=1
4F:O
res=1
4B:K
res=1
0D:
res=1
0A:

9.04だと、”PCR01″って送信したら、”\r\nOK\r\n”って文字が返ってきている。
シリアルポートの設定は同じだが、read()で読み出した時の挙動が違う。
これは、kernel 2.6.31のFTDIのドライバか、シリアル関係がバグってそうな予感…。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>