dosdude1 / macos-catalina-patcher

macOS Catalina Patcher (http://dosdude1.com/catalina)
GNU General Public License v3.0
424 stars 60 forks source link

macOS Catalina 10.15.7 WiFi Issue #131

Open erikmartens opened 3 years ago

erikmartens commented 3 years ago

Issue:

Cannot connect to wifi networks. An error will be displayed: "The network could not be found".

Screenshot 2020-12-22 at 15 17 43

Also in the system profiler inside the wifi information, there will be a bunch of information missing inside the software versions section. Specifically CoreWLAN, CoreWLANKit and Menu Extra are null. I can only assume that these pieces of software were not installed (correctly).

Screenshot 2020-12-22 at 15 19 19

Troubleshooting done:

yourbizgo commented 3 years ago

Literally just had the same exact thing on the same model doing an upgrade on customer's mac. I've done probably 100 installs of dosdude's patcher and haven't seen this before. Mine actually shows the networks in system info but at the top bar it just goes between looking for networks and wifi: on.

I also verified wifi works in El Capitan on my MacBook Pro 5,5

yourbizgo commented 3 years ago

![Uploading IMG_1965.jpeg…]()

yourbizgo commented 3 years ago

Removing the library preference files worked for my case: https://www.youtube.com/watch?v=lp6BIu4ujlI

erikmartens commented 3 years ago

Removing the library preference files worked for my case: https://www.youtube.com/watch?v=lp6BIu4ujlI

I actually forgot to add this to my troubleshooting list (edited it now). This did not help me and I don't think that is the root of the issue. As per the system report the missing software version indicate the the correct software to run parts of the wifi hardware are missing. That is unrelated to any preferences.

sneakernuts commented 3 years ago

Have the same issue on a 2011 MacBook Air. Restarting seems to help with the issue sometimes. I noticed after waking from sleep, I cannot reconnect to wifi consistently.

mpearson117 commented 3 years ago

I found a cumbersome workaround that works for me on a late 2011 MacBookPro 8.1, maybe someone finds it useful for diagnosing and coming up with a fix. I have a hidden SSID.

  1. Drop to the command line and join manually by typing: sudo networksetup en1
  2. It will try to join but fail, give a -3924 error and a few-3912, but the SSID will show up in the discovered SSID list
  3. Select the SSID in the drop down, now it will prompt for password, enter it.
  4. It will throw an error that it could not join, gives you a Cancel and Diagnostics choice, press Cancel and it joins, stays stable

Tested this a dozen or so times works the same way all the time, I have to repeat the process every time if I reboot or disable/enable wifi. Works but will go back to 10.15.6, hate doing this all the time ...

erikmartens commented 3 years ago

@mpearson117 Thanks for the tip. Did you mean sudo networksetup -setairportnetwork en1 <wifi_ssid> <wifi_password>? (en1 was indeed my wifi-card). Either way it unfortunately does not work for me. I'm getting the error event not found. I tried with <>, "" and nothing to quote my SSID and password (also escaped the spaces in my SSID just in case).

Probably the CLI tool tries to call some ObjC function via the routine handling the actual command, but since the software is not installed (as detailed in my post above), it won't work. Would be fitting since ObjC is message based and it just fails to reach the routine. Anyway, that's just me guessing.

Would be cool if @dosdude1 could look into this one 😃

cwilhelmsen commented 3 years ago

For what it's worth I am seeing the exact same wifi issue on my Late 2011 macbook, same "null" fields. I also attempted the same troubleshooting as @erikmartens and got the same results. I also attempted the network setup but see "Could not find network" there too not the fail that @mpearson117 saw or the event not found @erikmartens saw. I think some software/drivers are missing on the image especially since I was able to connect to my networks when I was the Startup Manager and used " Choose Network..." rather than selecting my SSD or EFI Boot.

bubifengyun commented 3 years ago

Thank you very much. I done like this,

% networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en1)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

(4) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en2)

then I find my wifi Device name is en0,

% sudo networksetup -setairportnetwork en0 <ssid> <password>
cwilhelmsen commented 3 years ago

@bubifengyun That worked for me, I am now able to connect to my wifi network and the setting persisted after a restart so for me it was a successful workaround.

jhallstr commented 3 years ago

Well, the latest comments above gave me courage to try 10.7 install again. I did the Catalina patch (1.4.4) and did the download option for the install, expecting to get build 19H114 or 19H512. To my surprise, my wifi worked without having to do the networksetup command above. I checked and the Catalina build I got was 19H2. Don't know what changed from previous builds, but happy its working. Recommend anyone else still having problems to give it another shot now.

