我有一个基于TrueRNG USB 的硬件 RNG,我正在尝试在 Mac OS X 10.9.2 上读取它的输出。我只需要单向沟通。
该设备说它显示为“CDC 虚拟串行端口”,实际上我将其视为/dev/tty.usbmodem1411.
我从来没能做到cat /dev/tty.usbmodem1411;当我这样做时,我根本没有输出。但是,我可以使用minicom或picocom阅读它。使用picocom,它甚至可以使用--noinit --noreset选项,这表明我应该能够使用cat该设备。
所以,我的问题/问题:
cat那个设备?minicomand picocom,但它只适用于第一个会话:如果我关闭这些程序中的任何一个,然后重新打开它们,那么它们读取大约 300 个字节并永远阻塞。如果我关闭并再次重新打开,他们将无法阅读任何内容。但是,当我拔下并重新插入 USB 设备时,它在第一次尝试时再次可读。为什么会这样,这是否与 TrueRNG 文档中的引用有关?“通过清除虚拟串口上的 DTR 标志,数据流将停止。当 DTR 被设置时,数据流将恢复。”picocom /dev/tty.usbmodem1411 | xxd -p。然而,输出似乎不尊重换行符;只是回车。它移动到下一行而不倒回到行的开头。我更喜欢它是连续的。以下是一些诊断:
% stty -a -f /dev/tty.usbmodem1411
speed 9600 baud; 0 rows; 0 columns;
lflags: -icanon -isig -iexten -echo -echoe -echok -echoke -echonl
-echoctl -echoprt -altwerase -noflsh -tostop -flusho -pendin
-nokerninfo -extproc
iflags: -istrip -icrnl -inlcr -igncr -ixon -ixoff -ixany -imaxbel -iutf8
-ignbrk -brkint -inpck -ignpar -parmrk
oflags: -opost -onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
Run Code Online (Sandbox Code Playgroud)