本指南說明如何在執行合適 Workbench 映像檔的裝置上,手動測試暫停和恢復功能。
手動暫停及恢復
含序號
透過 USB 連接裝置。
透過
ffx power的輔助元件取得應用程式活動租約:ffx power suspend prevent捨棄工作階段喚醒租約:
ffx session drop-power-lease中斷 USB 連線,消除 USB 或充電器連線造成的持續喚醒租約。
您可以實際拔除 USB 傳輸線,或者如果裝置支援
cable-breaker,則可在軟體中中斷 USB 連線,並排定透過序列自動重新連線:usb-cli cable-breaker --duration 15s請確保
--duration夠長,足以執行下一個指令,並在 USB 自動重新連線前讓裝置暫停。使用序列,捨棄應用程式活動租約,並在延遲後重新取得:
powerutil suspend prevent --restart --wait-time 5s只要沒有其他有效的喚醒租約,系統就會暫停。
等待序列記錄顯示系統暫停的證據。記錄不一定會在暫停前清除,因此您可能會看到記錄突然停止。
重新連接 USB (或等待
cable-breaker--duration計時器到期,並自動重新連接 USB),或採取其他適當動作 (觸控、按下按鈕等) 恢復裝置。如果--wait-time已過,輔助元件會重新取得應用程式活動租約,並自行防止進一步暫停。
不含序號
透過 USB 連接裝置。
透過
ffx power的輔助元件取得應用程式活動租約:ffx power suspend prevent捨棄工作階段喚醒租約:
ffx session drop-power-lease捨棄應用程式活動租約 (延遲後重新取得),並中斷 USB 連線,以消除 USB 或充電器連線造成的持續喚醒租約:
實體拔除:執行下列指令,並在
--wait-time經過前拔除 USB 傳輸線:ffx power suspend prevent --restart --wait-time 5s使用
cable-breaker:由於ffx power suspend prevent --restart會封鎖至--wait-time結束,請在背景執行,並立即叫用cable-breaker,且--duration長於--wait-time:ffx power suspend prevent --restart --wait-time 5s & ffx component explore /core/usb-policy -c "usb-cli cable-breaker --duration 15s"
等待幾秒鐘。如果沒有序列連線,就必須重新連接 USB,才能確認是否已暫停。
重新連接 USB (或等待
cable-breaker--duration計時器到期,USB 會自動重新連接)。使用
ffx log尋找停權證據。雖然沒有標準訊息可指出這一點,但在撰寫本文時,核心訊息INFO: Suspending non-boot CPUs...是很好的指標。您也可以透過「檢查」查看suspend_stats:ffx inspect show bootstrap/system-activity-governor:root/suspend_stats
疑難排解
查看「cable-breaker」支援
如要檢查裝置是否支援透過 usb-cli cable-breaker 軟體中斷 USB 連線,請確認 /core/usb-policy 會公開 fuchsia.usb.policy.Configuration:
ffx component capability fuchsia.usb.policy.Configuration檢查喚醒租約
只要有任何有效的喚醒租約,系統就無法暫停。如要查看有效的喚醒租約,請按照下列步驟操作:
序號
inspect show bootstrap/system-activity-governor:root/wake_leasesUSB
ffx inspect show bootstrap/system-activity-governor:root/wake_leases增加重新取得喚醒租約前的延遲時間
如要讓系統有更多時間暫停,請使用 --wait-time 選項增加延遲時間:
powerutil suspend prevent --restart --wait-time 10s