Khaliid1 commented 3 years ago

Same here with my MackBookPor5,3! what fixed mine is going back to 10.15.6. I noticed something about "Country Code" & "Supported Channels" in WIFI info from About This Mac> System Report> WIFI, in 10.15.7 the "Country Code" is not correct! & the "Supported Channels" are different from the 10.15.6! wifi10 15 6

wifi10 15 7

cc @dosdude1

jhallstr commented 3 years ago

Well, look what I found out on the inter-webs: https://betawiki.net/wiki/MacOS_Catalina_build_19H2 It explicitly says that build 19H2 fixed the Wifi issue with Catalina!

Cyaneum commented 3 years ago

@mpearson117 Thanks for the tip. Did you mean sudo networksetup -setairportnetwork en1 <wifi_ssid> <wifi_password>? (en1 was indeed my wifi-card). Either way it unfortunately does not work for me. I'm getting the error event not found. I tried with <>, "" and nothing to quote my SSID and password (also escaped the spaces in my SSID just in case).

Probably the CLI tool tries to call some ObjC function via the routine handling the actual command, but since the software is not installed (as detailed in my post above), it won't work. Would be fitting since ObjC is message based and it just fails to reach the routine. Anyway, that's just me guessing.

Would be cool if @dosdude1 could look into this one 😃

I was able to connect to a hidden SSID network using Terminal:

sudo networksetup -setairportnetwork en1 <wifi_ssid> <wifi_password>

In my case, the SSID (network name) had a space in it, which for some reason might be an issue in Catalina Patcher...so the SSID had to be in quotes, but not the password (I'm on 10.15.7, Macbook Pro 7,1, everything is running well now!). See the reference here:

https://superuser.com/questions/286457/connect-to-wifi-network-using-mac-terminal

Previously, tried several fixes, including resetting the network settings by deleting plist files (Be sure to make a back-up of the files! https://macreports.com/how-to-reset-network-settings-on-mac/) and doing the Post-Install of the legacy Wifi patch (~Min 19:30 of the video: https://osxdaily.com/2019/11/08/howto-install-macos-catalina-unsupported-mac-dosdude/)

Good Luck

spacec0w2 commented 3 years ago

I have tried with latest 19H2 build just downloaded, with 1.4.4 patcher, and eliminating preferences and repatching, from within system and from recovery USB. The problem persists, in MacBook Pro 5,5 (2009). The same model (for another customer) has given me issues with this before, and is the only one to have done so. Also other comments mention this model, I wonder if it is something specific to this one in particular.

yourbizgo commented 3 years ago

Removing the library preference files worked for my case: https://www.youtube.com/watch?v=lp6BIu4ujlI

I actually forgot to add this to my troubleshooting list (edited it now). This did not help me and I don't think that is the root of the issue. As per the system report the missing software version indicate the the correct software to run parts of the wifi hardware are missing. That is unrelated to any preferences.

Does removing the PLIST files cause it to reload the software files or refresh the files? That was my guess. I removed all files in that folder related to networking and wifi to resolve my 2009 wifi issue when this occurred.

spacec0w2 commented 3 years ago

Removing the library preference files worked for my case: https://www.youtube.com/watch?v=lp6BIu4ujlI

I actually forgot to add this to my troubleshooting list (edited it now). This did not help me and I don't think that is the root of the issue. As per the system report the missing software version indicate the the correct software to run parts of the wifi hardware are missing. That is unrelated to any preferences.

Does removing the PLIST files cause it to reload the software files or refresh the files? That was my guess. I removed all files in that folder related to networking and wifi to resolve my 2009 wifi issue when this occurred.

My experience just earlier today this also did not help (removed all network related .plist files as recommended by the video).

spacec0w2 commented 3 years ago

Just an update, it seems like my problem was actually fixed with 10.15.7 19H15 (downloaded with MDS). I didn't notice because the wi-fi was sometimes working right before, and I was just looking in system profile, Wi-FI. I was waiting to see the entries with NULL changed, but then I checked another computer, (iMac 24" 2009), with same Catalina hack, and saw that it also had the same issue. And on that computer the wi-fi works fine. Will keep testing and update here if something changes.

itsalb3rt commented 3 years ago

Thank you very much. I done like this,

% networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en1)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

(4) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en2)

then I find my wifi Device name is en0,

% sudo networksetup -setairportnetwork en0 <ssid> <password>

Thanks!!!

