Linux tips: allow more than 4 serial ports

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

 

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

 

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

 

 

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限制了这个数目:

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.

 

 

 

你可能感兴趣的:(linux,ubuntu,嵌入式)