The USB device ID is unusual, probably specific to TP-Link. The urtwn driver won't attach because it's not listed as a valid device ID for urtwn - but it quite probably should be.
Looking at src/sys/dev/usb/usbdevs
, there are a few TP-Link specific device IDs mentioned in a similar range, e.g.
/* TP-Link products */
product TPLINK RTL8192CU 0x0100 RTL8192CU
product TPLINK RTL8192EU 0x0109 RTL8192EU
So, I wonder what happens when you apply this patch to the kernel:
Index: sys/dev/usb/if_urtwn.c
===================================================================
RCS file: /cvsroot/src/sys/dev/usb/if_urtwn.c,v
retrieving revision 1.88
diff -u -r1.88 if_urtwn.c
--- sys/dev/usb/if_urtwn.c 27 Jun 2020 14:34:45 -0000 1.88
+++ sys/dev/usb/if_urtwn.c 31 Jan 2021 10:02:41 -0000
@@ -218,6 +218,7 @@
URTWN_RTL8192EU_DEV(DLINK, DWA131E),
URTWN_RTL8192EU_DEV(REALTEK, RTL8192EU),
URTWN_RTL8192EU_DEV(TPLINK, RTL8192EU),
+ URTWN_RTL8192EU_DEV(TPLINK, WN821N),
};
#undef URTWN_DEV
#undef URTWN_RTL8188E_DEV
Index: sys/dev/usb/usbdevs
===================================================================
RCS file: /cvsroot/src/sys/dev/usb/usbdevs,v
retrieving revision 1.787
diff -u -r1.787 usbdevs
--- sys/dev/usb/usbdevs 26 Dec 2020 22:09:18 -0000 1.787
+++ sys/dev/usb/usbdevs 31 Jan 2021 10:03:01 -0000
@@ -3401,6 +3401,7 @@
/* TP-Link products */
product TPLINK RTL8192CU 0x0100 RTL8192CU
+product TPLINK WN821N 0x0107 WN821N
product TPLINK RTL8192EU 0x0109 RTL8192EU
product TPLINK RTL8188EU 0x010c RTL8188EU
product TPLINK T4UV2 0x010d Archer T4U ver 2
and then regenerate usbdevs and build a kernel:
$ ./build.sh -U -j2 tools
$ cd sys/dev/usb
$ make -f Makefile.usbdevs
$ cd ../../../
$ ./build.sh -U -j2 kernel=GENERIC