我們需要確保主機正確列舉已連線的 Fuchsia CDC 裝置,且設定正確無誤。
主辦人是否看得到裝置?
首先要判斷主機的 USB 堆疊是否知道 Fuchsia 裝置。如果沒有,則表示沒有可設定的網路介面。Google 的公開 USB 供應商 ID (VID) 為 0x18d1
,所有 Fuchsia USB 裝置 (CDC 或其他) 都會使用這個 ID。
Fuchsia 裝置的產品 ID (PID) 範圍為 0xa000-0xafff
。使用 lsusb
指令判斷主機是否看到任何透過 USB 連接的 Fuchsia 裝置,這會回報任何已連接裝置的 VID:PID 元組。
在輸出內容中尋找提及 Google Inc. CDC Ethernet 的項目。例如:
您可能會看到其他結果,對應的 Google 產品 PID 超出 Fuchsia PID 範圍。
注意:PID=0xa025
部分產品設定不會在列舉的 Fuchsia USB 裝置中公開 CDC 介面。
如果設定僅包含 adb
,PID 會是 0xa025
。如果看到 PID 為 0xa025
的 Fuchsia 裝置,表示該裝置刻意不含 CDC 介面,因此沒有對應的網路介面可供設定。
CDC 介面是否已正確命名?
Fuchsia CDC 網路介面應命名為類似 zx-XXXXXXXXXXXX
,實際介面名稱代表介面的 MAC 位址。
您必須有能正確偵測及命名 Fuchsia CDC 介面的設定。目前,紫紅色來源樹狀結構包含一個 Puppet 指令碼,可供支援該指令碼的機器執行,詳情請參閱這裡。如要進行這項設定,您必須使用 NetworkManager
、Puppet,並執行類似 Debian 的 Linux 發行版本。如果所有條件都符合,您可以使用下列指令執行上述指令碼:
curl -s 'https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/scripts/puppet/networkmanager-cfg.pp?format=TEXT' | base64 -d | sudo puppet apply
您可以使用下列指令確認介面是否存在:
ip -6 --oneline addr | grep 'zx-'
這會尋找前置字串為「zx-」的 IPv6 介面,並應顯示類似下列的結果:
bash$ ip -6 --oneline addr | grep 'zx-'
7: zx-c863147051da inet6 fe80::ca63:14ff:fe70:51da/64 <snip>
介面是否已指派 Fuchsia CDC 設定檔?
簡單來說,本機 NetworkManager 服務應使用連結本機 IPv6 位址設定介面,且不嘗試取得 DHCP 租約。這項設定位於 Fuchsia CDC NetworkManager 連線設定檔中。確認 CDC 介面是否正在套用設定檔。使用 nmcli conn show
指令確認已指派正確的設定檔。
nmcli conn show
在 Fuchsia-CDC 設定檔列中,您應該會看到 CDC 介面。UUID 是不重要的不透明 ID。
bash$ nmcli conn show
NAME UUID TYPE DEVICE
...
Fuchsia CDC 25b512f5-70e0-4fd3-9bc2-34432a01bc80 ethernet zx-c863147051da
...
Fuchsia CDC 設定檔會使用 IPv6 連結本機位址設定主機端介面,這些位址位於 fe80::/10
網路。使用 ip 指令進行驗證。
bash$ ip -6 --oneline addr | grep 'zx-'
7: zx-c863147051da inet6 fe80::ca63:14ff:fe70:51da/64 <snip>
其中,位址 fe80::ca63:14ff:fe70:51da
是主機端網路介面的連結本機位址。請注意,這並非已連線 Fuchsia CDC 裝置的位址。