What is qMp?¶
- It is firmware for embedded network devices based on OpenWRT GNU/linux operating system
- It provides an easy way to set up networks using MESH it doesn't matter your they are either wired or WiFi or a mix of both
- It is a fast and reliable way to extend an Internet uplink to end-users
Two main purposes:
- For quick deployments
There's no need to think about network topology, all you need to do is to spread the nodes and connect one to internet.
Use it in any kind of environments like concerts, meetings, demonstrations or in case of a natural disaster.
- For the wireless communities
If you are new into this all you need to become part of the existing community or to start building one is to download and install the firmware. It won't take you more than the time you need to take a coffee to have your node ready to be put in place.
But if you are already an old hands at wireless communities here is qMp to let you forget about all those weird network administration tricks that don't last more than a day in your mind and focus on what makes your community grow, that is, the nodes deployment.
- Providing a complete autoconfiguration system from the first boot
- Using a set of Layer 3 MESH protocols: BMX6 (main), OLSR6 and Babel as backup
- Using IPv6 as the main IP protocol
- Using IPv4 only for end-user connection (tunneling)
- Providing an easy and intuitive administration web interface (LuCI based)
Currently the official supported devices are: Alix, Routerstation, RouterstationPro, NanoStation/Nanobridge/Airgrid M5/M2
But qMp is Free software, so if it doesn't perfectly suits for you all you need to do is to modify it and send us your patches to let us apply them.
Read the next article to see how to add a new device New_device
- mesh: Using a set of mesh protocols to provide automatic networking participation
- autoconf: A system to auto-configure all settings. So the user does not need to configure anything.
- qmpinfo: It is a tool written in Lua to get some information about the QMP system.
- qmpcontrol: It is a tool written as a shell script to manage the QMP system.
- qMp webint: A LUCI (web interface) module to manage and monitor QMP system.
- map: A map tool (named b6m and written in Shell Scripting using OpenStreetMaps) to see the position of all network nodes and how are they connected.
- internet detect: A tool (named gwck) written in Shell Script which is monitoring if the node is connected to internet, in this case it modifies all needed things to share it with the whole network.
Get the firmware¶
Just go to http://fw.qmp.cat to find the binary files ready to install in your device.
From Source (recommended)¶
- First of all you should take a look on the system requirements: Environment
- Get the code using http:
wget -c -q -O - "http://qmp.cat/gitrevision_download?project_id=7&rev=anonymous" | tar zxvf -
- Or get the code using git:
git clone git://qmp.cat/qmpfw.git qmpfw
- Then enter to directory:
- And compile it:
make T=alix build
You can find available targets by executing:
After that, you will find the images ready to install in your devices inside directory images/
Use the firmware¶
By default the network interfaces from your device are used for the next purposes (if some of them missing, it is just ignored):
- eth0 LAN with DHCP server and IP 172.30.22.1
- eth1 WAN with DHCP client running (you can connect it to internet)
- wlan0 MESH & ADHOC Routing daemons running using IPv6
- wlan1 LAN & AP DHCP server and IP 172.30.22.1
- wlan2 MESH & ADHOC Routing daemons running using IPv6
So you can access it connecting your computer to eth0 or wlan1 and going via web browser to http://172.30.22.1 using default login:
- user: root
- password: 13f
The main part of this project has been freely contributed by a bunch of wireless enthusiast, but in the year 2011 it has been partially funded by Funació PuntCat.
- e-mail: info_at_qmp.cat
- Users mailing list: https://mail.qmp.cat/cgi-bin/mailman/listinfo/qmp-users
- Developers mailing list: https://mail.qmp.cat/cgi-bin/mailman/listinfo/qmp-dev
__ _ /\/\ _ __ / _` |/ \| '_ \ | (_| / /\/\ \ |_) | \__, \/ \/ .__/ |_| |_| quick MESH project