在uboot中增加PPPoE支持

经过了一段时间的开发,终于在uboot中支持PPPoE了。

传统的uboot中是不支持PPPoE的,那为什么SuperWRT在uboot中增加PPPoE支持呢?主要是为了解决uboot的连接广域网问题。可以通过uboot进行WAN的多种方式连接(静态地址、DHCP、PPPoE),从而实现在uboot中自动恢复有错误的系统,实现真正的设备自愈。即实现uboot可以自动恢复设备Firmware。

我们知道,现在很多网络设备可以进行集中管理,需要进行远程的版本维护。或者,有些设备在用户确认后,自动下载版本,而无需用户手动上传。这些升级方式都会存在一个问题,就是如果升级失败了怎么办?这种失败可能会有很多原因:升级过程中设备断电,未测试到的Bug,甚至硬件问题引起的。即使仅有万分之一的概率,对用户来说,也是不可以接受的。目前解决这个问题比较常见的一种方式是,使用双Firmware系统,一个系统启动失败后,自动切换到另一个,但这种方式的代价就是成本比较高,因为双Firmware更占存储空间。

SuperWRT需要保证用户的设备使用的稳定性和可靠性,同时又尽量不对硬件有过高要求,或增加成本。所以,我们选择了在uboot中增加广域网连接功能。这样,在系统升级失败后,uboot会检测到系统不完整,然后,自动使用设备中的广域网配置,去服务器上载版本并升级。

当然,DHCP及静态地址方式也是支持的。

SuperWRT的开发目标说明

SuperWRT的第二个版本发布了,本次主要带来的是自助适配设备功能。该功能算是围绕SuperWRT开发目标的一个核心功能了。所以。这里介绍一下Terra开始SuperWRT中的一些思考逻辑。

SuperWRT的开发目标就是做一个更稳定的Wi-Fi路由器系统。所以,SuperWRT不追求眼花缭乱的功能,因为功能多了难免Bug也多,SuperWRT只会开发作为Wi-Fi路由器常需要的功能。当然,SuperWRT的功能也并不是只局限于以前看到最普通的家用路由功能,我们还会增加一些我们认为重要的功能。比如:更强大的限速功能,我们认为对用户来说很重要。

SuperWRT的另一个开发逻辑是,我们认为需要稳定路由器的用户,是拿路由器来用的,而不是整天折腾的。路由器作为一个上网设备,就是保证有其它设备可以有流畅的上网体验的,最好不要烦扰用户,甚至能让用户忘了它的存在。所以,我们配置力求简单。比如:限速时可以使用的智能流量整形功能,其实我们在里面做了很多逻辑,对于不同的场景来保证QoS的策略最优,而且用适应多WAN队列人情况,但用户只要打开就好了,用户烦扰每个具体项是做什么的。我们也不会强制用户必须装什么软件才能控制设备。

同样是上面的逻辑。我们开发配套uboot的WEB方式只支持上传固件,而不支持上传ART什么的。因为我们认为,需要开发人都可以接串口,开发人将设备适配好使,对于需要刷机的用户来说,你只要拿固件来刷就好了。每个设备的ART信息是针对该设备射频的,使用其它设备的ART可能你看信号强度高了,但信号质量不一定好。同样,不重复的原机MAC,可以用助于手机的室内定位。所以,我们鼓励用户使用原机的ART信息和MAC地址信息,开发的人将原厂的分区分析出来,然后做出的适配的uboot,这样刷机的人只要刷入这个uboot,系统启动后使用的ART信息和MAC地址就是对的。

SuperWRT另一个重点优化的是WLAN功能。Terra也开发过了好多年WLAN底层,对如何优化WLAN的体验有一些理解。我们认为目前大多数的设备在现有的硬件基础上,还是有一些优化空间的。这也将是SuperWRT的一个核心特点。所以,我们先开发Qualcomm Atheros芯片的设备,因为它们的芯片相对资料比较丰富,Radio和MAC的性能还不错。MTK Ralink的芯片需要优化还是相对多一些,而Boradcom的芯片做的真心不错,就是资料太少,所以,这些芯片都不会第一批支持。在没有优化到我们满意的程度时,是不会发布一个新的芯片的支持的。

当然目前SuperWRT还在开发测试阶段,也仅仅发布了两个测试版本,还有一些Bug导致不稳定。但我们会尽力解决这些问题,向着我们的开发目标不断前进。

SuperWRT第一个测试版本(支持WR886n)发布

SuperWRT的第一个测试版本在2015年12月4日发布了。测试版本目前仅在TP-Link WR886n 上进行测试,测试版本验证完成后,会陆续支持其它设备。

第一次发布的为Tiny版本,即支持2M Flash设备的版本。众所周知,目前第三方路由器系统(如OpenWRT、DD-WRT)由于体积原因,已无法支持2M Flash的设备,但TP-Link等厂家的很多数设备仍使用2M的Flash,导致大家无法直接刷机。SuperWRT的Tiny版本在系统上进行全面的瘦身,裁剪和重写了绝大部分功能,在2M Flash仍能提供比较常用的功能。测试版本稳定后,我们将会带来更多设备的支持。

当然使用Linux系统支持16M RAM的无线路由器仍有瓶颈,我们全力保证设备平时的正常工作。但打开网页时,由于使用了脚本,仍会有时突发造成系统内存不足,而触发watchdog重启设备。

Tiny版本的定位就是基础的上网设备,同时增加一些大家刷第三方系统(如OpenWRT)需要的功能。目前Tiny版本主要加强了以下功能:

  • 用户限速:支持用户默认限速,也可对指定MAC限速
  • PPPoE的叠加拨号:支持负载均衡(成功后会的状态页显示多个IP)
  • PPtP VPN:支持修改端口(但必须有公网IP,即未经过NAT)。
  • 响应式管理网页:可以更好的支持手机端管理。

同时,提供了相应bootloader,支持网页刷机,有DHCP服务器可以给电脑分配IP,还可以通过域名oplogin.com/oplogin.cn登陆。

在测试阶段,目前仅对TP-Link的WR886n进行了支持,以在一定范围内进行小规模试验。SuperWRT其实对AR934x/QCA955x/QCA953x/QCA956x芯片都是支持的。前期版本进行充分验证后,会释放其它设备的支持。对MTK系统芯片,短期内还不会支持,主要是由于针对MTK的Wi-Fi驱动还有很多优化工作要做。

第一个测试版本仍然是在Ath9k驱动的基础上进行的更改。SuperWRT专有的无线驱动s11还在测试及开发中,在后期测试可以后会在版本中使用。

欢迎大家参与测试,一起让SuperWRT更加完善。