降速總在休眠喚醒後 Sequoia

原文:我和我的黑蘋果 Rose Huang

  • no Appleintali210Ethernet.kext
  • no AMFIpass
  • no IOSkywalkFamily
  • no 1080211FamilyLegacy
  • no Block com.apple.iokit.lOSkywalkFamily

當上面 5個No改為YES,且使用OCLP Patched,情況改變了,Block了IOSkywalkFamily,改用了舊版的驅動就等於使用com.apple.driver.AppleIntelI210Ethernet KEXT模式來驅動i255,造成了休眠/喚醒後,LAN速度變成了100baseT, 手動停用/啟用可以回到1000baseT,每次喚醒都得做,太累了…….

要借用Sleepwatcher 的blueutil ,當它被觸發時順道執行停用/啟用LAN port
在/Users/XXXX/.sleep 下

1.複制rc.sleep及rc.wakeup 並改名為original_rc.sleep 及original_rc.wakeup
2.rc.sleep內容改為下面,並存檔
#!/bin/bash
~/.sleep/original_rc.sleep
3.rc.wakeup內容改為下面,並存檔

#!/bin/bash

sudo ifconfig en0 down

~/.sleep/original_rc.wakeup

4.把下面的內容貼到original_rc.wakeup的最下面,並存檔

sudo ifconfig en0 up

# 指定要檢查的接口

INTERFACE=$(networksetup -listallhardwareports | grep -A 1 "Hardware Port: Ethernet" | grep "Device:" | awk '{print $2}')

# 等待 8 秒
sleep 8
# 獲取當前時間
RECONNECT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
# 查詢接口狀態
STATUS=$(ifconfig $INTERFACE | grep "status" | awk '{print $2}')
LINK_SPEED=$(ifconfig $INTERFACE | grep "media" | awk -F'[()]' '{print $2}' | awk '{print $1}')
# 輸出結果
if [ "$STATUS" == "active" ]; then
log "$INTERFACE Status: active, Reconnect time: $RECONNECT_TIME, Link Speed: $LINK_SPEED"
else
log "$INTERFACE Status: inactive, Disconnect time: $RECONNECT_TIME"
fi

5.因為使用 SUDO命令需要輸入密碼,所以要設定在執行sudo ifconfig en0 up/down 免密碼

5.1 sudo visudo (如果出現Swap file “/etc/.sudoers.tmp.swp” already exists!,再輸入 e)

5.2 移到最下方,輪入 I (會出現— INSERT —)

貼上

你的user name ALL=(ALL) NOPASSWD: /sbin/ifconfig en0 down

你的user name ALL=(ALL) NOPASSWD: /sbin/ifconfig en0 up

5.3 按escape, 按: ,再輸入 wq ( 寫入離開)

6.這樣使用com.apple.driver.AppleIntelI210Ethernet驅動i225 喚醒降速的問題就自動解決了(以下為增加喚醒後網卡速度的sleepwatcher.log )

Sleep at 2024-10-31 15:42:29

Bluetooth on, Stopping …

Successfully stopped Bluetooth

Wakeup at 2024-10-31 15:43:35

Bluetooth is off, Starting Bluetooth…

en0 Status: active, Reconnect time: 2024-10-31 15:43:44, Link Speed: 1000baseT

上一篇