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
$ 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使用许多不同的配置来编译固件, 并且把他们放在不同的目录中.
编译不同用途的固件的不同配置:
环境: 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'