Cannot set serial info: Invalid argument


此错误,经过分析setserial源码与kernel 8250 driver,发现setserial通过ioctl(TIOCSSERIAL)将new_serial结构体(承载了

serial info)传入内核,内核8250驱动程序接到serial info后先get旧的serial info,再set新传入的serial info。


因此联想到使用setserial -a /dev/ttyS4时,get得到的串口信息中,baud_base为‘0’,而设置时也未指定此参数,因此驱动程序在设置新的serial info时会犯错,因为波特率不能为'0'。

因此重新执行配置命令: setserial /dev/ttyS4 port 0x300 irq 5 uart 16550 baud_base 115200,此结果设置成功。


原因就是少了一个参数:baud_base 115200