Any way to add wifi with hide ssid and no password ? like "my wifi"

famousfilm commented 3 years ago

If you hate manually reconnecting, and you know your router's IP Address and it supports ping, I wrote this script to ping my local router every 2 seconds and connect. If a connection gets established, it checks every 10 seconds to make sure it's still connected. It gives up after 15 failed attempts.

This isn't in any way secure: you're putting passwords in plain text. Use it at your own risk.

Open a terminal (click on Spotlight Search and type "terminal") and do the following (replacing "YourUsername" with your username):

This will create the script: touch /Users/YourUsername/wifiping.sh

This will make it executable: chmod 711 /Users/YourUsername/wifiping.sh

Use a text-editor like "TextEdit" (find it using Spotlight Search) to open wifiping.sh and copy-paste this script into it. You need to change all the settings at the top to match your device, wifi ssid, wifi password, sudo password, and router IP address. Again, your router must support pinging it. You could use google's address - 8.8.8.8 - instead, but that would also be checking your internet connection, not just if you are connected to your router, and I wouldn't recommend doing that.

#!/bin/bash

attempts=0
devicename='en0'  # Wi-Fi "Device" from `networksetup -listnetworkserviceorder`
ssid='MyWifiName'
wifi_password='MyWifiPassword'
sudo_password='MySuperUserPassword'
router_address='192.168.1.XXX'  # 8.8.8.8 for google's server if your router doesn't allow ping

while [ $attempts -le 15 ];
    do
        ping -c 1 -t 2 ${router_address} &> /dev/null;
        if 
            [ $? -ne 0 ];
        then
            attempts=$((attempts+1));
            echo "attempt ${attempts} to connect to ${ssid}";
            echo ${sudo_password} | sudo -S networksetup -setairportnetwork ${devicename} ${ssid} ${wifi_password};
        else
            echo 'wifi-ok';
            attempts=0;
            sleep 10; 
        fi
    done
echo "wifi monitor had 15 attempts failed. Exiting.";
exit 0;

Now, we need to add that script to launch control so it will run automatically.

Use "TextEdit" and create a new file. Copy-paste this into it. Replace "YourUsername" with your username.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>ProgramArguments</key>
   <array><string>/Users/YourUsername/wifiping.sh</string></array>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

Save that file to /Users/YourUsername/Library/LaunchAgents/com.user.wifimonitor.plist

In the terminal, type this and hit return; it tells launch control to run it. launchctl load ~/Library/LaunchAgents/com.user.wifimonitor.plist

Log out, log back in. You should be g2g.

top-master commented 3 years ago

I posted what worked for me as Post-install Wi-Fi fix (feature request).

I was just checking for duplicates and found this thread (so, someone please check if that fixes this issue as well).

namrehcram commented 3 years ago

This Wi-Fi fix worked for me!

gcgspain commented 3 years ago

I posted what worked for me as Post-install Wi-Fi fix (feature request).

I was just checking for duplicates and found this thread (so, someone please check if that fixes this issue as well).

This has fixed it on a mid 2010 macbook pro, dirty install. Thanks!!

mhyzon commented 3 years ago

I was having this problem on a MacBook5,2. wiping the plists didn't seem to work for me. However, I went in to System Preferences > Network, removed the WiFi device (pressed the little - button on the bottom left), then added it back again. Hit Apply, and then was able to join the network

jele826 commented 3 years ago

I am having an issue with the wifi saying it is turned on but is not connected to a network. There are no networks found after installing the Catalina 10.15.7 patcher on a Mid 2009 MacBook5,2. In addition to that, the brightness buttons on F1 & F2 do not work nor does the display brightness slider. Has anyone found a fix for these issues? Thanks!!

jele826 commented 3 years ago

I am having an issue with the wifi saying it is turned on but is not connected to a network. There are no networks found after installing the Catalina 10.15.7 patcher on a Mid 2009 MacBook5,2. In addition to that, the brightness buttons on F1 & F2 do not work nor does the display brightness slider. Has anyone found a fix for these issues? Thanks!!

Trashing the following files and restarting the Mac fixed both the WiFi and display brightness issues. They are now working!!!

Path: /Library/Preferences/SystemConfiguration/

com.apple.airport.preferences.plist com.apple.network.identification.plist preferences.plist preferences-pre-upgrade-source.plist NetworkInterfaces-pre-upgrade-source.plist NetworkInterfaces.plist preferences-pre-upgrade-new-target.plist NetworkInterfaces-pre-upgrade-new-target.plist com.apple.wifi.message-tracer.plist com.apple.network.eapolclient.configuration.plist

