MTK openwrt SDK中修改串口控制台默认波特率
在MT7621开发板上,由于uboot波特率为115200,而MTK openwrt SDK编译出来的firmware中linux内核的波特率为57600; 通过openwrt常规的方法:修改“target\linux\ramips\dts\MT7621.dts”中的如下行,无法解决
chosen {
bootargs= "console=ttyS1,115200";
};
后来通过如下链接中这位仁兄的给出的方法解决了,非常感谢:
https://blog.csdn.net/yihui8/article/details/53489337
MTK路由器原本的SDK中,rt5350 mt7620 7688 7621等串口控制台不能修改默认波特率问题,是由于linux-2.6.36.x(具体目录自己搜一下)\arch\mips\ralink\cmdline.c里面写死了默认启动命令行
linux-2.6.36.x ---- 对于MTK提供的openwrt SDK中,这个目录可能是 build_dir\target-mipsel_24kec+dsp_uClibc-0.9.33.2\linux-ramips_mt7621\linux-3.10.14-p112871; 具体需要看你的SDK,或者用find命令来找cmdline.c这个文件。
#if defined(CONFIG_RT2880_ROOTFS_IN_FLASH)
#ifdef CONFIG_SYSFS
char rt2880_cmdline[]="console=ttyS1,57600n8 root=/dev/mtdblock5";
#else
char rt2880_cmdline[]="console=ttyS1,57600n8 root=1f05";
#endif
#elif defined (CONFIG_RT2880_ROOTFS_IN_RAM)
char rt2880_cmdline[]="console=ttyS1,57600n8root=/dev/ram0";
#else
#error "RT2880 Root File System not defined"
#endif
改为:
#elif defined (CONFIG_RT2880_ROOTFS_IN_RAM)
char rt2880_cmdline[]="console=ttyS1,115200n8 root=/dev/ram0";
#else
#error "RT2880 Root File System not defined"
#endif
就可以了。
二)通过打补丁解决
在openwrt上,build_dir目录的内容,如果make clean的话,就会被删除。所以上面的临时方法不是长久之计;可以通过打补丁的方法来解决这个问题。
1)make target/linux/clean V=99
进入Openwrt目录, make target/linux/clean V=99,将内核清理干净。
2)make target/linux/prepare V=99
make target/linux/prepare V=99,将内核应用所有patch并生成最新代码到build_dir目录下。
3)cd build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/linux-3.10.14-p112871
cd build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/linux-3.10.14-p112871
4)quilt top 找到得到当前最后一条patch文件;一方便我们设置新的patch
patches/platform/0307-to-115775-nand-error.patch
5)quilt newplatform/0308-test-mt7621-cmdline-bitrate-115200.patch
新建0308-test-mt7621-cmdline-bitrate-115200.patch ,并指定保存目录到patches/platform/下。
6)quilt edit arch/mips/ralink/cmdline.c
编辑cmdline.c(操作方式类似VI),将波特率修改成你想要设置的。
7)quilt refresh
保存patch。
8) 返回到openwrt根目录
make target/linux/update V=99
进入Openwrt目录, make target/linux/update V=99,将patch应用,此时会生成新patch,到target/linux/ramips/patches/下查看。
ll target/linux/ramips/patches/
总用量 32
-rw-r--r-- 1 test test 4867 5月 28 10:00 0201-firmware-size.patch
-rw-r--r-- 1 test test 529 5月 28 10:00 0301-ramips-profile.patch
-rw-r--r-- 1 test test 890 5月 28 10:00 0302-rt-timer.patch
-rw-r--r-- 1 test test 1183 5月 28 10:00 0305-sdk4.3.0.5_20141205_MT7621_HW_NAT.patch
-rw-r--r-- 1 test test 413 5月 28 10:000306-sdk4.3.0.10_20150209_6RD_issue.patch
-rw-r--r-- 1 test test 3356 5月 28 10:00 0307-to-115775-nand-error.patch
-rw-rw-r-- 1 test test 825 5月 28 10:170308-test-mt7621-cmdline-bitrate-115200.patch