linux 添加最大串口数量方法

很多 linux 安装好后只有可以看到 4 个或 8 个串口,比如:OS 默认串口数量Red hat 9.0 4Ubuntu 9.10/10.4 4SUSE 11 8如 SUSE11 可以看到,8 个串口

工具/原料

  • SUSE11;fedora;ubruntu

  • ubruntu12.04

方法/步骤

  1. 有些主板串口的数量超过默认数量时(比如 AIMB-562 有 10 个串口) ,就需要手动添加串口,方法如下:在/boot 下找到 menu.lst 文件,然后在 8250 后面添加 nr_uarts=18,即添加 18 个串口,如下图:

  2. 重启之后就可以看到添加的串口了,配置后就可以正常使用了。常用的配置命令有:修改/etc/init.d/boot.local 文件,添加:setserial /dev/ttyS6 uart 16550a port 0x300 irq 7 baud_base 115200setserial /dev/ttyS7 uart 16550a port 0x308 irq 7 baud_base 115200

    setserial /dev/ttyS8 uart 16550a port 0x310 irq 7 baud_base 115200setserial /dev/ttyS9 uart 16550a port 0x318 irq 7 baud_base 115200setserial /dev/ttyS10 uart 16550a port 0x320 irq 7 baud_base 115200setserial /dev/ttyS11 uart 16550a port 0x328 irq 7 baud_base 115200setserial /dev/ttyS12 uart 16550a port 0x330 irq 7 baud_base 115200setserial /dev/ttyS13 uart 16550a port 0x338 irq 7 baud_base 115200setserial /dev/ttyS14 uart 16550a port 0x340 irq 7 baud_base 115200setserial /dev/ttyS15 uart 16550a port 0x348 irq 7 baud_base 115200setserial /dev/ttyS16 uart 16550a port 0x350 irq 7 baud_base 115200setserial /dev/ttyS17 uart 16550a port 0x358 irq 7 baud_base 115200

    重启后生效。

    但 nr_uarts=18 这个参数也是有限制的,这是由内核决定的,而这个内核也是可以修改的。修改方法如下:添加串口的如下; (本例是添加 32 个串口)1.进下以下目录:cd /usr/src/linux-2.6.27.19-52.运行:linux-d89z:/usr/src/linux-2.6.27.19-5 # make menuconfig3.出现内核修改:依次进入如下目录:Device Drivers à Character devices à Serial drivers à [X] Maximum number of 8250/16550 serial portsè [Y] Number of 8250/16550 serial ports to register atruntimeX 的意义:内核支持的最大串口数量;Y 的意义:开机进入 OS 时注册串口的数量。

    这个是支持的最大串口数量;原来是 16,现在改为 32,这个是系统安装好后默认开的串口数量,默认为 8,现在改为 18 即可实现 18 个串口。然后,选择 退出界面。回到终端,执行:Number of 8250/16550 serial ports to register at runtimemake bzImage这个过程会比较久,大概30分钟~2小时。完成后再继续下面命令:

    完成后,重启,再用 setserial –g /dev/ttyS*,或 ls /dev/ttyS*,可以看到已经有 32 个串口了。如下图:

  3. 在 Ubuntu 10.04 下最大串口数是 48,当前系统默认数量是 4,所以只要传递当肖数量值就可以了。

    操作如下:1. 修改 grub.cfg 配置文件。2. Sudo gedit /etc/default/grubDefault 檔案內容如下:

    # If you change this file, run 'update-grub' afterwards to update# /boot/grub/grub.cfg.GRUB_DEFAULT=0GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=10GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`GRUB_CMDLINE_LINUX_DEFAULT= quiet splash3. 在最后一行加入 Parameter 8250.nr_uarts=8GRUB_CMDLINE_LINUX_DEFAULT= quiet splash 8250.nr_uarts=8

你可能感兴趣的:(嵌入式Linux相关知识汇总)