Thanks to HowToiSolve's YouTube video: https://www.youtube.com/watch?v=lp6BIu4ujlI

Plagg06 commented 3 years ago

If you hate manually reconnecting, and you know your router's IP Address and it supports ping, I wrote this script to ping my local router every 2 seconds and connect. If a connection gets established, it checks every 10 seconds to make sure it's still connected. It gives up after 15 failed attempts.

This isn't in any way secure: you're putting passwords in plain text. Use it at your own risk.

Open a terminal (click on Spotlight Search and type "terminal") and do the following (replacing "YourUsername" with your username):

This will create the script: touch /Users/YourUsername/wifiping.sh

This will make it executable: chmod 711 /Users/YourUsername/wifiping.sh

Use a text-editor like "TextEdit" (find it using Spotlight Search) to open wifiping.sh and copy-paste this script into it. You need to change all the settings at the top to match your device, wifi ssid, wifi password, sudo password, and router IP address. Again, your router must support pinging it. You could use google's address - 8.8.8.8 - instead, but that would also be checking your internet connection, not just if you are connected to your router, and I wouldn't recommend doing that.

#!/bin/bash

attempts=0
devicename='en0'  # Wi-Fi "Device" from `networksetup -listnetworkserviceorder`
ssid='MyWifiName'
wifi_password='MyWifiPassword'
sudo_password='MySuperUserPassword'
router_address='192.168.1.XXX'  # 8.8.8.8 for google's server if your router doesn't allow ping

while [ $attempts -le 15 ];
    do
        ping -c 1 -t 2 ${router_address} &> /dev/null;
        if 
            [ $? -ne 0 ];
        then
            attempts=$((attempts+1));
            echo "attempt ${attempts} to connect to ${ssid}";
            echo ${sudo_password} | sudo -S networksetup -setairportnetwork ${devicename} ${ssid} ${wifi_password};
        else
            echo 'wifi-ok';
            attempts=0;
            sleep 10; 
        fi
    done
echo "wifi monitor had 15 attempts failed. Exiting.";
exit 0;

Now, we need to add that script to launch control so it will run automatically.

Use "TextEdit" and create a new file. Copy-paste this into it. Replace "YourUsername" with your username.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>ProgramArguments</key>
   <array><string>/Users/YourUsername/wifiping.sh</string></array>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

Save that file to /Users/YourUsername/Library/LaunchAgents/com.user.wifimonitor.plist

In the terminal, type this and hit return; it tells launch control to run it. launchctl load ~/Library/LaunchAgents/com.user.wifimonitor.plist

Log out, log back in. You should be g2g.

hi I tried this but it keeps saying invalid property code - can you please recheck the automation code (the second one)

ballo commented 2 years ago

My symptoms are I cannot list any SSIDs via the wifi menu (or system prefs). Using the command line networksetup -setairportnetwork en0 ssid password worked for me, but this is highly impractical for using the laptop on the road.

Does anyone have any suggestions?

ballo commented 2 years ago

Curiously, I can scan for networks via this command: System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport scan I just can't use the wifi menu or system preferences. Huh

Edit: deleting the prefs fixed the problem, but I lost my preferred networks.

razieve commented 2 years ago

Thank you very much. I done like this,

% networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en1)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

(4) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en2)

then I find my wifi Device name is en0,

% sudo networksetup -setairportnetwork en0 <ssid> <password>

just by chaning < to " it works for me thank you

bubifengyun commented 2 years ago

Thank you very much. I done like this,

% networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en1)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

(4) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en2)

then I find my wifi Device name is en0,

% sudo networksetup -setairportnetwork en0 <ssid> <password>

just by chaning < to " it works for me thank you

Sorry to mislead you. I mean that is your ssid name. and are variable. char <,> ,needless to print.

cvdy commented 2 years ago

Thank you very much. I done like this,

% networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en1)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

(4) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en2)

then I find my wifi Device name is en0,

% sudo networksetup -setairportnetwork en0 <ssid> <password>

Fixed the issue I was having with Wi-Fi refusing to reconnect after inactivity on my Early 2009 iMac. I do wonder why it doesn't like to connect via System Preferences, though.

ja-tomasz commented 1 year ago

In my case installing 19H15 solved the problem

OddyDee commented 1 year ago

I don't have wi-fi interface

 % networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en0)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en3)

(4) Thunderbolt Bridge
(Hardware Port: Thunderbolt Bridge, Device: bridge0)