我在可以配置为 DTE/DCE 的硬件上运行嵌入式 linux 内核。在名为 tty_io.c 的文件中的 tty/串行驱动程序中有一个函数 tty_tiocmset(),它从 tty_ioctl 中获取一个位模式,用于设置/清除特定的调制解调器控制信号。有趣的是,tty_tiocmset() 函数会屏蔽除 TIOCM_DTR|TIOCM_RTS|TIOCM_OUT1|TIOCM_OUT2|TIOCM_LOOP 之外的所有其他调制解调器信号(此屏蔽显示在下面的代码中)。但是,如果您查看文档,似乎应该能够设置/清除所有调制解调器信号http://www.kernel.org/doc/man-pages/online/pages/man4/tty_ioctl.4.html向下到“调制解调器控制”。
有没有人知道为什么这个掩码在没有其他信号(如 RI、CD、CTS、DSR)的情况下存在?还有另一种方法可以使用未经修改的驱动程序来控制其他调制解调器信号吗?