I got an old iMac with a dead drive. I pulled the drive and installed an SSD. It is now running Linux Mint but I cannot get the WiFi to work right. I can see networks but I cannot connect to them. Since I can see the networks in my house (and my neighbor's) I think the hardware is ok.
My main networks are WPA2 security.
So the problem looks to be in the WPA stuff. Note I am using Mint because Ubuntu didn't work. I was hoping a different install of essentially the same thing would have different results. If there is a better *nix variant to run on this hardware I wouldn't mind changing at this point.
grunzasr@tarbosaurus:~$ lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 03)
00:1a.0 USB controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 03)
00:1d.0 USB controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HM (ICH8M) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV630/M76 [Mobility Radeon HD 2600 XT/2700]
03:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 05)
04:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4321 802.11a/b/g/n (rev 03)
05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8058 PCI-E Gigabit Ethernet Controller (rev 13)
04:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4321 802.11a/b/g/n (rev 03)
Subsystem: Apple Inc. AirPort Extreme
Physical Slot: 4
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at d0300000 (64-bit, non-prefetchable) [size=16K]
Memory at d0000000 (64-bit, prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: wl
Kernel modules: ssb, wl
Mar 17 17:15:53 tarbosaurus NetworkManager[553]: <info> [1616015753.0937] manager: startup complete
Mar 17 17:15:56 tarbosaurus systemd[1]: NetworkManager-dispatcher.service: Succeeded.
Mar 17 17:15:59 tarbosaurus NetworkManager[553]: <info> [1616015759.9833] agent-manager: agent[82224d3c6471f13f,:1.69/org.freedesktop.nm-applet/1000]: agent registered
Mar 17 17:17:57 tarbosaurus NetworkManager[553]: <info> [1616015877.4272] audit: op="connection-update" uuid="dc13dbec-2cf2-4b8a-a01c-82fbce8627f5" name="Auto SchuyNet_2.4GHz" args="802-11-wireless-security.auth-alg,ipv6.method" pid=1514 uid=1000 result="success"
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.8964] device (wls4): Activation: starting connection 'Auto SchuyNet_2.4GHz' (dc13dbec-2cf2-4b8a-a01c-82fbce8627f5)
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9032] audit: op="connection-activate" uuid="dc13dbec-2cf2-4b8a-a01c-82fbce8627f5" name="Auto SchuyNet_2.4GHz" pid=1514 uid=1000 result="success"
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9034] device (wls4): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9040] manager: NetworkManager state is now CONNECTING
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9046] device (wls4): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9050] device (wls4): Activation: (wifi) access point 'Auto SchuyNet_2.4GHz' has security, but secrets are required.
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9051] device (wls4): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9053] sup-iface[0x55e77a0a8100,wls4]: wps: type pbc start...
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9415] device (wls4): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9451] device (wls4): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9533] device (wls4): Activation: (wifi) connection 'Auto SchuyNet_2.4GHz' has security, and secrets exist. No new secrets needed.
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9539] Config: added 'ssid' value 'SchuyNet_2.4GHz'
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9542] Config: added 'scan_ssid' value '1'
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9544] Config: added 'bgscan' value 'simple:30:-70:86400'
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9547] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256'
Mar 17 17:18:38 tarbosaurus NetworkManager[553]: <info> [1616015918.9549] Config: added 'psk' value '<hidden>'
Mar 17 17:18:39 tarbosaurus NetworkManager[553]: <info> [1616015919.0051] device (wls4): supplicant interface state: ready -> scanning
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.8609] device (wls4): supplicant interface state: scanning -> associating
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.9335] device (wls4): supplicant interface state: associating -> associated
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.9649] device (wls4): supplicant interface state: associated -> 4-way handshake
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.9718] device (wls4): supplicant interface state: 4-way handshake -> completed
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.9722] device (wls4): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Connected to wireless network "SchuyNet_2.4GHz"
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.9757] device (wls4): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
Mar 17 17:18:40 tarbosaurus NetworkManager[553]: <info> [1616015920.9769] dhcp4 (wls4): activation: beginning transaction (timeout in 45 seconds)
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <warn> [1616015965.9584] dhcp4 (wls4): request timed out
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <info> [1616015965.9585] dhcp4 (wls4): state changed unknown -> timeout
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <info> [1616015965.9587] device (wls4): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <info> [1616015965.9598] manager: NetworkManager state is now DISCONNECTED
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <warn> [1616015965.9619] device (wls4): Activation: failed for connection 'Auto SchuyNet_2.4GHz'
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <info> [1616015965.9625] device (wls4): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <info> [1616015965.9833] dhcp4 (wls4): canceled DHCP transaction
Mar 17 17:19:25 tarbosaurus NetworkManager[553]: <info> [1616015965.9837] dhcp4 (wls4): state changed timeout -> done
Mar 17 17:19:26 tarbosaurus NetworkManager[553]: <warn> [1616015966.0010] sup-iface[0x55e77a0a8100,wls4]: connection disconnected (reason -3)
Mar 17 17:19:26 tarbosaurus NetworkManager[553]: <info> [1616015966.0016] device (wls4): supplicant interface state: completed -> disconnected
This was written using Bluetooth connection to my cell phone hotspot. I'm impressed that worked.