Recently I installed Ubuntu 16.04 on MSI GS63VR laptop with dual boot (with Windows 10). This laptop has Killer 1535 Wi-Fi adapter (with QCA6174 chip). I followed instructions on their official site:
The built in drivers should work without any changes, though you may need to update your wireless firmware:
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.162_all.deb sudo dpkg -i linux-firmware*.deb sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci
Even Wi-Fi networks are visible, unfortunately I can't connect to my home Wi-Fi. I checked the password multiple times, it's correct for sure.
The strange thing is that I can connect to my Android access point set on smartphone. Also other devices at home can connect to this Wi-Fi without any problems, and it works fine on Windows 10 on the same laptop from the same distance. So I'm forced to use Android access point as a temporary workaround now.
The router is placed in the hall (mounted on the wall about 1 meter and a half from the floor). The distance is: hall - living room - my room (approximately 8-9 meters). If i come close to the router, I can instantly connect to home Wi-Fi and speed is pretty good. And even inside of my room, If I come to the doorway (about 1 meter and a half away from my working table), I'm able to connect and speed is pretty good. With laptop placed on working table, I can't connect at all or If I'm lucky to connect (happens very very seldom) the network is unusable. If I move laptop to my bed the chance to connect is a bit higher but speed is very very slow so it's also unusable.
Moving router (or myself closer to it) is not an option for me now, also this will solve this problem only locally (for my environment only).
So I think the reason is either the drivers or Ubuntu specific settings, because it's fine on Windows 10 from the same distance with this laptop.
Important note: Before posting this I searched a lot and tried what is suggested in similar questions. None of those advices worked for me.
The relevant output of:
sudo lshw -c network
description: Wireless interface product: QCA6174 802.11ac Wireless Network Adapter vendor: Qualcomm Atheros physical id: 0 bus info: pci@0000:3e:00.0 logical name: wlp62s0 version: 32 serial: **:**:**:**:**:** width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=ath10k_pci driverversion=4.8.0-36-generic firmware=WLAN.RM.2.0-00180-QCARMSWPZ-1 ip=***.***.**.* latency=0 link=yes multicast=yes wireless=IEEE 802.11 resources: irq:132 memory:df200000-df3fffff
The output of:
dmesg | grep ath10k
[ 3.086898] ath10k_pci ****:**:**.*: enabling device (0000 -> 0002) [ 3.087198] ath10k_pci ****:**:**.*: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [ 3.372179] ath10k_pci ****:**:**.*: Direct firmware load for ath10k/pre-cal-pci-****:**:**.*.bin failed with error -2 [ 3.372184] ath10k_pci ****:**:**.*: Direct firmware load for ath10k/cal-pci-****:**:**.*.bin failed with error -2 [ 3.372360] ath10k_pci ****:**:**.*: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2 [ 3.372361] ath10k_pci ****:**:**.*: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2 [ 3.373277] ath10k_pci ****:**:**.*: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56:1535 [ 3.373277] ath10k_pci ****:**:**.*: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0 [ 3.373623] ath10k_pci ****:**:**.*: firmware ver WLAN.RM.2.0-00180-QCARMSWPZ-1 api 4 features wowlan,ignore-otp,no-4addr-pad crc32 75dee6c5 [ 3.436610] ath10k_pci ****:**:**.*: board_file api 2 bmi_id N/A crc32 8c15898f [ 5.561030] ath10k_pci ****:**:**.*: htt-ver 3.26 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1 [ 5.656429] ath10k_pci ****:**:**.* wlp62s0: renamed from wlan0
Here is the log of connection to Android access point:
[ 107.007374] wlp62s0: authenticate with **:**:**:**:**:** [ 107.057897] wlp62s0: send auth to **:**:**:**:**:** (try 1/3) [ 107.059728] wlp62s0: authenticated [ 107.061296] wlp62s0: associate with **:**:**:**:**:** (try 1/3) [ 107.064661] wlp62s0: RX AssocResp from **:**:**:**:**:** (capab=0x411 status=0 aid=1) [ 107.067985] wlp62s0: associated [ 107.068042] IPv6: ADDRCONF(NETDEV_CHANGE): wlp62s0: link becomes ready
And here is the log of connection to home Wi-Fi:
[ 101.628172] wlp62s0: authenticate with **:**:**:**:**:** [ 101.674946] wlp62s0: send auth to **:**:**:**:**:** (try 1/3) [ 101.679850] wlp62s0: send auth to **:**:**:**:**:** (try 2/3) [ 101.684955] wlp62s0: send auth to **:**:**:**:**:** (try 3/3) [ 101.690259] wlp62s0: authentication with **:**:**:**:**:** timed out [ 102.308700] IPv6: ADDRCONF(NETDEV_UP): wlp62s0: link is not ready
dmesg | grep wlp62s0
command to retrieve this information.
Some of the advices recommend to replace firmware files from kvalo/ath10k-firmware repo so I decided to give it a try too:
cd ~/programs/ git clone https://github.com/kvalo/ath10k-firmware.git sudo rm -rf /lib/firmware/ath10k/QCA6174/ sudo cp -r ath10k-firmware/QCA6174 /lib/firmware/ath10k/ cd /lib/firmware/ath10k/QCA6174/hw2.1/ sudo mv firmware-5.bin_SW_RM.1.1.1-00157-QCARMSWPZ-1 firmware-5.bin cd ../hw3.0 sudo mv firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1 firmware-4.bin sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci reboot
Unfortunately this did not help too.
Here is what I tried additionally:
1) I disabled IPv6 using this method. Now these kind of errors - "IPv6: ADDRCONF(NETDEV_UP): wlp62s0: link is not ready" are gone, but authentication is still timing out:
2) I changed power management settings as suggested by Jeremy31 in this answer. Now sometimes the process goes a bit further:
[ 76.352810] wlp62s0: authenticate with **:**:**:**:**:** [ 76.400120] wlp62s0: send auth to **:**:**:**:**:** (try 1/3) [ 76.405250] wlp62s0: authenticated [ 76.407644] wlp62s0: associate **:**:**:**:**:** (try 1/3) [ 76.418128] wlp62s0: RX AssocResp from **:**:**:**:**:** (capab=0x431 status=0 aid=2) [ 76.421150] wlp62s0: associated [ 122.364346] wlp62s0: deauthenticating **:**:**:**:**:** by local choice (Reason: 3=DEAUTH_LEAVING)
In other cases I get timeout like in Update 1.
3) Changed router settings to use WPA2 encryption only. Experimented with other settings like mode, channel, channel bandwidth. Tried to manually set connection properties (address, network, gateway and DNS) as suggested by provider.
4) Set wireless regulatory domain to my country code (KZ, stands for Kazakhstan).
Log contents after applying that:
[ 5.958257] ath: EEPROM regdomain: 0x6c [ 5.958258] ath: EEPROM indicates we should expect a direct regpair map [ 5.958259] ath: Country alpha2 being used: 00 [ 5.958259] ath: Regpair used: 0x6c [ 5.963073] ath10k_pci 0000:3e:00.0 wlp62s0: renamed from wlan0
5) Tried to change
echo "options ath10k_pci skip_otp=y" > /etc/modprobe.d/ath10k.conf
This did not help and additionally gives this line in the log:
[ 3.381182] ath10k_pci: unknown parameter 'skip_otp' ignored
6) Tried to use other firmware versions, 1.157.9 for example.
Also I asked the same question on Ubuntu Forums, but still no success. This is the biggest issue for me now because I can't work normally without good network connection.
Any help and advices is appreciated. If you need more info, please let me know.