在嵌入式开发中,我们都是使用串口进行调试定位问题。然而在成品调试或者远程调试时,没有串口,只能telnet进去,少了很多应用进程的打印,这样就不利于我们发现问题。需要一种方法把串口所有输出重定向到telnet。
这就涉及到一些终端概念,可以参考博文linux下tty, ttyn, pts, pty, ttySn, console理解。主要是利用tty的ioctl重定向方法来实现重定向,下面直接贴代码:
/************************************************************
FileName: console_redirect.c
Description: console输出重定向
************************************************************/
/*
内核的打印不能重定向过来,应用层打印可以重定向打印过来
查看内核的打印,cat /proc/kmsg,在输出完缓冲区内容后,会阻塞卡住,内核有新的输出时会继续输出。
如果要把内核打印到telnet,那么需要修改printk.c。
kernel和user空间下都有一个console,关