嵌入式linux,如何在按下按钮时切换串口的使用?
我是一名具有几年Linux管理经验的商业程序员。我从嵌入式Linux开始。昨天,我们正在讨论一种新的设备设计,有人问了我几个问题,我没有答案 工程师们想在电子板上安装一些带有串口的按钮。操作系统是Linux 通常,当用户连接到串行端口时,一个协议将应答他,而不是Linux登录提示。但是,如果他按下设备上的一系列按钮,Linux提示符将在串行端口上回答他 把Linux驱动程序处理按键中断的处理放在一边,怎么能把串口的基本使用切换成那样呢?有没有人有关于如何做这件事的URL参考?(最好带有一些示例代码) 注意:我建议为一个给定的用户提供一个很好的登录菜单,但是没有办法 谢谢你的建议 致以最良好的祝愿,嵌入式linux,如何在按下按钮时切换串口的使用?,linux,embedded,serial-port,Linux,Embedded,Serial Port,我是一名具有几年Linux管理经验的商业程序员。我从嵌入式Linux开始。昨天,我们正在讨论一种新的设备设计,有人问了我几个问题,我没有答案 工程师们想在电子板上安装一些带有串口的按钮。操作系统是Linux 通常,当用户连接到串行端口时,一个协议将应答他,而不是Linux登录提示。但是,如果他按下设备上的一系列按钮,Linux提示符将在串行端口上回答他 把Linux驱动程序处理按键中断的处理放在一边,怎么能把串口的基本使用切换成那样呢?有没有人有关于如何做这件事的URL参考?(最好带有一些示例代
Bert主要问题是,实现设备协议的过程可能会保持串行端口打开 在这种情况下,您可能应该:
*getty
进程-或嵌入式目标使用的任何程序在串行端口上显示登录提示pppd
)无法替代提供登录提示。它通常也不同于提供telnet/SSH/任何登录的过程
这就是说,在定制的嵌入式Linux系统上,一个进程可以做不止一件事。在这种情况下,您必须配置或修改该流程,以便在适当时切换操作模式
如果没有关于嵌入式目标的更多信息,就无法提供更具体的答案。getty过程通常在串行端口上启动,以通过
/sbin/init
提供登录提示,该过程在/etc/inittab
中配置
init
具有“运行级别”的概念。每个运行级别定义一组单独的进程,这些进程将保持运行。实现这一点的一种优雅方法是设计“协议”流程,使其由init
启动,方式与getty
相同。然后,您可以告诉init
在某些运行级别中运行您的进程,在其他运行级别中告诉getty
,并在运行级别之间使用按钮开关。例如,您的/etc/inittab
可能包括:
T0:2:respawn:/sbin/getty -L ttyS0 9600 vt100
P0:345:respawn:/sbin/protocol ttyS0 9600
这将在运行级别3、4和5中的第一个串行端口上运行
协议
命令;但是运行级别2中的getty。我明白了。请原谅我的无知,因此telnet或SSH linux登录提示符与串行端口提示符不受同一进程的控制?@quadmore:一般来说,不是。一个是getty
进程,另一个是网络服务器。您的协议过程可能是完全不同的