broadcom在openwrt上的网络配置

2440阅读 0评论2014-12-07 polejo
分类:LINUX

  记录下在broadcom + openwrt平台的网络配置。目前只限于有线连接。 

1. nvram     

    nvram是某些芯片(一般就是broadcom和cavium)要求的一段重要配置的集合,类似于uboot的env吧。这里面包括了硬件版本信息、gpio、switch配置、vlan划分、lan/wan、ip/mac、wifi参数等。 
每次编译出cfe镜像后,必须要打包nvram_file 
./nvserial -i cfez.bin -o uboot.bin -s 001 nvramfile.txt 
           这些作为一个初始设置固化在cfe.bin的0x400~0x1400区间, 魔术字FLSH识别header,除非重新制作升级cfe否则这段初始nvram配置是不会变化的,可把它当作是出厂恢复备份。cfe启动过程中,读取 0x400~0x1400这段空间,转存到flash芯片的最后一个64K空间(通常给它划分成独立的nvram分区)内,同样是”FLSH”的 header,这段空间可以通过nvram工具来get、set、erase、commit。 
          下次启动时,首先读取nvrma分区的参数,若完整则用这个参数来配置系统,否则就要重新从cfe的镜像中重新读出原始值转存到nvram分区。

2. switch

   53xx的内置switch有port0~5,外加7,共7个port(不过port7实测没有效果,也给不出更多的解释),有效的实际只有0~5。而且 port5是固定作为cpu与switch的连接口的,所以cpu只能有一个eth控制器来连接switch了(eth0),lan/wan都是通过这个 上到cpu内部的,而面板lan/wan划分只能作用于0~4这5个port。
    例: 
要划分port0/1为wan,vlanid 2;port2/3/4为lan,vlanid 1。nvram的switch配置如下,

vlan1ports=1 2 3 4 5*

vlan1hwname=et0

landevs=vlan1 wl0 wl1

vlan2ports=0 5t      /* wan上行报文带tag,故wandevs = vlan2 */

vlan2hwname=et0

wandevs=vlan2

 

3. uci

   现在openwrt的trunk版本对broadcom的nvram支持看来不是很好,修改uci只能建立起上层的虚接口ethx.x,并不能作用到switch的硬件配置,这应该跟broadcom驱动不开源有关。故必须把nvram中对switch配置的修改同步到uci的network中,config switch_vlan ports option做一致修改。 
    

config switch_vlan 'eth0_1' 
    option device 'eth0' 
    option vlan '1' 
    option ports '1 2 3 4 5*' 
 
config switch_vlan 'eth0_2' 
    option device 'eth0' 
    option vlan '2' 
    option ports '0 5t' 

 
          最理想的结果当然是用户只需要改写文件系统里的/etc/config/network文件,重启一下网络就可以把53xx switch配置好,甚至把修改同步到nvram分区。Long way to go.


上一篇:linux下svn 批量上传
下一篇:iptables基础知识