用 USB 連接到電腦,並開啟數據共用
連接到電腦後,進入「設定」→「更多」→「網路共用與可攜式無線基地台」,並開啟「USB 網路共用」如果 「USB 網路共用」有可能有幾個問題:
- 誤開啟了 「USB 偵錯模式」或不是使用 「MTP 協定」與電腦連結。
- 使用充電用而非能傳輸數據用的 USB
設定網路連線
前面沒有問題之後,就可以按照原本使用的網路連線方式連線,使用的連線方式為 dhcp。ArchLInux 常用的 netctl-ifplugd 沒辦法熱拔插手機,只能利用 systemd-networkd.service 設定。
利用 udev 和 systemd-networkd 自動連線
可以在開啟「 USB 網路共用」後自動設定連線,並在關閉後取消。編寫 udev 網路共用規則:
/etc/udev/rules.d/90-android-tethering.rules
# Execute pairing program when appropriate ACTION=="add|remove", SUBSYSTEM=="net", ATTR{idVendor}=="18d1" ENV{ID_USB_DRIVER}=="rndis_host", SYMLINK+="android", RUN+="/usr/bin/systemctl restart systemd-networkd.service"
其中的 idVendor 可藉由下列指令確定(假設手機的網卡為 enp0s26u1u2):
$ udevadm info /sys/class/net/enp0s26u1u2
會看到一行如 E: ID_VENDOR_ID=18d1 的資訊
接著設定相對應的 systemd-networkd 檔案:
/etc/systemd/network/50-enp0s26u1u2.network
[Match] Name=enp0s26u1u2 [Network] DHCP=ipv4
詳細資料可見:Android tethering - ArchWiki
--
越來越想換到 github 上了…這次只是暫時記錄…