设置嵌入式Linux串口控制台的波特率
目标
嵌入式Linux系统,一般串口的波特率设置为115200,这里尝试将默认波特率调整为 921600。
有3个地方需要修改, uboot、kernal和登录后的tty。
主机
系统:Manjaro Linux 21.2.6 (Qonos)
编译器:gcc (GCC) 12.1.0
编译工具: GNU Make 4.3
国科7205V200 SDK: GKIPCLinuxV100R001C00SPC030
工具链: arm-gcc6.3-linux-uclibceabi-gcc (GCC) 6.3.0
目标机
系统: GK7205v200 嵌入式 Linux 系统
连接
目标机和主机通过(或USB转)串口线连接在一起
修改代码
这里假设国科7205V200 SDK 解压缩到目录 SDKRoot 。
- 修改 uboot 串口速率。修改文件 SDKRoot/source/bootloader/u-boot/include/configs/gk7205v200.h
Line48
改为#define CONFIG_BAUDRATE 115200
#define CONFIG_BAUDRATE 921600
- 设置用户登录控制台的串口速率。修改文件 SDKRoot/source/rootfs/scripts/rootfs.tgz
更新压缩包里面的这个文件 - rootfs/etc/initab,改为:
Line 77::respawn:/sbin/getty -L ttyS000 921600 vt100 -n root -I "Auto login as root ..."
- 编译 Linux 内核
- 设置 Kernal 的串口速率。当刷新Linux的时候,设置运行环境:
setenv bootargs 'mem=32M console=ttyAMA0,921600 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=sfc:1024K(boot),5120K(kernel),26624K(rootfs)'; setenv bootcmd 'sf probe 0;sf read 0x41000000 0x100000 0x500000;bootm 0x41000000'; saveenv && reset
至此,整个 Linux 的引导输出全部调整为 921600bps 。
2022年6月7日