原创 linux 设置串口多用户卡

2011-6-14 21:24 1241 10 10 分类: MCU/ 嵌入式
设置串口多用户卡作者:Paul Liang
来自:Linux知识宝库
现载:
http://www.douzhe.com/linuxtips/955.html
地址:无名

操作系统:RedHat 6.1 

硬件:串口多用户卡 

   串口多用户卡一般都有跳线可供选择(阅读说明书)。

   我对一个八口的多用户卡的跳线设置为:

   IRQ=3

   I/O=0190,0198,01a0,01a8,01b0,01b8,01c0,01c8(十六进制)共八个 I/O端口 

   多用户卡的晶片类型:16550A /*不同的多用户卡的晶片类型可能不同*/ 

过程:由于涉及设置,以下的操作由root用户完成。

 

一.因为多用卡的中断是3,所以要删去ttyS1(COM1)和ttyS3(COM4)

1. #cd /dev 

2. #./MAKEDEV -d ttyS1 

3. #./MAKEDEV -d ttyS3

 

二.生成串口设备

1. #cd /dev 

2. #./MAKEDEV ttyS11 

3. #./MAKEDEV ttyS12 

4. #./MAKEDEV ttyS13 

5. #./MAKEDEV ttyS14 

6. #./MAKEDEV ttyS15 

7. #./MAKEDEV ttyS16 

8. #./MAKEDEV ttyS17 

9. #./MAKEDEV ttyS18 /*选择这样的串口设备是我的喜好,您可以选择ttyS[0..63]范围的串口设备*/ 

 

三.设置串口设备对应多用户卡的串口 

1. #/bin/setserial /dev/ttyS11 port 0x0190 irq 3 uart 16550A /*设置/dev/ttyS11i为对应多用户卡的 第一个串口,以下依此类推*/ /*如果没有setserial工具,就安装它.RH6.1的缺省安装就已有此工具了*/

2. #/bin/setserial /dev/ttyS12 port 0x0198 irq 3 uart 16550A 

3. #/bin/setserial /dev/ttyS13 port 0x01a0 irq 3 uart 16550A 

4. #/bin/setserial /dev/ttyS14 port 0x01a8 irq 3 uart 16550A 

5. #/bin/setserial /dev/ttyS15 port 0x01b0 irq 3 uart 16550A 

6. #/bin/setserial /dev/ttyS16 port 0x01b8 irq 3 uart 16550A 

7. #/bin/setserial /dev/ttyS17 port 0x01c0 irq 3 uart 16550A 

8. #/bin/setserial /dev/ttyS18 port 0x01c8 irq 3 uart 16550A 

 

四.编缉/etc/inittab文件 

1. 在文件/etc/inittab增多以下几行: 

  11:2345:respawn:/sbin/mingetty ttyS11 

  12:2345:respawn:/sbin/mingetty ttyS12 

  13:2345:respawn:/sbin/mingetty ttyS13 

  14:2345:respawn:/sbin/mingetty ttyS14 

  15:2345:respawn:/sbin/mingetty ttyS15 

  16:2345:respawn:/sbin/mingetty ttyS16 

  17:2345:respawn:/sbin/mingetty ttyS17 

  18:2345:respawn:/sbin/mingetty ttyS18 /*每行开头的号码(如11等)视您的机器设置而定*/ 

2. #init q /*使以上增加的几行生效*/ 

至此,已完成了串口多用户卡的设置。接上终端,就可见到盼望已久的login状态,爽吧!

  

另外,如果想每次一开完机就能使用串口卡,可以将第三步编缉成shell文件,放在/etc/rc.d/init.d下,然后在/etc/rc.d/rc3.d造个软连接,步骤如下: 

1. #cd /etc/rc.d/init.d

2. #vi ttyS //文件名随您选 

  增加第三步的几行: 

  /bin/setserial /dev/ttyS11 port 0x0190 irq 3 uart 16550A 

  /bin/setserial /dev/ttyS12 port 0x0198 irq 3 uart 16550A

  /bin/setserial /dev/ttyS13 port 0x01a0 irq 3 uart 16550A

  /bin/setserial /dev/ttyS14 port 0x01a8 irq 3 uart 16550A 

  /bin/setserial /dev/ttyS15 port 0x01b0 irq 3 uart 16550A 

  /bin/setserial /dev/ttyS16 port 0x01b8 irq 3 uart 16550A 

  /bin/setserial /dev/ttyS17 port 0x01c0 irq 3 uart 16550A 

  /bin/setserial /dev/ttyS18 port 0x01c8 irq 3 uart 16550A 

  存盘退出 

3. #chmod +x ttyS /*使ttyS可执行*/ 

4. #cd /etc/rc.d/rc3.d //这是进入字符状态多用户模式,如果一开机就进入 //XWindows模式,应选择路径/etc/rc.d/rc5.d 

5. #ln -s ../init.d/ttyS S99ttyS //您可以选另外一个连接文件名 //

以上是我的做法,当然,很多人将上面几行setserial内容增加在/etc/rc.d/rc.local //的尾部,就更简单了。 

 

如果你想知道你所用的终端是哪一个串口设备,可编缉/etc/rc.d/rc.local,在它的一行中 增加(l):

  1. #vi /etc/rc.d/rc.local 

  找到一行: echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue 

  增加(l),上面一行变成: 

  echo "Kernel $(uname -r) on $a $SMP$(uname -m) (l)" >> /etc/issue 

  那么,你就能在终端上见到象这样的login状态: 

  ...................... 

  .................... (ttyS11) 

  ............ login: 

最紧要的是你要知道串口多用户卡的晶片、中断和I/O。
 

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条