当我运行命令"dmesg|grep-tty"时,它只显示从0到3的4个ttyS设备。我使用了#MAKADEV和makenode命令,它们创建了ttyS。。。/dev/文件夹中的文件。所以现在,我不能使用它们,因为它们的属性(如MMIO地址)没有设置。我听说过"setserial"命令,但我看不出它设置串行设备MMIO地址。那么我有办法做到这一点吗?
这很关键,因为我的电脑有8个串行端口,我想全部使用它们。在我的Linux中,我只能使用其中的4个。。
如果您的系统使用驱动程序8250来处理串行端口,请检查内核配置文件中的CONFIG_SERIAL_8250_NR_UARTS
参数。这定义了内核将处理的最大串行端口数。
来自Kconfig的驱动程序:
配置序列号_8250_NR_UARTSint"8250/16550串行端口的最大数量"取决于SERIAL_8250默认值"4"帮助将其设置为驱动程序所需的串行端口数支持。这包括通过ACPI或PCI枚举和运行时可能添加的任何端口通过热插拔或任何ISA多端口串行卡。配置序列号_8250_RUNTIME_UARTSint"运行时要注册的8250/16550串行端口数"取决于SERIAL_8250范围0串行_8250_NR_UARTS默认值"4"帮助将其设置为所需的最大串行端口数启动时要注册的内核。这可以被覆盖带有模块参数"nr_uarts"或引导时间参数8250.nr_uarts
很可能,CONFIG_SERIAL_8250_NR_UARTS
的值在您的系统中仍然是4。如果是这样,您可以在内核配置中设置一个更大的值,并重新构建内核以使所有端口都可用。
注意,8250.nr_uarts
内核运行时参数只能设置0到CONFIG_SERIAL_8250_NR_UARTS
之间的端口数,因此在启动时设置它是不够的。