1. 开发板默认的串口输出是 ttyS0, 可以从bootargs看出
Starting kernel ... [ 0.000000] Linux version 3.14.77 (sprint@dell) (gcc version 5.2.0 (HOS GCC 5.2.0 unknown) ) #4 Mon Aug 13 17:54:40 CST 2018 [ 0.000000] arg 1: bootargs=console=ttyS0,115200 [ 0.000000] arg 2: root=31:02 [ 0.000000] arg 3: rootfstype=jffs2 [ 0.000000] arg 4: init=/sbin/init [ 0.000000] arg 5: mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib) [ 0.000000] arg 6: ramdisk_size=128M [ 0.000000] arg 7: mem=126M [ 0.000000] bootconsole [early0] enabled
尝试去修改bootloader的传递参数 boot args,修改方法为:
setenv bootargs "bootargs=console=ttyUSB0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib)"
结果: kernel的启动log显示已经修改为 ttyUSB0了,可是实际上还是使用的串口ttyS0进行的输出
Starting kernel ... [ 0.000000] Linux version 3.14.77 (sprint@dell) (gcc version 5.2.0 (HOS GCC 5.2.0 unknown) ) #4 Mon Aug 13 17:54:40 CST 2018 [ 0.000000] arg 1: console=ttyUSB0,115200 [ 0.000000] arg 2: root=31:02 [ 0.000000] arg 3: rootfstype=jffs2 [ 0.000000] arg 4: init=/sbin/init [ 0.000000] arg 5: mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib) [ 0.000000] arg 6: ramdisk_size=128M [ 0.000000] arg 7: mem=126M [ 0.000000] bootconsole [early0] enabled
2. 修改/etc/inittab文件,在里边将 ttyS0修改为 ttyUSB0:
root@AP-54:F0:~# cat /etc/inittab ::sysinit:/etc/init.d/rcS S boot ::sysinitc:/etc/init.d/rcS S boot ::sysinito:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K shutdown ttyS0::respawn:/sbin/getty -L ttyUSB0 115200 vt100
修改后,执行reboot,前半段的log是由ttyS0输出,后半段的log是由ttyUSB0输出的,估计是 inittab脚本执行后就将串口重定向到了ttyUSB0了。
至此,问题基本解决