在uboot中增加PPPoE支持

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

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

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

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

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