Connection Manager
******************
-Copyright (C) 2007-2009 Intel Corporation. All rights reserved.
+Copyright (C) 2007-2012 Intel Corporation. All rights reserved.
Functionality and features
The following features are built-in into Connection Manager:
- Generic plugin infrastructure
- Device and network abstraction (with basic storage support)
- - IPv4, routing and DNS configuration
+ - IPv4, IPv4-LL (link-local) and DHCP
+ - IPv6, DHCPv6 and 6to4 tunnels
+ - Advanced routing and DNS configuration
+ - Built-in DNS proxy and intelligent caching
+ - Built-in WISPr hotspot logins and portal detection
+ - Time and timezone configuration (manual and automatic with NTP)
+ - Proxy handling (manual and automatic with WPAD)
+ - Tethering support (USB, Bluetooth and WiFi AP mode)
+ - Detailed statistics handling (home and roaming)
Various plugins can be enabled for networking support:
- Ethernet plugin
- - WiFi plugin with WEP40/WEP128 and WPA/WPA2 (personal only) support
- - Bluetooth plugin
+ - WiFi plugin with WEP40/WEP128 and WPA/WPA2 (personal and enterprise)
+ - Bluetooth plugin (using BlueZ)
+ - 2G/3G/4G plugin (using oFono)
Also plugins with additional features are available:
- - DHCP plugins (uDHCP and dhclient)
- - Resolver plugins (resolvconf and DNS proxy)
- - Loopback setup
- - PolicyKit support
+ - Loopback interface setup
+ - PACrunner proxy handling
+ - PolicyKit authorization support
Compilation and installation
- GCC compiler
- GLib library
- D-Bus library
- - udev library (optional)
+ - IP-Tables library
+ - GnuTLS library (optional)
- PolicyKit (optional)
- - PPP support (optional)
To configure run:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
For a working system, certain configuration options need to be enabled:
- --enable-ethernet
+ --disable-ethernet
- Enable support for Ethernet network cards
+ Disable support for Ethernet network cards
- --enable-wifi
+ By default Ethernet technology support is built-in and
+ enabled. This option can be used to build a small daemon
+ for a specific system if Ethernet support is not required.
- Enable support for WiFi devices (requires wpa_supplicant)
+ --disable-wifi
+ Disable support for WiFi devices
- --enable-bluetooth
+ By default WiFi technology support is built-in and
+ enabled. This option can be used to build a small daemon
+ for a specific system if WiFi support is not required.
- Enable support for Bluetooth devices (requires BlueZ)
+ It is safe to build a daemon with WiFi support and no
+ running wpa_supplicant. The start of wpa_supplicant is
+ automatically detected and only a runtime dependency. It
+ is not needed to build ConnMan.
- --enable-ppp
+ --disable-bluetooth
- Enable PPP support for dialup connections (requires pppd)
+ Disable support for Bluetooth devices
- The location of the pppd binary is auto-detected, but it
- can be overwritten via --with-pppd=<path-to-binary>.
+ By default Bluetooth technology support is built-in and
+ enabled. This option can be used to build a small daemon
+ for a specific system if Bluetooth support is not required.
- --enable-udhcp
+ It is safe to build a daemon with Bluetooth support and no
+ running bluetoothd. The start of bluetoothd is automatically
+ detected and only a runtime depedency. It is not needed to
+ build ConnMan.
- Enable DHCP client support for BusyBox based systems
+ --disable-ofono
- The location of the udhcpc binary is auto-detected, but it
- can be overwritten via --with-udhcpc=<path-to-binary>.
+ Disable support for cellular 2G/3G/4G devices
- --enable-dhclient
+ By default oFono technology support is built-in and
+ enabled. This option can be used to build a small daemon
+ for a specific system where oFono is not used.
- Enable DHCP client support for ISC dhclient based systems
+ It is safe to build a daemon with oFono support and no
+ running ofonod. That start of ofonod is automatically
+ detected and only a runtime dependecy. It is not needed to
+ build ConnMan.
- The location of the dhclient binary is auto-detected, but it
- can be overwritten via --with-dhclient=<path-to-binary>.
+ --disable-pacrunner
- At least one DHCP client option should be selected. It is
- possible to select both and then uDHCP will be tried first
- before falling back to dhclient.
+ Disable support for PACrunner proxy handling
- --enable-dnsproxy
+ By default PACrunner support is built-in and enabled. This
+ option can be used to build a small daemon for a specific
+ system where PACrunner is not used.
- Enable DNS proxy support for /etc/resolv.conf abstraction
+ It is safe to build a daemon with PACrunner support and no
+ pacrunner daemon. It will detect and start a PACrunner
+ process if needed at runtime. The presence is not needed
+ to build ConnMan.
- The best solution for multiple connections and proper DNS
- handling is a DNS proxy server. This binds a DNS proxy
- server to port 53 on the loopback interface (127.0.0.1).
+ --disable-loopback
- The /etc/resolv.conf file needs a "nameserver 127.0.0.1"
- entry, but can now set the immutable bit or be on a read-only
- filesystem. No further modification to that file will be made.
+ Disable setup of loopback device
- It is important that this is not used together with other
- DNS proxy solution like dnsmasq.
-
- --enable-resolvconf
-
- Enable resolvconf support for Debian/Ubuntu based systems
+ For distributions with a really minimal init system and no
+ networking scripts this can take care of setting up the
+ loopback device and enabling it.
- The resolvconf package from Debian can be used to handle
- configuration of the /etc/resolv.conf file.
+ It is safe to leave this selected even if networking
+ scripts are in place. It detects an already configured
+ loopback device and leaves it as it is.
- It is safe to select this option even when resolvconf is not
- installed. A missing resolvconf will be detected and in that
- case it falls back to modifying /etc/resolv.conf directly.
+ --disable-wispr
- The location of the resolvconf binary is auto-detected, but it
- can be overwritten via --with-resolvconf=<path-to-binary>.
+ Disable support for WISPr hotspot logins
- --enable-loopback
+ For systems with really minimal memory requirements, this
+ will disable the support for WISPr hotspot logins. The code
+ for WISPr will be still compiled into the daemon, but its
+ requirement on GnuTLS for secure connections will be lifted.
- Enable setup of loopback device
+ The missing GnuTLS support shrinks the memory requirements
+ by about 30% and for systems that are more stationary and do
+ not log into hotspots this might be a better trade off.
- For distributions with a really minimal init system and no
- networking scripts this can take care of setting up the
- loopback device and enabling it.
-
- It is safe to select this option even if networking scripts
- are in place. It detects an already configured loopback
- device and leaves it as it is.
+ Disabling WISPr support is not disabling the portal detection
+ support. A portal will still be detected, but instead of being
+ asked for login credentials, the request for a browser session
+ will be made through the agent.
--enable-polkit
This allows to check every D-Bus access against a security
policy and so restrict access to certain functionality.
+ --enable-nmcompat
+
+ Enable support for NetworkManager compatibility interfaces
+
+ This allows to expose a minimal set of NetworkManager
+ interfaces. It is useful for systems with applications
+ written to use NetworkManager to detect online/offline
+ status and have not yet been converted to use ConnMan.
+
+
+wpa_supplicant configuration
+============================
+
+In order to get wpa_supplicant and Connection Manager working properly
+together you should edit wpa_supplicant .config file and set:
+
+CONFIG_WPS=y
+CONFIG_AP=y
+CONFIG_CTRL_IFACE_DBUS_NEW=y
+
+and, add:
+
+CONFIG_BGSCAN_SIMPLE=y
+
+This last option will enable the support of background scanning while being
+connected, which is necessary when roaming on wifi.
+
+It is recommended to use wpa_supplicant 0.8.x or 1.x or later.
+
+
+VPN
+===
+
+In order to compile pptp and l2tp VPN plugins, you need ppp development
+package.
+
+To run l2tp you will need
+ - xl2tpd, http://www.xelerance.com/services/software/xl2tpd
+
+To run pptp you will need
+ - pptp client, http://pptpclient.sourceforge.net
+
+Both l2tp and pptp also need pppd.
+
+
+OpenVPN
+=======
+
+Up to version 2.2 of OpenVPN, pushing additional routes from the
+server will not always work. Some of the symptons are that additional
+routes will not be set by ConnMan if the uplink is a cellular
+network. While the same setup works well for a WiFi or ethernet
+uplink.