我正在尝试在ubuntu 12.04服务器版本启动期间配置我的UART端口,在启动过程中其他一些东西也在弄乱uart端口配置。
细节:
目标是在启动/etc/init/ttyS2.config中的getty之前使用upstart在引导期间将端口0x02e8 / 0x02ef重新配置为0x04e8 / 0x04ef。这是必需的,因为需要重新配置superIO芯片以实现正确的操作。可以使用用户空间程序通过简单的呼叫配置端口:./ sioca -q<< EOF<< logdev concom(简化语义)。
问题: 到目前为止,我只是将/etc/init/ttyS2.conf类似于:
来帮助实现我的目标start on stopped rc RUNLEVEL:[2345]
...
pre-start script
sleep 5;
*here is the user space sioca tool call to configure the super IO hardware (to set the correct IO port and interrupt (0x04** to IRQ 3, 0x03* to IRQ 4)
*here are my setserial commands to tell the kernel where to find each UART
end script
...
*here is the actual /sbin/getty ttyS2 start*
我希望有一些事情我可以开始,例如"开始在tty-device-added DEVNAME = ttyS2",但这似乎不起作用。以上示例也确实需要包含“睡眠5”,否则我的端口配置不正确(端口突然忙碌且无法配置,或端口仍设置为0x02e )。我不知道为什么我需要睡觉。
在启动过程中,我确实在syslog中看到了与pnp相关的日志记录,它告诉我端口设置为0x02e *。有人能解释一下这里发生了什么以及我如何可靠地配置这些端口?有些驱动程序是否同时执行某些初始化导致混乱的端口配置?
总结如下:
我希望我已经为我的问题收集了足够清晰的信息。感谢。