搞嵌入式的经常要和串口通讯打交道,在开发的时候有可能同时使用十几个串口,这个时候一个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.
文章评论(0条评论)
登录后参与讨论