wm: doc

ref: a02ecaf71ac7ccd9ce3c903b9c8e23d9558a5102
dir: /iwl.ms/

View raw version
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!