Lenovo R2100刷机以及编译pppd实现连接天翼宽带

前言:  在前一篇博文中,笔者实现了openwrt连接电信宽带的目标,这次决定对一款mini路由器进行修改,使其也能支持电信宽带。

 

一、设备介绍

1、硬件部分

深度截图20150706222408图1. 整体图

深度截图20150706222308图2. 电源部分 和 路由器部分

深度截图20150706222723图3. 拆机之后

配置是:RT5350的芯片mipserl架构; 16M RAM;  4M Flash

可以看到,这个路由器在除去电源部分之后的体积的确的相当地小,支持USB供电。
拆机很困难,只有四个卡扣,卡的很死,当时是抱着拆坏拉倒的心理拆的(因为我先刷了uboot,进不去rom,以为变砖了,然后拆的时候胆子就特别大)

(第三张图来自他人博客,地址在最后给出)

二、刷机固件

1.固件准备

下面的固件也来源于网络上某位大神,其博客地址在最后给出。
原版uboot:  uboot_lenovo_r2100_16m_wan.img.tar
原版固件:      Lenovo_R2100_V1.55.tar
ralink uboot:uboot_ralink_sdk3600_32m_all.img.tar
openwrt固件:rt5350_r2100_v1_full.tar

2.正式刷机

我的经历:

原版固件 --> web管理页面-固件升级 --> 刷ralink uboot --> uboot成功刷入,无法加载原有系统 --> 连TTL,进uboot,通过TFTP刷入openwrt固件 --> 完毕

1)连接TTL线,只要连接TX、RX两根针脚即可。线序什么的不知道,就两种情况,都试一下就知道了,反正不会弄坏板子的。

photo464027592806213564
图4. TTL连接线

因为笔者没什么焊接技术,也没有焊接设备,所以只能一切从简。。。⊙﹏⊙b汗   (上图中,红色为RX,接TTL转接器的TX针脚;蓝色为TX,接TTL的RX针脚;最左边那个被切割成一半的是GND,这个还是要接的。。。)

2)PC上运行screen连接串口,频率为57600。我这里使用的是USB-TTL设备。
$ sudo screen /dev/ttyUSB0 57600
然后就可以根据ralink的uboot提示进行操作了,选择2,通过TFTP刷写固件。

3)通过网线连接路由器和PC,PC端ip设为192.168.1.100,并运行tftp服务器,准备好要刷写的固件。
路由器端,进入uboot的第二个选项之后,首先输入设备ip:192.168.1.1,然后tftp服务器ip:192.168.1.100,最后输入固件名称,回车即可。

推荐刷机顺序(仅个人猜测,待证实):

原版固件 -> web管理页面-固件升级 -> 刷写openwrt固件

之所以推荐这样刷机,完全是因为笔者今天傻比地直接刷了uboot,然后不得不拆机连TTL,花了很大功夫才弄好

(2015/07/09更新)

再次实验证明,原版uboot固件即是ralink uboot sdk3600。

如果从原版固件的web升级页面直接刷写uboot,原系统会无法引导,只能通过tftp重新刷写固件。

另外,通过原版固件web升级页面直接刷openwrt会失败,初步认定为内存溢出。(实验发现,通过web上传过大的固件,提供web服务的Goahead程序会挂掉,导致无法刷机,同时web管理页面无法访问,但是路由器其他组件还在正常运行,重启即可)

所以目前易操作的简单刷机方案如下:

拆机,连接TTL --> 进入 uboot(已自带ralink sdk3600),选择第2个选项 --> 通过tftp刷openwrt

Ps:刷完之后会自动加载系统,你会发现系统运行出奇地卡。实验发现,在断开TTL转接器的情况下启动系统就OK了,原因不明。

三、交叉编译工具链的编译

 因为这次这个RT5350芯片没有在openwrt.org找到编译好的toolchain,所以只能自己编译工具链。

rt5350的架构是mipsel,或者说mips dsp,有什么区别我也不清楚。反正之前那个用于brcm63xx的mips工具链编译出来的程序在这个上面无法运行。

下面我使用了buildroot来生成工具链

1.下载buildroot

2.配置make选项

 这里我们只需要修改两个地方即可:

深度截图20150706230025图5. make menuconfig

然后保存,退出。

3.开始编译

4.将toolchain独立复制出来,添加path

5.开始编译ppp

6.将相应文件复制到路由器上

可以参考Linux下突破校园天翼宽带客户端限制(已移植OpenWRT)

这里其实遇到一个新问题,就是/root分区过小。即使删除旧的pppd,仍然塞不下新的pppd.
1) strip

然后发现还是不够。。。于是我机智地想到了upx!
2)upx

 OK, Done! 最后复制到路由器上,一次拨号成功!

四、tftp服务器配置

下面的方法适用于debian系的发行版

五、其他说明

1、其实这个路由器的官方原版固件也是一个linux,虽然被阉割地厉害,但是理论上还是可以手动替换pppd程序实现电信拨号。
以后再有这个设备时,可以尝试一下。如果成功了,那么又减少了刷机的步骤。但是这样看不到系统日志,也不是很好。

2、这次发现一个问题,实际上buildroot给我编译了一个完整的基于mipsel的Linux内核。。。所以花了很长时间以及硬盘空间。
我其实只想要一个可运行的toolchain,其他的对我来说都没有用,但是并没有深入了解buildroot的用法,下次再用到的时候再说吧。

六、参考资料

1、详细拆机以及刷机记录:号称最小的路由器:联想 R2100

2、buildroot官方文档:buildroot文档

《Lenovo R2100刷机以及编译pppd实现连接天翼宽带》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注