目录

SuperWRT开发基础介绍

SuperWRT是一基于Linux的无线路由器系统。

在SuperWRT之前已经有好多的第三方路由器系统,其中OpenWRT、DD-WRT、Tomato、RouterOS较为著名。当然还有一些基于它们开发的,或其它的小众系统。

SuperWRT希望走和之前的系统略有不同的路线,主要是下面几点:

SuperWRT系统环境

定制版本uboot

SuperWRT为了保证更友好升级特性,及全面的用户体验,开发了定制版本的uboot,SuperWRT系统需要与该uboot配合使用。

定制版本的uboot主要提供了以下特殊功能:

uboot中功能的使用,请参考:uboot使用说明

设备硬件信息

SuperWRT通过SBI(SuperWRT Board Info)存储设备硬件信息。通过使用SBI,SuperWRT系统及定制的uboot,可以适配不同的设备。

目前SBI通过在线定制uboot的系统,与uboot一起打包下载。

当然,SuperWRT系统也支持将SBI信息绑定在系统中。但目前我们不建议使用该方式,主要是因为,这样SuperWRT系统的版本必须针对该设备进行特殊打包处理,不利于后面的长期维护。

SuperWRT系统分区结构

SuperWRT默认使用firmware分区作为系统分区,使用该分区时,可以将linux kernel及rootfs放在一个分区内,在kernel后以8字节对齐方式加入rootfs。

SuperWRT也支持单独的kernel分区和rootfs分区,在升级时,如果发现没有firmware分区,会自动将系统文件拆分到kernel及rootfs分区。

SuperWRT的启动过程

提示:这里主要针对SuperWRT系统特殊的地方进行说明。

首先,通过芯片会运行定制版本的uboot。uboot会进行如下工作:

然后,启动时linux kernel会进行如下工作: