编译QMP 无线MESH网络

QMP(Quick Mesh Project)是一个可以方便部署MESH网络的开源系统。它提供基于Openwrt的固件,可以方便的应用与多种嵌入式设备。使用这个系统可以方便的 搭建MESH网络。它提出了一种无线社区模式,能快速的创建一个无线覆盖的区域,并提供高质量的网络服务。

下面是一个MESH Comunity Mode 的原理图:

QMP Community Mode

更难能可贵的是,QMP是一个开源软件,玩家可以做二次开发,并编译适合自己设备的固件。当然它也对市面上一些主流路由器提供了稳定的固件版本。 详细信息可以访问QMP的官方网站。

http://qmp.cat/Home

固件编译

1. 设置环境变量 在我们编译openwrt的时候,您的系统应该已经安装了编译所需的软件包,但是为了保险起见,可以把下面的软件包在安装一下。 基于Debian的系统,如ubuntu,需要安装下面的软件包:

 sudo aptitude install git subversion zlib1g-dev gawk flex unzip bzip2 gettext build-essential \
 libncurses5-dev libncursesw5-dev binutils cpp psmisc docbook-to-man

如果您的机器是x86_64系统,还需要下面的软件包:

Debin/Ubuntu:

 sudo aptitude install gcc-multilib

CentOS/Fedora/RHEL:

 gcc.i686, libgcc.i686, and glibc-devel.i686

2. 下载源码并编译 通过下面的命令下载源码

 git clone git://qmp.cat/qmpfw.git qmpfw

进入到源码目录:

 cd qmpfw

check out 特定的分支:

 make .checkout_qmp QMP_GIT_BRANCH=branch_name

制定Traget并编译,例如:

 make build T=alix

编译完成后,你可以在下面目录下找到相应设备的固件。

 qmpfw/images/

添加新设备支持

QMP作为一个开源项目,已经制作了很多稳定的固件针对流行的路由器,如果对于一些新的嵌入式设备,如何对它进行定制,编译特定的固件呢? 下面我们来介绍添加对新设备的支持。

1.下载源码

 git clone git://qmp.cat/qmpfw.git

2. 执行menuconfig来获取相应的source code并启动openwrt 的menuconfig。

 make T=NEW_DEVICE_NAME menuconfig

配置menuconfig中相应的选项,一定要使能 base/qmp-small-node 或者qmp-big-node。

3. 编译

 make T=NEW_DEVICE_NAME build

在这一步中,应该会遇到错误,提示信息可能是(when trying to copy the output binaries into images/ directory). 不用担心, 确定生成的二进制文件名字是: build/NEW_DEVICE_NAME/bin/*/, 然后修改targets.mk 文件,添加类似下面的新设备的编译条目。

 ifeq ($(T),nsm5)
  NAME:=NanoStation M5
  ARCH:=ar71xx
  IMAGE:=bin/$(ARCH)/openwrt-ar71xx-ubnt-nano-m-squashfs-factory.bin
  SYSUPGRADE:=bin/$(ARCH)/openwrt-ar71xx-ubnt-nano-m-squashfs-sysupgrade.bin
 endif

4. 重新编译

make T=NEW_DEVICE_NAME build

5. 如果能正确编译,复制临时的config文件

 cp -rf build/configs/NEW_DEVICE_NAME configs/

6. 生成patch文件

 git add configs/NEW_DEVICE_NAME
 git add targets.mk
 git commit -m 'Support for new device NEW_DEVICE_NAME'
 git diff > ../NEW_DEVICE_NAME.patch

7. 提交Patch 文件给qmp的开发list:qmp-dev@mail.qmp.cat



本文章由作者:佐须之男 整理编辑,原文地址: 编译QMP 无线MESH网络
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