网络设备、*nix自带了命令行界面属性,而windows完全相反,骨子里就是GUI界面。所以系统管理员更喜欢linux,因而出现问题的时候,可以通过串口来访问linux服务器,这意味着不需要显示器也能进行排错。

著名的SecuCRT和xshell都支持串口协议,但它们都是for windows的,而*nix下流行的串口工具有minicom和kermit,经过测试,最后决定选用kermit。

原因是kermit对嵌入式的boot loader支持较好,具体表现为:

  • kermit对键盘响应正常;

  • 窗口可最大化;

  • 可随时detach和attach。

minicom在连接openwrt时,键盘无响应,窗口无法最大化,detach和attach比较麻烦。

安装

  • linux

    $ sudo apt-get update
    $ sudo apt-get install ckermit
  • openbsd

    pkg_add -r kermit

配置

  • linux

    ~/.kermrc
    set line /dev/ttyUSB0
    set speed 38400
    set carrier-watch off
    set handshake none
    set flow-control none
    robust
    set parity none
    set stop-bits 1
    set file type bin
    set file name lit
    set rec pack 1000
    set send pack 1000
    set window 5
    c
  • openbsd

    ~/.kermrc
    vim ~/.kermrc
    set line /dev/tty00
    set speed 115200
    set carrier-watch off
    set handshake none
    set flow-control none
    robust
    set parity none
    set stop-bits 1
    set file type bin
    set file name lit
    set rec pack 1000
    set send pack 1000
    set window 5
    c
现在的笔记本为了降低厚度,均取消com口,因而需通过usb转com转接线(简称PL2302转接线)[1]+null modem才能连接到服务器的串口。

在linux下查看PL2302转接线是否可正常被识别:

$ sudo lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port (1)
Bus 005 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
1 说明转接线PL2303已被识别。

这时在terminal中输入kermit,然后kbd:[enter]即可连接到linux/openwrt的串口。

附录

linux/openbsd服务器均需要配置串口,才能被访问,下面是centos5的serial console配置:

/boot/grub/grub.conf
default=0
timeout=5
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=8 serial console

hiddenmenu
title CentOS (2.6.18-308.16.1.el5xen)
        root (hd0,0)
        kernel /boot/xen.gz-3.4.4 dom0_mem=512M console=com1 com1=115200,8n1
        module /boot/vmlinuz-2.6.18-308.16.1.el5xen ro root=/dev/md0 console=ttyS0,115200n8
        module /boot/initrd-2.6.18-308.16.1.el5xen.img
title CentOS (2.6.18-308.13.1.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-308.13.1.el5 ro root=/dev/md0 console=tty1 console=ttyS0,115200
        initrd /boot/initrd-2.6.18-308.13.1.el5.img
title CentOS (2.6.18-238.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-238.el5 ro root=/dev/md0 console=tty1 console=ttyS0,115200
        initrd /boot/initrd-2.6.18-238.el5.img

openbsd的serial console详见官方文档。

勿在tmux下使用kermit去连接另外一个*nix系统,否则会出现乱码。

1. 转接线的芯片大多为PL2302