跳至主要内容

macOS 主機注意事項

當您的主機是 macOS,並且您想執行 Neat 開發環境(稱為 Neat SDK),請參考本指南,並搭配使用 DevKit-Sync。

先決條件

  • macOS 主機。
  • 已在主機上安裝 sima-cli
  • Modalix 和 DevKit 可以在同一個網路中互相連線。
網路拓撲結構

在 macOS 上,您可以透過 USB/乙太網路將 DevKit 直接連接到主機,或者將主機和 DevKit 分開放置在現有的網路中。如果它們位於現有的網路中,只要主機和 DevKit 能夠互相連線以進行 SSH 和 NFS 流量傳輸,就不需要進行任何特殊的共享設定。

安裝並執行 Colima。

安裝並啟動 Colima,以便在 macOS 上執行 Docker 工作負載。

brew install colima docker
colima start
docker ps

如果 Colima 已經安裝好,請在執行 sima-cli sdk setup 之前,確認它正在執行。

macOS 上的 NFS 權限

DevKit-Sync 在 SDK 設定期間使用主機 NFS 匯出。在 macOS 上,請確保 nfsd 具有「完整磁碟存取」權限,否則主機工作區的匯出/掛載可能會失敗。

步驟:

  1. 開啟「系統設定」。
  2. 前往「隱私權與安全性」>「完整磁碟存取」。
  3. 點擊 +,然後按下 Cmd + Shift + G,並輸入 /sbin/
  4. 選取 nfsd,並確認已允許其使用。
  5. 在授權後重新執行 SDK 設定。

透過網路共享,建立 Mac 與 DevKit 之間的直接連線。

當 DevKit 無法直接連接到您的正常網路,且必須透過直接的 USB/乙太網路連接到您的 Mac 才能存取網際網路時,請使用此流程。

  1. 在 DevKit 上,將已連接的網路介面設定為 DHCP(這通常是預設設定)。
  2. 在 macOS 上,請開啟「System Settings > General > Sharing > Internet Sharing」。
  3. 將「分享連線來源」設定為 Wi-Fi
  4. 啟用與連接至 DevKit 的 USB/乙太網路轉接器介面的資料共享功能。
  5. 在 Mac 裝置上,請確認 USB/乙太網路轉接器的介面也已設定為使用 DHCP

啟用網際網路共用功能後,Mac 上的作用中 USB/乙太網路介面應會收到一個位址(例如 en0en1,具體取決於您的配接器和主機設定)。

在 DevKit 上進行 DNS 解決方案的調整。

在這種直接連線情境中,即使 DHCP 成功,DevKit 上的 DNS 可能仍然設定錯誤。如果名稱解析失敗,請更新 DevKit 上的 /etc/resolv.conf

sudo nano /etc/resolv.conf

設定:

nameserver 8.8.8.8
nameserver 127.0.0.1

使用 Colima UDP 轉發功能來排除 Insight 影片播放問題。

如果 Insight 在瀏覽器中開啟,但即時影片沒有顯示,則可能是 UDP 封包無法傳送到 SDK 容器。在 macOS 上使用 Colima 時,如果 Colima 使用 SSH 端口轉發,可能會發生這種情況。Docker 仍然可以顯示預期的 UDP 端口映射,但 Colima 的主機到虛擬機的轉發路徑可能無法將 UDP 流量傳送到容器中。

SDK 通常會發布以下 UDP 範圍:

  • 用於影片的 9000-9079/udp
  • 用於元資料的 9100-9179/udp
  • 針對 WebRTC 的 40000-40199/udp

如果 SDK 容器正在執行,並且存在這些 UDP 映射,請檢查 Colima 端口轉發器。SSH 轉發僅支援 TCP,而 gRPC 轉發則支援 TCP 和 UDP。

重新設定 Colima 以使用 gRPC 轉發:

colima stop
colima start --edit

在編輯器中,變更:

portForwarder: ssh

致:

portForwarder: grpc

然後重新啟動 SDK:

sima-cli sdk stop
sima-cli sdk start
sima-cli sdk neat

驗證 Docker 是否仍然會發布 UDP 埠:

docker ps --format 'table {{.Names}}\t{{.Ports}}'

確認 SDK 容器是否列出 9000-9079/udp9100-9179/udp,以及 WebRTC UDP 範圍。

在傳輸視訊時,檢查 Insight 是否能偵測到來自 SDK 內部的傳入封包:

curl -k 'https://127.0.0.1:9900/api/ingest/stats?all=1&verbose=1'

請檢查預期的通道上,packets_received 是否有增加。請確認傳送端是否以 Mac 主機的 IP 位址和正確的 UDP 連接埠為目標,而不是 SDK 容器的 IP 位址。通道 0 使用 UDP 9000,通道 1 使用 UDP 9001,依此類推。

如果將 Colima 切換為 gRPC 轉發後,UDP 仍然無法傳送到 Insight,請使用 Docker Desktop 或 Linux 主機進行測試。在這種情況下,SDK 和 Docker 的連接埠映射很可能正確,剩下的可疑層級可能是 Colima 的 macOS UDP 轉發路徑。

下一步

傳回 Neat SDK,繼續進行安裝/設定。