mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-23 22:42:37 +01:00
115 lines
3.0 KiB
Plaintext
115 lines
3.0 KiB
Plaintext
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.
|
|
|
|
|
|
Simulating devices
|
|
==================
|
|
|
|
The Linux driver mac80211_hwsim provides the functionality to simulate
|
|
Wireless devices using fake virtual air. Just load the module.
|
|
|
|
modprobe mac80211_hwsim radios=0
|
|
|
|
Provding the radios=0 is important since otherwise it starts out with
|
|
two new Wireless radios by default.
|
|
|
|
With the provided hwsim utility it is now possible to add and remove
|
|
virtual radio devices.
|
|
|
|
hwsim --create
|
|
hwsim --destroy=<radio-id>
|
|
|
|
The radio id assigned to each virtual device is its internal id used
|
|
by the Wireless device.
|