- Introduction
- Source code description
- How to build linux kernel backports
- How to build ath9k-htc firmware
BeaconRider is an opportunistic air-time sharing scheme that enables simultaneous data and beacon transmissions aimed at improving spectrum efficiency in dense network environments. If you reference our work, please refer to the following paper information.
Hyunjoong Lee, Jungjun Kim, Changhee Joo, and Saewoong Bahk, "BeaconRider: Opportunistic Sharing of Beacon Air-Time in Densely Deployed WLANs," in Proc. in IEEE ICNP 2019, Chicago, USA, Oct. 7-10, 2019.
We provide the source codes (device driver and firmware codes) of BeaconRider. It has been tested under following environments.
- OS: Ubuntu 14.04
- AP installation: hostapd-2.7
- Device driver: Linux Kernel Backports 4.2.6-1, ath9k
- Device firmware: ath9k-htc
- Tested device: TP-Link WN722N version 1 (v1). Note that the newer versions (v2 and v3) are not compatible with BeaconRider because they use Realtek chipset instead of Atheros chipset. Make sure that you to buy the v1 version.
If you have any questions, feel free to contact us.
- E-mail: [email protected]
- drivers: Linux kernel driver
We modified few parts in linux kernel for debugfs operations (i.e., htc_drv_debug.c, hw.h, and hw.c) and counting the number of received beacons (i.e., recv.c). Most of BeaconRider operations are implemented in ath9k-htc firmware.
- target_firmware: ath9k-htc firmware
BeaconRider operations are implemented in target_firmware/wlan (This is where you want to modify firmware for your own research!). Please refer to beaconRider.c and beaconRider.h for detailed operations.
- Download backports source code from here.
Go to the root directory of the source code.
- Set compile options.
sudo make mrproper
sudo make defconfig-ath9k
sudo make defconfig-ath9k-debug
- Initiate compilation.
sudo make && make install
- Replace the new modules with the old ones.
modprobe -r ath9k
modprobe -r ath9k_htc
modprobe ath9k
modprobe ath9k_htc
If you have an issue reinstalling new modules, reboot your system.
- Download firmware source code from here.
git clone https://github.com/qca/open-ath9k-htc-firmware
- Download and install toolchain using make command. (It will take about half an hour to be completed.)
cd ./open-ath9k-htc-firmware
make toolchain
- Initiate building firmware.
To enable BeaconRider on your devices, replace target_firmware directory with our firmware source codes. Then, you are good to go to initiate building firmware!
sudo apt-get install cmake
make -C target_firmware
If you can find htc_9271.fw in target_firmware directory, the building is successful.
- Replace the new firmware with the old one. Remove old kernel module (ath9k-htc) and reinstall new one.
sudo cp target_firmware/htc_9271.fw /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
sudo rmmod ath9k_htc
sudo modprobe ath9k_htc
If you have an issue reinstalling new kernel module, reboot your system.