我刚刚在我的 Ubuntu 10.10 系统中安装了一个 2 端口串行适配器,然后我尝试按照我在旧系统上使用的教程连接到思科路由器(我的旧系统有一个板载串行适配器,并且该教程运行良好)。我无法让我的系统连接到思科路由器,所以我想知道该卡是否在 Ubuntu 中工作。我如何知道该卡是否真的适用于 Ubuntu?
#dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 0.358667] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.358994] 00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.359128] ttyS1: detected caps 00000700 should be 00000100
[ 0.359132] 0000:03:00.0: ttyS1 at MMIO 0xfeafd000 (irq = 16) is a 16C950/954
[ 0.359191] ttyS2: detected caps 00000700 should be 00000100
[ 0.359195] 0000:03:00.0: ttyS2 at MMIO 0xfeafd200 (irq = 16) is a 16C950/954
答案1
您的 Ubuntu 设置方式是正确的,/dev/ttyUSB0 上的串行端口是正确的串行端口。您可以通过向端口中输入一些数据来测试该端口,如果它没有返回错误,则它正在作为串行端口工作:
ls > /dev/ttyUSB0
现在,要让它工作,您可能必须找出正确的设置。或者您可能必须打开思科路由器上的串行端口通信(它并不总是打开的)。
如果需要,您可以使用它ttywatch
进行一些串行端口调试。但这可能超出了您的范围。
答案2
测试串行端口的最简单方法是将 Tx 环回到 Rx。如果您有环回插头,这很容易。如果没有,请将引脚 2 连接到引脚 3(db9 或 db25)。
然后使用终端程序(如)打开端口picocomm
。如果端口正常工作,您应该可以看到您输入的字符。如果没有,则端口不工作。您可能需要配置picocomm
以忽略 RTS/CTS 信号。
我发现 RS-232 内联信号测试器(一个小方块,每个信号都有 LED)很有用。它有助于发现信号线是否交叉。在低速时,您可以看到数据在 Tx 和 Rx 线上传输。如果线路交叉,您可能需要一根零调制解调器电缆。
我认为使用路由器附带的电缆很重要。如果我没记错的话,它的引脚连接顺序与 CAT-5 电缆的引脚连接顺序相反。
答案3
使用相同的设置,我发现我必须进行调整setserial baud_base
才能获得正确的波特率。
例如:
setserial /dev/ttyS1 baud_base 115200
setserial /dev/ttyS2 baud_base 115200
您可以将其粘贴/etc/rc.local例如。
使用另一张串行卡时,波特率基数为921600。
使用以下方法检查串行线路的串行状态:setserial -gav /dev/ttyS*
答案4
卡是通过 PCI 连接的吗?如果是,只需lspci
在终端中运行并查看它是否显示出来。