對數位遊牧的人來說網路分享的能源消耗在移動過程中是個需要留意的問題,自從換了 M1 的 Mac 之後,雖然電腦的續航力大增,但是因為沒辦法再使用 Android 手機進行網路分享,反而讓手機電力變成瓶頸,而且 wifi 基地台分享的方式產生的熱相當高,對手機也會有比較大的傷害,前陣子長時間這樣子使用經常導致手機過熱而被迫中斷網路導致會議斷掉或是必須暫時停工,於是今天決定卯起來研究到底要怎麼搞才可以在 M1 上面使用 HoRNDIS 進行 USB tethering,還好努力了一個早上總算是成功了🤘🤘🤘
以下的方式是可以透過自己把 package 編譯出來安裝的方式,比較不會有下載不明來源檔案的風險,如果懶得自己編譯可以跳到最下面的參考資料
M1 解決了電腦續航力的需求,但網路續航力反而變成瓶頸 🤣
警告:接下來的步驟會降低系統的安全性限制,且需要基本程度的開發能力,至少對終端機與輸入指令必須不感到排斥
步驟一、調整安全性設定
- 關閉 mac
- 輕按電源鍵打開 mac,再按住電源鍵不放,會進入 system recovery 模式,如果沒有成功進入可能是沒有按好,可重開再嘗試看看
- 選擇「Options」並繼續
- 選擇「Utilities」然後按「Startup Security Utility」
- 登入帳號
- 選項當中,選擇「Reduced Security」並勾選其他兩個項目,按下OK
這個步驟會讓有簽署的系統軟體可以使用 kernel extension,第二個選項有可能可以不用勾選,需要再測試看看
7. 從選單按下 「Quit Startup Security」 離開畫面,並打開「terminal」
8. 變更 SIP (System Integrity Protection) 的設定
csrutil enable --without kext
按下 y 然後 enter
9. 關閉 terminal 並重開 mac
步驟二、安裝 HoRNDIS
> git clone https://github.com/thpryrchn/HoRNDIS.git -b BigSur
2. 如果已經有安裝 xcode,直接 build,沒有的話請去下載安裝
> cd HoRNDIS
> make
成功的話應該會看到一大串字包含,如果失敗的話可以留言或是在參考資料 [2] 的 github issue 裡面回報
...
** BUILD SUCCEEDED **
...
3. 移動到 HoRNDIS/build/pkg,並打開 HoRNDIS-kext.pkg
4. 安裝並透過 security preference 授予權限
5. 重新開機
6. 檢查是否正常運作,連接 android 手機打開 usb tethering
> kextstat | grep
HoRNDIS Executing: /usr/bin/kmutil showloaded No variant specified, falling back to release > ping google.com 64 bytes from xx.xx.xx.xx: icmp_seq=0 ttl=54 time=21.439 ms 64 bytes from xx.xx.xx.xx: icmp_seq=1 ttl=54 time=46.620 ms
參考資料