Ich habe ein TrueRNG USB-basiertes Hardware-RNG und versuche, dessen Ausgabe unter Mac OS X 10.9.2 zu lesen. Ich brauche nur eine einseitige Kommunikation.
Das Gerät sagt, dass es als "CDC Virtual Serial Port" angezeigt wird, und ich sehe es tatsächlich als /dev/tty.usbmodem1411
.
Ich habe es nie geschafft cat /dev/tty.usbmodem1411
; Wenn ich das tue, bekomme ich überhaupt keine Ausgabe. Ich kann es jedoch verwenden minicom
oder daraus picocom
lesen. Mit picocom
funktioniert es sogar mit --noinit --noreset
Optionen, was darauf hindeutet, dass ich in der Lage sein sollte, cat
dieses Gerät zu verwenden.
Also, meine Probleme / Fragen:
- Warum kann ich
cat
das Gerät nicht? - Obwohl es mit
minicom
und funktioniertpicocom
, funktioniert es nur in der ersten Sitzung: Wenn ich eines dieser Programme schließe und sie dann wieder öffne, lesen sie ungefähr 300 Bytes und blockieren für immer. Wenn ich schließe und wieder öffne , können sie nichts lesen. Wenn ich das USB-Gerät ausstecke und wieder einstecke, ist es beim ersten Versuch wieder für immer lesbar. Warum sollte das so sein und hat es mit diesem Zitat aus der TrueRNG-Dokumentation zu tun? "Durch Löschen des DTR-Flags an der virtuellen seriellen Schnittstelle wird der Datenstrom gestoppt. Der Datenstrom wird fortgesetzt, wenn DTR gesetzt ist." - Ich möchte die zufälligen Daten in hex anzeigen. Also versuche ich diesen Befehl :
picocom /dev/tty.usbmodem1411 | xxd -p
. Die Ausgabe scheint jedoch den Zeilenumbruch nicht zu berücksichtigen. nur der Wagenrücklauf. Es wird zur nächsten Zeile verschoben, ohne zum Zeilenanfang zurückzuspulen. Ich würde es vorziehen, kontinuierlich zu sein.
Hier einige Diagnosen:
% 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;
cat
ich nicht lesen kann. Es werden absolut keine Daten ausgegeben, egal ob druckbar oder nicht druckbar. Gleiches gilt für dd
.