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