香蕉派,修改 uboot 和 kernel 串口波特率 |
您所在的位置:网站首页 › linux设置串口波特率命令是什么 › 香蕉派,修改 uboot 和 kernel 串口波特率 |
环境
硬件:bananapi m1 软件:buildroot(uboot-2018.07 + linux-4.18.12) 编译 $ make bananapi_m1_defconfig $ make编译好后,SD 卡烧录镜像 sdcard.img,插入 BPI 启动,默认情况下 uboot 和 kernel 的串口波特率为 115200。我们把串口工具调到 115200,8n1,就可以看到系统启动时的 log 了,包括 uboot 和 kernel 的 log 打印。 修改波特率如何修改波特率呢?同样也是分为两块,uboot 和 kernel。 先看 uboot,使用 make uboot-menuconfig 命令 接着修改 kernel 的串口波特率。不同的板子,不同的镜像,修改的位置是不一样的,我知道的有两种 1. 修改 dts这里我看到编译好的镜像使用的是 sun7i-a20-bananapi.dtb 这个文件,于是就去修改 output/build/linux-4.18.12/arch/arm/boot/dts/sun7i-a20-bananapi.dts chosen { // stdout-path = "serial0:115200n8"; stdout-path = "serial0:57600n8"; };重新编译 kernel,再完整编译生成 sdcard.img,重新烧录,串口工具波特率改成 57600,启动 仔细看了 uboot 的启动 log,没看到加载 sun7i-a20-bananapi.dtb 的打印,却看到了这一句 Found U-Boot script /boot.scr 这句是干嘛的呢?查资料知道,boot.scr 是通过 boot.cmd 编译生成的。 board/bananapi/bananapi-m1/boot.cmd setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait mmc dev 0 fatload mmc 0 $kernel_addr_r zImage fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi.dtb bootz $kernel_addr_r - $fdt_addr_r看到 boot.cmd 的内容瞬间就找到了答案,波特率是在这里通过启动参数的形式由 uboot 传递给 kernel 的。系统启动后,执行命令 cat /proc/cmdline 也能证实这一点 Welcome to Bananapi M1 buildroot login: root # cat /proc/cmdline console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait #console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait 这句就是 boot.scr 里面的内容。 下面我们来修改一下 boot.cmd setenv bootargs console=ttyS0,57600 earlyprintk root=/dev/mmcblk0p2 rootwait mmc dev 0 fatload mmc 0 $kernel_addr_r zImage fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi.dtb bootz $kernel_addr_r - $fdt_addr_r编译 $ mkimage -A arm -T script -O linux -d boot.cmd boot.scr我们可以不用重新编译并烧录整个镜像,只要单独编译并替换 boot.scr 这个文件就行了。替换后启动 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |