我正在开发嵌入式Linux系统(5.19.10),并且使用busybox作为文件系统的主要部分。
现在我尝试运行一个测试,该测试应将日志输出到串行端口 (ttyS0)。但我没有console
在内核命令行中进行配置。
如下/etc/inittab
,
# now run any rc scripts
::sysinit:/etc/init.d/rcS
# Put a getty on the serial port
#::respawn:/sbin/getty -L ttyS1 115200 vt100
#no login
::respawn:-/bin/sh
# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
null::shutdown:/etc/init.d/rcK
null::shutdown:/bin/umount -a -r
null::shutdown:/sbin/swapoff -a
我改变了/etc/profile
如下,
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"
stty -F /dev/ttyS0 speed 38400
setconsole /dev/ttyS0
echo "Hello world" > /dev/ttyS0
/home/test/test_app 2>&1 &
系统启动时,我可以Hello world
在串行端口中看到。但我看不到 shell 提示符或来自 的日志test_app
。
我认为在这种情况下系统控制台配置不正确。所以,我想知道是否有任何温和的方法可以在我自己的脚本(例如 /etc/init.d/rcS 或 /etc/profile)中设置系统控制台,而无需使用getty
或console=XXX
并使日志输出到串行预期控制台??
这是
> /dev/ttyS0
这里最重要的部分。你明确指示你的 shell 将echo
命令的输出重定向到串行端口。如果您希望您的 test_app 执行相同的操作,那么您也必须这样做
test_app > /dev/ttyS0
。setconsole
做一些不同的事情!