802.11ac with ath10k
These are my notes from an attempt at bringing up an 802.11ac wireless adapter in master mode. Unfortunately, this attempt was largely a failure,
- Two Android devices and a Roku were unable to see the network at all
- Range was rather disappointing (largely due to the fact that I was operating at 5GHz)
- Convincing the driver that in fact lived in Germany and could therefore initiate radiation on the 5GHz band required a great deal of fragile
- Throughput was not worth the complexity that 802.11ac wrought
This was with a Compex WLE600V5-27 adapter supported by the ath10k.
Regulatory things
Wireless regulation enforcement is necessarily complex. Unfortunately my card, like many others, was shipped from the factory with its EEPROM set for use in the United States. This is problematic since I live in Germany, which uses different radar detection scheme (ETSI) than that used in the US (which, as it turns out, doesn’t even appear to be supported by ath10k
).
Working around this essentially amounts to replacing the regulatory database entry describing the US region with that of Germany.
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
$ cd wireless-regdb
$ openssl req -x509 -nodes -days 365 -sha256 -newkey rsa:2048 -keyout ben.pem -out ben.pem
$ DISTRO_PRIVKEY=ben.pem DISTRO_PUBKEY=ben.pem make
$ sudo PREFIX= make install
Now modify db.txt
.
$ sudo apt-get install python-m2crypto libgcrypt11-dev
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git
$ cd crda
$ PUBKEY_DIR=/lib/crda/pubkeys RUNTIME_PUBKEY_DIR=$PUBKEY_DIR make
$ sudo PREFIX= make install
$ ln -s debian-example debian
Add CFLAGS := -fpic
to debian/rules
.
Other things I learned
Regarding the meaning of vht_oper_centr_freq_seg0_idx
(see here):
VHT requires a generic center frequency (or rather channel number in hostapd) to be provided. Since you have channel=36 then the center frequency for 80MHz bandwidth is 36+6 = 42.