在嵌入式Linux上构建2个串口控制台

2019-07-12 15:58发布

当前的很多嵌入式系统很多使用2个串口来进行通讯,一个串口常常作为命令行串口,给用户使用。而另一个串口可以用来通信或者作为调试串口使用。     本文以两个串口在Linux下 一个作为调试串口,另一个作为用户命令行串口为例说明。首先,ttyS0作为调试串口,而ttyS1作为命令行串口使用。等系统启动后,命令行串口对用户是可见的,用户可以操作。而调试串口只给开发人员使用。     在系统启动时,传递给内核参数时,首先增加console=ttyS0 115200n81,至于还需要其他什么参数,就不多说了。这样,Linux系统会把ttyS0作为默认串口控制台使用。     接下来要修改/etc/inittab中的内容了,在该文件注释有#ttyS0::respawn地方增加2行,ttyS1::respawn:/sbin/getty -L ttyS1 115200 vt100,ttyS1::respawn:/sbin/yourprogramm -L ttyS1 115200 vt100,这样系统启动后会在登陆系统后在串口1ttyS1上直接运行用户的程序/sbin/yourprogramm。     如果不需要在串口1上使用Linux的login,则可以使用一个-n -l参数,即ttyS1::respawn:/sbin/getty -L ttyS1 115200 vt100 -n -l /sbin/yourprogramm即可,这样在启动系统后直接运行用户程序,而没有了busybox的login命令了,而串口0上还是有login命令的。
  运行级别设置错了,init 6是重新启动……,如果设置成6,系统会反复重启。进入单用户可以解决,首先,在GRUB时,用方向键选择你的Linux系统,按下键盘上的e,然后用方向键选择kernel那一行,在按下e,输入1(和前面的内容间用空格分开),然后回车,然后按b键,进入单用户后,修改/etc/inittab中启动级别为3或者5,重新启动即可   # 0 - 停机(千万不能把initdefault 设置为0 )  # 1 - 单用户模式  # 2 - 多用户,没有 NFS  # 3 - 完全多用户模式(标准的运行级)  # 4 - 没有用到  # 5 - X11 (xwindow)  # 6 - 重新启动 (千万不要把initdefault 设置为6 )