MTK openwrt SDK中修改串口控制台默认波特率

MTK openwrt SDK中修改串口控制台默认波特率

MT7621开发板上,由于uboot波特率为115200,而MTK openwrt SDK编译出来的firmwarelinux内核的波特率为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的话,就会被删除。所以上面的临时方法不是长久之计;可以通过打补丁的方法来解决这个问题。

1make  target/linux/clean V=99

进入Openwrt目录, make target/linux/clean V=99,将内核清理干净。

 

2make  target/linux/prepare V=99

make target/linux/prepare V=99,将内核应用所有patch并生成最新代码到build_dir目录下。

 

3cd  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

进入最新kernelsource code目录。

通过下面的命令我们知道,其他两个文件夹都指向linux-3.10.14-p112871,因此我们修改linux-3.10.14-p112871这个目录中内容就可以。
[test@localhost linux-ramips_mt7621]$ ll
总用量 4
lrwxrwxrwx  1 test test 21 5月  28 19:05 linux-3.10.14 -> linux-3.10.14-p112871
drwxrwxr-x 26 test test 4096 5月  28 19:06 linux-3.10.14-p112871
lrwxrwxrwx  1 test test 21 5月  28 19:05 linux-kernel -> 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/下。

 

 

6quilt  edit arch/mips/ralink/cmdline.c

 

编辑cmdline.c(操作方式类似VI),将波特率修改成你想要设置的。

 

 

7quilt  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

 

 

你可能感兴趣的:(openwrt,ralink,IOT)