├── etc └── systemd │ └── system │ ├── surfacego-wifi.path │ └── surfacego-wifi.service ├── opt └── wifi-driver │ └── script └── README.md /etc/systemd/system/surfacego-wifi.path: -------------------------------------------------------------------------------- 1 | [Path] 2 | PathModified=/usr/lib/firmware/ath10k/QCA6174/hw3.0 3 | 4 | [Install] 5 | WantedBy=multi-user.target 6 | -------------------------------------------------------------------------------- /etc/systemd/system/surfacego-wifi.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Automatically overrides ATH10K QCA6174 Wi-Fi Driver after firmware update 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=sh /opt/wifi-driver/script 7 | -------------------------------------------------------------------------------- /opt/wifi-driver/script: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CD="/usr/lib/firmware/ath10k/QCA6174/hw3.0/board.bin" 4 | BD="/usr/lib/firmware/ath10k/QCA6174/hw3.0/board-2.bin" 5 | PD="/opt/wifi-driver/board.bin" 6 | 7 | if [ -e $PD ]; then 8 | cp $PD $CD 9 | fi 10 | 11 | if [ -e $BD ]; then 12 | rm $BD 13 | fi 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # surfacego-wifi 2 | Automatically overrides ATH10K QCA6174 Wi-Fi Driver after firmware update 3 | 4 | Put the two init scripts in `/etc/systemd/system` 5 | Then get the [proprietary binary driver](http://www.killernetworking.com/support/K1535_Debian/board.bin) and place it in `/opt/wifi-driver/board.bin` 6 | Then put the replacement `script` in `/opt/wifi-driver/script` 7 | 8 | Then: 9 | `$ sudo systemctl enable --now surfacego-wifi.path` 10 | --------------------------------------------------------------------------------