Linux

シリアルコンソール

カーネルオプションで、シリアル系のを選択すれば、特にほかは問題なし?

grubのmenu.lstの最初のほうに

serial --unit=0 --speed=9600 -word=8 --parity=no --stop=1
terminal --timeout=10 serial console

を追加するとgrubがシリアル対応になる。 すげー。

起動オプションに

console=tty0 console=ttyS0,9600n8r

をつけて、

/etc/inittabに

s0:12345:respawn:/sbin/agetty -L 9600 ttyS0

を追加して、

init q

を実行すれば、再起動せんでもよし

シリアルコンソールクライアントとしては

  • teraterm
  • jerm
  • minicom とかがあるらしい

cygwinでのシリアルの使い方

コンパイル

Taylor UUCP

./configure
make
cd unix
make ftw.o
make
cd ..
make

./cu.exe を使う

USB-SERIAL 変換機

  • BUFFALOの "BHC-US01/GP"

使うモジュールは、usbserial と pl2303

カーネルオプションで

  • USB Sirial
  • USB Prolific 2303 Single Port Serial Driver

を有効に

jermの使いかた

とりあえず http://www.bsddiary.net/jerm/ からゲッツしてきて解凍してmakeすれば使える

よく

jerm -b 38400 /dev/ttyUSB0

とかでつなぐ、とか書いてあるサイトがあるが、これではだめ。 あんたほんとにそれで使えているのか?と言いたい。

-bオプションの引数は、あたえられた数字をそのまま、 cfsetispeed, cfsetospeed関数に渡すようになっている。 この関数は受け取るスピードとして、「B〜」というマクロを利用する。 これは、<termios.h>に定義されていて、

#define  B50    0000001
#define  B75    0000002
#define  B110   0000003
#define  B134   0000004
#define  B150   0000005
#define  B200   0000006
#define  B300   0000007
#define  B600   0000010
#define  B1200  0000011
#define  B1800  0000012
#define  B2400  0000013
#define  B4800  0000014
#define  B9600  0000015
#define  B19200 0000016
#define  B38400 0000017
#define  B57600   0010001
#define  B115200  0010002
#define  B230400  0010003
#define  B460800  0010004
#define  B500000  0010005
#define  B576000  0010006
#define  B921600  0010007
#define  B1000000 0010010
#define  B1152000 0010011
#define  B1500000 0010012
#define  B2000000 0010013
#define  B2500000 0010014
#define  B3000000 0010015
#define  B3500000 0010016
#define  B4000000 0010017

と定義されているので、8進数であることに注意すれば

960001513
1920001614
3840001715
576000100014097
1152000100024098

なので、 115200でつなぎたい場合は、

jerm -b 4098 -p none -d 8 -s 1 -f none /dev/ttyUSB0

とかするのだ。

ちなみに、デフォルトだとボーレートは9600なので、まちがって

jerm -b 9600

とかしても動いてしまうのだ。