First, download the firmware:
; git/clone gits://git.9front.org/plan9front/firmware
; cp firmware/* /lib/firmware/
You only need to copy the firmware you need for your wireless card. You don't need to copy all others.
If you cannot find your card's firmware, check OpenBSD's firmware:
http://firmware.openbsd.org/firmware/7.5/
For Intel Wireless AC 3168, it may be necessary to apply this patch:
diff 6b5d2ac468490a417e2dc36d13662b021d360200 uncommitted
--- a/sys/src/9/port/etheriwl.c
+++ b/sys/src/9/port/etheriwl.c
@@ -4479,6 +4479,10 @@
family = 8000;
fwname = "iwm-8000C-34";
break;
+ case 0x24fb: /* Wireless AC 3168 */
+ family = 7000;
+ fwname = "iwm-3168-29";
+ break;
case 0x24fd: /* Wireless AC 8265 */
family = 8000;
fwname = "iwm-8265-34";
Next, rebuild the kernel:
; cd /sys/src/9/pc64
; mk install
; 9fs 9fat
(Optionally, you can rebuild the entire system: http://fqa.9front.org/fqa5.html)
Then, copy the kernel. For 386:
; cp /386/9pc /n/9fat/
For amd64:
; cp /amd64/9pc64 /n/9fat/
Reboot:
; fshalt -r
When you view /dev/kmesg, the device should appear:
#l0: rtl8169: 10Mbps port 0x3000 irq 255 ea c46516b43793
#l1: iwl: 54Mbps port 0xA6B00000 irq 255 ea 000000000000
On this machine, the second line is the wifi card, Intel Dual Band Wireless-AC 3168NGW [Stone Peak].
Troubleshooting:
; ls '#l1'
ls: #l1: no free devices
The device is not recognized.
In /dev/kmesg, you should see a line that resembles:
#l1: iwl: 54Mbps port 0xA6B00000 irq 255 ea 000000000000
It needs to match your device to indicate that it has been detected.
Connecting
Consult the ipconfig(8) and wpa(8) man pages.
status: associated
; bind -b '#l1' /net.alt
; bind -b '#I1' /net.alt
; aux/wpa -s YOURESSID -p /net.alt/ether1
; ip/ipconfig -x /net.alt ether /net.alt/ether1
/net.alt/ether1/ifstats will show local access points
essid: MYACCESSPOINT
bssid: 40e1aabbccdd
status: associated
channel: 01
rxkey2: ccmp:[16]
rxkey4: ccmp:[16]
txkey0: ccmp:[16]
brsne: 30140100000FAC040100000FAC040100000FAC020C00
node: 7493dad36ff8 1431 995070 01 Neighbor
node: 747d2422f122 0411 993550 01 Airport
node: 087b126868e0 1511 995130 01 Coffee-Shop
node: f08175055ee6 1411 1002880 11 Library
To test if it works:
; ip/ping /net.alt/icmp!8.8.8.8
Thanks to qwx on OFTC for helping with instructions and the patch!