Akagi201
9/7/2014 - 1:12 PM

carrierwrt.md

Specs

  • carrierwrt: OpenWrt for Carriers and OEMs, an openwrt overlay for commercial product development.

  • carrierwrt是一个build system overlay on top of OpenWrt.

  • CarrierWrt最初的目标是简化使用OpenWrt开发商业产品.

  • carrierwrt 是一个 openwrt overlay 简化了像Wi-Fi路由器和家用网关, 通过关注对于OEM和他们的用户重要的方面.

  • 稳定的发布分支(stable release branches): 使用最小的补丁修复bug, 而不是更新到最新快照. 确保每个发布分支保持稳定.

  • 完整的固件: 被设计成立即可用(out of the box)并且质量有保证. If OpenWrt is the bazar, then CarrierWrt is the cathedral built on top.

  • 商业选择: 预安装了一些优秀企业的商业软件.

  • 一切版本化(versioned everything): 使用OpenWrt, 开发者需要使用"make menuconfig"来配置编译系统. 这个步骤对于大的开发团队是不合适的. 在CarrierWrt所有的配置在由版本控制的文件中. 如果你切出一个分支(check out a tag), 然后编译, 每次你会得到相同的固件.

  • 已经提供了基础功能(basic infrastructure already in place): 恢复出厂默认设置, reset按键, 默认启用Wi-Fi, 背面标签上注明WPA密码等等.

  • 容易使用: OpenWrt的failsafe模式http://wiki.openwrt.org/doc/howto/generic.failsafe可能并不那么fail safe.

  • 更多功能: CarrierWrt集成了一些立即可用的(out of the box)有趣的功能, 像 Anyfi.net - The OpenWrt Wi-Fi Mobility Platformhttp://anyfi.net/. 敬请期待.

  • 收费闭源的软件通常不被开源软件仓库接受, 然后设备厂商通常需要增加一些浮华的装饰(bells and whistles)来区分它们的产品. CarrierWrt被设计来使它容易集成收费软件(proprietary software), 甚至一些对于客户必要的功能已经预安装.

  • 依赖的组件: git, svn, gcc, binutils, patch, bzip2, flex, make, gettext, pkg-config, unzip, libz-dev, libncurses-dev, gawk and libc headers

  • 命令: sudo aptitude install -y git subversion gcc binutils patch bzip2 flex make gettext pkg-config unzip libz-dev libncurses-dev gawk gcc-multilib

  • 预编译固件: http://carrierwrt.org/#download

  • 源码: https://github.com/carrierwrt/carrierwrt

编译方法

$ git clone https://github.com/carrierwrt/carrierwrt.git
$ cd carrierwrt && make
  • 基础的编译配置在config.mk中, 功能性和默认设置通过我们叫做"product profiles"来控制, 在 products/*.mk中. 每一种product profile编译出它自己的固件集合(own set of firmware images).

  • pull request 方法: https://github.com/carrierwrt/carrierwrt/pull/1

  • 编译得到固件的位置: CarrierWrt固件的名称和OpenWrt对应物(counterparts)的名称完全相同, 唯一的不同是CarrierWrt使用许多不同的配置来编译固件, 并且把他们放在不同的目录中.

  • 编译不同用途的固件的不同配置:

  1. access point: 一个典型的接入点(access point)配置. Wi-Fi和LAN桥接到WAN.
  2. residential gateway: 典型的家用网关. 基于Wi-Fi MAC的SSID和随机WPA密码.
  3. Wi-Fi router: 很像OpenWrt, 但是带有默认出厂配置, reset按钮等.
  4. network appliance: 一个用于打包处理的基础框架系统(bare bones system), 带有VMware和VirtualBox镜像.

编译成功(实测)

  • 环境: vagrant box http://basebox.libera.cc/

  • 软件: sudo aptitude install -y git subversion gcc g++ binutils patch bzip2 flex make gettext pkg-config unzip libz-dev libncurses-dev gawk gcc-multilib

  • 成功编译结果

md5sum  firmware/router//untested/openwrt-ar71xx-generic-zcn-1523h-5-16-squashfs
-factory.img >  firmware/router//untested/openwrt-ar71xx-generic-zcn-1523h-5-16-
squashfs-factory.img.md5
cp  openwrt/bin/ar71xx/openwrt-ar71xx-generic-zcn-1523h-5-16-squashfs-sysupgrade
.bin  firmware/router//untested/openwrt-ar71xx-generic-zcn-1523h-5-16-squashfs-s
ysupgrade.bin
md5sum  firmware/router//untested/openwrt-ar71xx-generic-zcn-1523h-5-16-squashfs
-sysupgrade.bin >  firmware/router//untested/openwrt-ar71xx-generic-zcn-1523h-5-
16-squashfs-sysupgrade.bin.md5
make[4]: Leaving directory `/home/vagrant/carrierwrt'
true
make[3]: Leaving directory `/home/vagrant/carrierwrt'
make[2]: Leaving directory `/home/vagrant/carrierwrt'
make[1]: Leaving directory `/home/vagrant/carrierwrt'
make _info
make[1]: Entering directory `/home/vagrant/carrierwrt'
===============================================================
 BUILD:          release
 PRODUCTS:       ap appliance rgw router
 TARGET:         (all)
 CUSTOMIZATION:  (all)
 Firmware images are in /home/vagrant/carrierwrt/firmware/
===============================================================
make[1]: Leaving directory `/home/vagrant/carrierwrt'

Anyfi

easycwmp