GSoC/GCI Archive
Google Summer of Code 2010

Freifunk

License: GNU General Public License (GPL)

Web Page: http://wiki.freifunk.net/Ideas

Mailing List: http://freifunk.net/mailman/listinfo/wlanware

[IMAGE http://wiki.freifunk.net/images/7/70/Logo_ffn_170x165.gif]

Freifunk is an initiative to support the development of tools for free mesh networks. Besides that the initiative supports communities developing know-how to set up their own networks.

Freifunk is applying as an umbrella organization for Google Summer of Code. The freifunk community is acting as an entry point to a network of projects developing tools for mesh networks including the Freifunk Firmware and OpenWrt projects, routing protocols such as OLSR and B.A.T.M.A.N., tools like Maps for networks (e.g. freimap), scanning tools like the horst tool and many more. Recently people also started to develop Open Hardware like the Mesh Potato for villagetelco.

With the freifunk firmware it is relatively easy to bring up new wireless mesh networks using ad-hoc WLAN communication layer 2 and layer 3 routing with OLSR, BATMAN and other protocols. Originated in Germany, Freifunk has been deployed successfully in many countries. The OLPC project in Afghanistan uses freifunk for its mesh deployments to distribute digital books, news and educational media. In Ghana freifunk is used to bridge the digital divide in villages. In Vietnam freifunk is used to offer Internet connections at Free and Open Source events like FOSSASIA. In Europe and the Americas city and village networks lower costs for communities and small and medium sized companies, that share common Internet connections, ADSL, Telephone or Satellite uplinks in remote regions.

==FREIFUNK Firmware/OPENWRT==

The Freifunk Firmware is a modified version of OpenWrt Linux Version that is developed for router devices. The main aim of the firmware is to make it easier and faster to set up wireless mesh networks. Designed as an embedded Linux for low powered network devices the system can be adapted for a wide variety of devices. Freifunk/OpenWrt supports ad-hoc WLAN communication and layer 2 and 3 routing. Open Source routing protocols can be installed via package updates. Most common protocols are the OLSR protocol and the BATMAN routing protocol. By building the Freifunk embedded firmware together with the OpenWrt team the community is developing an easy to use self-configuring, self-fixing and self-tuning mesh network  (http://wiki.openwrt.org/Freifunk).

===Features of the freifunk Firmware===

The Freifunk firmware allows anyone to relatively easily build mesh networks of routers.  Such networks can be surprisingly scalable involving hundreds / thousands of nodes and made using normal off the shelf routers.

===Firmware PLUGINS===

Current test version on SVN (https://dev.openwrt.org/wiki/GetSource) are enabling developers to create plugins for the firmware. These plugins will enable users to offer locations based services, local search, router CMS, local fm radio distribution via routers, and many more. An example for locations based services is Apple Bonjour that offers users to share their music in local wifi networks, however, in Freifunk mesh networks, there are many more ways to share and communicate as services are build on open standards and open source software.

===LOCAL SERVICES in Mesh Networks===

Another project where we are connecting services is the Villagetelco project, where we adapt the firmware to offer telephone services over an adhoc network (www.villagetelco.org).

===ADAPTING THE FIRMWARE===

Going in another direction the community also engages to port applications and desktop environments such as LXDE to OpenWrt for Freifunk clouds to offer faster devices with an X interface and making use of thousands of available applications. The porting of code from Google Android also aims to support the adaptability of the Firmware for special use cases.

==Communities around the world==

To read more about free wireless networks around the world, please visit the global Freifunk newswire at http://global.freifunk.net.

Getting Started

  • Checkout the firmware, download it, install it Getting Started (EN)
  • Contact your local community or start a new one

==Projects of the community==

Firmware, RouterOS, Interface

Open Source Routing Protocols

Tools

Maps

Villagetelco

fdmbx

More about Freifunk

Freifunk Wireless Community Weekend - Gallery

[IMAGE http://wiki.freifunk.net/images/thumb/a/a3/MiniFM.jpg/150px-MiniFM.jpg] [IMAGE http://wiki.freifunk.net/images/thumb/7/76/Wcw09_1.JPG/150px-Wcw09_1.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/b/ba/HIVEnetworks.jpg/150px-HIVEnetworks.jpg] [IMAGE http://wiki.freifunk.net/images/thumb/1/14/Wcw09_stefan.JPG/150px-Wcw09_stefan.JPG]
[IMAGE http://wiki.freifunk.net/images/thumb/6/64/Wireless_community_weekend_2007_.jpg/150px-Wireless_community_weekend_2007_.jpg] [IMAGE http://wiki.freifunk.net/images/thumb/b/be/Wcw09_gsoc.JPG/150px-Wcw09_gsoc.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/1/12/Wcw09_foo.JPG/150px-Wcw09_foo.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/9/94/Wcw09_jochen_reto.JPG/150px-Wcw09_jochen_reto.JPG]
[IMAGE http://wiki.freifunk.net/images/thumb/7/79/Obamp_saverio_kl.jpg/150px-Obamp_saverio_kl.jpg] [IMAGE http://wiki.freifunk.net/images/thumb/f/f1/Wcw09_meshcube_workshop.JPG/150px-Wcw09_meshcube_workshop.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/9/92/Wcw09_cven.JPG/150px-Wcw09_cven.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/4/42/WCW2009_keks1.JPG/150px-WCW2009_keks1.JPG]
[IMAGE http://wiki.freifunk.net/images/thumb/f/ff/P1020955-scaled.JPG/150px-P1020955-scaled.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/5/55/Grill.JPG/150px-Grill.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/6/6b/Wcw09_riversite.JPG/150px-Wcw09_riversite.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/5/54/Wcw09_bbq_setup.JPG/150px-Wcw09_bbq_setup.JPG]
[IMAGE http://wiki.freifunk.net/images/thumb/d/d1/Wcw09_bbq.JPG/150px-Wcw09_bbq.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/9/96/Wcw09_henning_olsrd.JPG/150px-Wcw09_henning_olsrd.JPG] [IMAGE http://wiki.freifunk.net/images/thumb/0/0a/Wcw2007_elektra.jpg/120px-Wcw2007_elektra.jpg] [IMAGE http://wiki.freifunk.net/images/thumb/2/27/Wireless_community_weekend_hacknight.jpg/150px-Wireless_community_weekend_hacknight.jpg]

Video

Flo Fleissig and Freifunk - Some insights to the community: http://video.google.de/videoplay?docid=-345577071434265096#

Projects

  • Ad-Hoc Wireless Mesh Networking for Mobile Devices: Porting OLSR to Nokia N900 and Android OS Enabling mobile devices to operate on ad-hoc wireless mesh networks by porting the necessary routing protocols to these devices with a native GUI will enable mobile devices to link into a mesh network and communicate with devices using the OLSR routing protocol.
  • Database output for freimap In the current implementation of Freimap all collected data are lost when displayed. The purpose of this project is to create a method to collect data into a MySql Database that logically will be a pre-requisite for Freimap software.These data can be used for future reference or to have an history of the entire mesh network.
  • Design and implementation of a linux VoIP api at the example of an AirTies WAV-281 with OpenWrt The goal of this Project is to develop a software system for use in OpenWrt based firmwares which makes hardware which telephony and networking hardware easily accessible. It will involve designing and implementing a Linux kernel framework which provides a common API to such hardware devices. Then the next step then is to develop userspace tools making use of that API for call management. The hardware which will be used for this Project as an example platform will be the AirTies WAV-281.
  • flashing, re-flashing, debricking framework Cross-platform framework to flash and debrick a router. Including a flashing GUI with howto. Targetting "normal" people with simple knowledge of computer (none knowledge unix, none console) can flash and debrick most routers.
  • Free Web Radio Program Scheduler Currently most webradios rely on proprietary close source solutions for the scheduling of their radio programs. This is especially true for free webradios that want their listeners to participate to the radio schedule with their own broadcastings from home in a distributed fashion. These webradios could benefit from a distributed and automatic programme scheduler implementation.
  • Implementation of a Bounded Incremental Shortest Path Algorithm for olsrd olsrd uses Dijkstra's as shortest path (SP) algorithm, i.e., SPs are calculated from scratch for all known destinations upon incoming routing information that changes topology sets. Bounded Incremental Computation (BIC) shortest path algorithms aims at saving computation running time by bounding its complexity to the number of routers that were affected by topology changes. This proposal aims at implementing and performing comprehensive evaluation of a BIC shortest path algorithm for the olsrd.
  • IPinUDP encapsulation module IPinUDP encapsulation is a well known encapsulation mechanism mainly used for NAT traversal solutions (e.g.: RFC 3948). Moreover, IP/UDP encapsulation can be envisioned in end-to-end overlays and mobility management solutions. Despite its simplicity, a generic IPinUDP encapsulation Linux Kernel module independent from the IPsec framework is not currently available. With this work, I propose the implementation of a new IPinUDP encapsulation module exporting virtual network devices to user-space.
  • Liquid freifunk collaboration web framework The goal of the liquid freifunk project is develop a site that enables the community to progress to the next level.