原创 Linux tips: allow more than 4 serial ports

2011-6-14 21:38 2522 10 7 分类: MCU/ 嵌入式

搞嵌入式的经常要和串口通讯打交道,在开发的时候有可能同时使用十几个串口,这个时候一个PCI多串口卡就好用了。

 

但是很多Linux发行版的8250驱动默认限制检测的最大串口数量为4,例如在Ubuntu 8.10有如下配置:

 

cat /boot/config-`uname -r` | grep 8250

 

 

C代码 复制代码
  1. CONFIG_SERIAL_8250=y   
  2. CONFIG_SERIAL_8250_ACCENT=m   
  3. CONFIG_SERIAL_8250_BOCA=m   
  4. CONFIG_SERIAL_8250_CONSOLE=y   
  5. CONFIG_SERIAL_8250_CS=m   
  6. # CONFIG_SERIAL_8250_DETECT_IRQ is not set   
  7. CONFIG_SERIAL_8250_EXAR_ST16C554=m   
  8. CONFIG_SERIAL_8250_EXTENDED=y   
  9. CONFIG_SERIAL_8250_FOURPORT=m   
  10. CONFIG_SERIAL_8250_HUB6=m   
  11. CONFIG_SERIAL_8250_MANY_PORTS=y   
  12. CONFIG_SERIAL_8250_MCA=m   
  13. CONFIG_SERIAL_8250_NR_UARTS=48   
  14. CONFIG_SERIAL_8250_PCI=y   
  15. CONFIG_SERIAL_8250_PNP=y   
  16. CONFIG_SERIAL_8250_RSA=y   
  17. CONFIG_SERIAL_8250_RUNTIME_UARTS=4   
  18. CONFIG_SERIAL_8250_SHARE_IRQ=y  
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_ACCENT=m
CONFIG_SERIAL_8250_BOCA=m
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CS=m
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_EXAR_ST16C554=m
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_FOURPORT=m
CONFIG_SERIAL_8250_HUB6=m
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MCA=m
CONFIG_SERIAL_8250_NR_UARTS=48
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_SHARE_IRQ=y
 

配置项RUNTIME_UARTS限制了这个数目:

C代码 复制代码
  1. CONFIG_SERIAL_8250_RUNTIME_UARTS=4  
CONFIG_SERIAL_8250_RUNTIME_UARTS=4

 

如果你安装了例如16个串口的串口卡来扩充机器的串口数目,那么只能得到4个。

 

重新配置内核并编译当然可以解决这个问题,但是更方便的方法是通过内核启动参数8250.nr_uarts=??来改变这个默认数字。(内核启动参数8250.nr_uart最终会被传入到8250模块。)

 

修改/boot/grub/menu.lst,在默认启动的项目中加入8250.nr_uarts=16即可。

 

-----------

Enjoy it.

http://rubynroll.javaeye.com/blog/327299

文章评论0条评论)

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