3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-22 21:22:37 +01:00
The iNet Wireless Daemon (iwd) project aims to provide a comprehensive Wi-Fi connectivity solution for Linux based devices. The core goal of the project is to optimize resource utilization: storage, runtime memory and link-time costs. https://iwd.wiki.kernel.org/
Go to file
2014-08-06 23:51:25 -07:00
client client: Open private bus connection if available 2014-05-20 23:08:14 -07:00
doc doc: Prefer !var over var == NULL checks 2014-07-20 17:48:48 +02:00
linux linux: Update copy of kdbus.h public header 2014-08-03 00:10:37 +02:00
monitor monitor: Print program description and version 2014-08-07 01:01:28 +02:00
src core: Add network interface to beginning of list 2014-08-06 23:51:25 -07:00
unit ie: Keep copyright notice the same for all source files 2014-08-03 08:14:16 +02:00
.gitignore monitor: Add initial version of iwmon utitlity 2014-08-03 06:03:53 +02:00
acinclude.m4 build: Avoid redefining _FORTIFY_SOURCE 2014-08-01 09:52:36 -05:00
AUTHORS AUTHORS: Mention Jukka's contributions 2014-07-15 19:18:08 -05:00
bootstrap build: Add support for internal ELL compilation 2014-05-11 11:01:11 -07:00
bootstrap-configure build: Add debug options to configure 2014-07-16 02:10:15 +02:00
ChangeLog build: Add ChangeLog file to satisfy distribution requirements 2014-05-22 19:53:56 -07:00
configure.ac build: Add debug options to configure 2014-07-16 02:10:15 +02:00
COPYING build: Add COPYING and INSTALL template files 2014-05-22 10:09:24 -07:00
INSTALL build: Add COPYING and INSTALL template files 2014-05-22 10:09:24 -07:00
Makefile.am monitor: Add support for reading traces from PCAP files 2014-08-05 22:40:43 +02:00
README README: Add notes about netlink monitoring requirements 2014-08-03 08:07:35 +02:00

Wireless daemon for Linux
*************************

Copyright (C) 2013-2014  Intel Corporation. All rights reserved.


Compilation and installation
============================

In order to compile the source code you need following software packages:
	- GCC compiler
	- GNU C library
	- Embedded Linux library

To configure run:
	./configure --prefix=/usr

Configure automatically searches for all required components and packages.

To compile and install run:
	make && make install


Embedded Linux library
======================

In order to compile the daemon and control utility the development version
of Embedded Linux library is required to be present. The development
repositories can be found here:

	git://git.kernel.org/pub/scm/libs/ell/ell.git
	https://kernel.googlesource.com/pub/scm/libs/ell/ell.git

The build systems requires that the Embedded Linux library source code
is available on the same top level directory as the Wireless daemon
source code:

	.
	|--- ell
	|    |--- ell
	|    `--- unit
	`--- iwd
	     |--- src
	     `--- client

It is not required to build or install Embedded Linux library. The build
will happen when building the Wireless daemon and it will then be linked
internally.


Kernel dependencies
===================

In order to use this daemon and control utility the kdbus kernel module
is required. The development repositories can be found here:

	https://github.com/gregkh/kdbus
	https://code.google.com/p/d-bus/

The daemon will start its own private bus that is located at the /dev/kdbus
device hierarchy:

	/dev/kdbus
	|--- control
	`--- 0-iwd
	     `--- bus

When started as root, the new private bus will be /dev/kdbus/0-iwd/bus
and it can be verified with the busctl utility from systemd:

	# busctl --address=kernel:path=/dev/kdbus/0-iwd/bus
	NAME       PID  PROCESS     USER      CONNECTION    CONNECTION-NAME
	:1.1     62151  iwd         root      :1.1          iwd
	:1.2     62153  busctl      root      :1.2          sd-busctl

Clients talking to the daemon must specifiy the private bus address.


Netlink monitoring
==================

The included iwmon utility can be used to monitor the 802.11 subsystem
generic netlink commands and events. It uses the nlmon kernel driver
from Linux 3.10 and later.

In order to use iwmon to create traces, the nlmon network interface
needs to be created:

	ip link add name nlmon type nlmon
	ip link set dev nlmon up

For now it is important that the netlink monitor interace is actually
named nlmon. Future version might relax this requirement.