我可以在哪裡與開發人員對話?
所有 Chromium OS 開發討論都會在 Chromebook 產品討論社群進行。歡迎提出任何問題,但請務必先搜尋,確認是否已有解答。
我可以在哪裡提出功能要求?
這項專案才剛起步,我們還有許多工作要處理,因此建議您暫緩申請,等 ChromeOS 推出幾個版本後再回來查看。
在此期間,歡迎透過上述郵寄清單進行討論/提問。
等我們進入更穩定的狀態後,您就可以使用 Issue Tracker。詳情請參閱下一個問題。
我可以在哪裡回報錯誤?
請先確認你使用的是最新開發管道。目前仍有許多工作正在進行中。
接著,請確認問題是否為已知問題或已修正。您可以查看現有錯誤清單。
如果仍想提供意見回饋,可以提交意見回饋報告,並在說明中加入 #crostini (ChromeOS 上的 Linux 的別名)。如要回報 ChromeOS 任何部分的意見,請按下 alt+shift+i。
如果仍想向開發人員回報錯誤,請使用這個連結,將問題轉給適當的人員。
為什麼稱為 Crostini?
這是 crouton 的衍生版本,可為開啟開發人員模式的使用者輕鬆建立完整的 Linux 環境 (包括開發人員工具)。Crostini (ChromeOS 上的 Linux) 的目標是滿足 crouton 涵蓋的大多數用途,而且比 crouton 更大、更美味,因此得名。
Crostini (ChromeOS 上的 Linux) 與 Crouton 有何關聯?
crouton 協助定義了開發人員想在 ChromeOS 上使用的許多案例,因此從需求的角度來看,這項工具有助於引導 ChromeOS 上的 Linux。我們希望確保大多數 crouton 使用者都能在 ChromeOS 上使用 Linux,以滿足自身需求,同時享有安全無虞的環境。
因此 crouton 啟發了 ChromeOS Linux 的發展方向,但兩者之間並未共用或重複使用任何程式碼。Crouton 並不差,只是完全不同的模型。
何時會支援我的裝置?
我們目前不會發布本文件以外的任何資訊。如果您的裝置未列在 Chromium OS 官方文件「裝置支援」部分,表示我們尚未針對該特定裝置做出任何可公開的決定。
因此請勿向我們索取裝置支援路線圖,因為我們沒有這類資訊。
我需要啟用開發人員模式嗎?
您不必啟用開發人員模式 (啟動時會看到 OS 驗證已關閉的警告畫面)。這些功能都經過設計,可在系統以正常/已驗證模式運作時安全執行。
部分裝置可能需要切換至開發人員管道,但這與開發人員模式完全無關。
我是否在 ChromeOS 上執行 Linux?
如果您使用我們提供的預設容器中的 Terminal 應用程式或程式,包括我們為簡化整合作業而提供的程式 (例如 Sommelier),則可以。
如果您是執行自己的容器或 VM,則否。
為什麼要執行 VM?容器不是安全無虞嗎?
雖然容器通常會自行隔離 (透過 Linux 命名空間),但不會隔離核心或類似的系統資源。也就是說,只要核心出現單一錯誤,系統就會遭到全面入侵,您的資料也會被竊取。
這對 ChromeOS 來說不夠好,因此我們將所有內容都放在 VM 中。現在您必須透過 crosvm,而 crosvm 本身受到嚴格的沙箱化限制。
詳情請參閱官方 Chromium OS 文件的「安全性」一節。
如何在 ChromeOS 與容器之間共用檔案?
ChromeOS 檔案應用程式的「Linux 檔案」下方,可存取 ChromeOS 預設 Linux 容器的儲存空間。您可以使用 Secure Shell 設定 SFTP 掛接至其他遠端容器,然後透過「檔案」應用程式瀏覽。
容器未執行時,我是否可以存取檔案?
目前容器必須處於執行狀態,才能存取內容。從「檔案」應用程式存取「Linux 檔案」時,系統會自動啟動 ChromeOS 上的預設 Linux 容器。
我可以安裝自訂核心模組嗎?
目前不行,Termina 不支援模組。也就是說,如果軟體需要建構或載入自訂核心模組 (例如 VirtualBox),就無法正常運作。請參閱下一個問題。
我可以在 VM 內執行 VM 嗎?
部分 ChromeOS 裝置支援巢狀虛擬化,因此可支援 Android 模擬器。此外,您也可以執行 qemu-system 來模擬硬體,並在其中啟動任何想要的 OS。很抱歉,由於 QEMU 無法使用 KVM 進行硬體加速,因此速度會相當緩慢。
我可以在 ChromeOS 的 Linux 容器中執行 Docker 容器或其他容器嗎?
當然可以!您可能需要先安裝相關套件,才能執行任何容器格式。
我的系統適用哪種架構?
Linux 容器架構會與裝置架構相符。您可以透過兩種方式找出該值:
- 在新分頁中前往 chrome://settings/help/details,查看「平台」,然後將主機板名稱與我們的公開裝置清單比對。查看「User ABI」欄位,瞭解您使用的 CPU 類型。
- 開啟 crosh 並執行
uname -m。這會列印目前裝置的架構。
如果看到 x86_64,您就能執行為 Intel/AMD 編譯的程式碼 (32 位元/64 位元/x32 應該都能運作)。
如果看到 arm (或類似的 armv7l) 或 aarch64,就能執行為 ARM/ARM64 編譯的程式碼。
我可以執行其他架構嗎?
目前系統尚未整合相關支援,因此無法在 Intel 系統上執行 ARM 程式碼,反之亦然。您可以自行處理這項作業 (例如使用 qemu-user),但如果您熟悉 qemu-user,應該早就知道這點。
登出後,程式可以繼續執行嗎?
不對!所有 VM (和容器) 都會與登入工作階段綁定。登出後,所有程式都會依設計關閉/終止。
由於所有資料都儲存在加密的住家中,我們不希望您登出時可能發生資料外洩。
詳情請參閱官方 Chromium OS 文件的「安全性」一節。
登入時可以自動執行程式嗎?
不對!所有 VM (及其容器) 都必須手動重新啟動。這有助於防止持續性攻擊。
詳情請參閱官方 Chromium OS 文件的「安全性」一節。
我可以在開機時自動執行程式嗎?
不對!查看先前的問題。
我可以為容器設定環境變數嗎?
好的!做法如下:
- 您可以在 environment.d 中設定
systemd --user工作階段的環境變數,包括「終端機」和所有 GUI 應用程式。您可能需要使用較新的容器 (Debian 10「buster」),才能使用這種方法。 - 如果只想在 Terminal 中使用環境變數,請在殼層的設定檔 (例如
~/.bashrc或~/.zshrc) 中設定這些變數。
環境變數變更只會對新啟動的程式生效。您可能也需要重新啟動程式或整個容器,變更才會生效。
是否支援多重設定檔?
否,終端機僅支援主要設定檔 (*)。我們的目標是為主要設定檔提供功能齊全且流暢的體驗,並避免在次要設定檔中發生當機或問題。我們不打算為次要付款資料提供更多功能。
如果您不熟悉多重設定檔支援功能,請參閱一般多重設定檔說明文件,瞭解更多詳細資料。
(*):所有次要設定檔都會停用「終端機」應用程式。使用者可以透過 crosh 和其中的容器手動啟動 VM,但使用者介面和「檔案」應用程式可能不會自動整合。
系統是否支援子帳戶?
不行,Terminal 不支援兒童帳戶。我們目前沒有為這類帳戶提供這項功能的計畫。
如果您不熟悉兒童帳戶,請參閱兒童帳戶一般說明文件瞭解詳情。
我的 VM/容器/資料是否已同步/備份?
最終,您必須對容器中的所有資料負責。如要輕鬆在電腦之間同步處理專案資料夾等資料,可以在 Linux 中共用雲端硬碟資料夾。新增至該資料夾的任何內容都會備份到雲端硬碟,並在裝置間同步。
如何備份 VM?
最簡單的方法是使用 ChromeOS 內建的全新備份功能。如要這麼做,請前往「設定」,然後選取左側導覽列中的「開發人員」。然後前往「Linux」,即可找到「備份與還原」。進入這個選單後,你會看到「備份」按鈕,點選即可儲存 .tini 檔案。
如要備份個別容器,也可以使用標準 LXC 指令。
您可以使用 vmc export 指令手動匯出整個 VM。預設會將 qcow2 磁碟映像檔傾印至「下載」資料夾。請注意,目前還無法匯入 VM,因此這項功能僅適用於診斷或使用其他系統擷取檔案。
我可以直接存取 VM/容器檔案 (例如透過「檔案」應用程式) 嗎?
目前無法存取 VM 使用的圖片檔案。我們沒有變更這項功能的計畫。
如要備份資料,請手動備份。
為什麼 VM/容器內的時間不同步?
VM 內的時鐘 (以及容器) 會自動與 ChromeOS 的時鐘保持同步。因此您不必自行執行時間同步服務 (例如 ntp)。該時鐘以 UTC 為準。
從 R75 開始,我們會嘗試透過 timedatectl 將時區資料同步到容器中。如果無法使用,我們會改為匯出 TZ 環境變數。
我們目前不會更新 VM 內的時區詳細資料。我們也不會嘗試更新任何其他時區設定,因為這些設定在各個發行版本中都不標準。因此在這些環境中,時間可能乍看之下有誤,或是在使用 TZ 環境變數時過時。
如需更多技術細節,請參閱 https://crbug.com/829934。這比您想像的還要複雜!
系統支援哪些複製及貼上格式?
目前僅支援 text/plain 內容。我們預計很快就會新增更多格式 (例如 image/png 和 text/rtf)。
如要查看目前支援的清單,請參閱 exo/data_source.cc。
雖然 X/Wayland 支援任意數量的 MIME 格式,但我們的最終目標是只支援 Chrome 本身支援的所有格式。如需這份清單,請參閱 clipboard_constants.cc 檔案。
請注意,我們只會討論儲存在剪貼簿中的資料限制。Wayland 應用程式仍可自由地以任意格式直接轉移資料。
我可以從 VM 內部自動讀取/寫入剪貼簿嗎?
目前無法。
從安全性的角度來看,我們不希望不受信任的程式碼在使用者不知情或未授權的情況下,自動擷取使用者複製的內容。可能是因為瀏覽器工作階段正在複製個人資料或密碼。這與網頁平台遇到的問題相同。
這與使用者手動貼上資料 (例如 Ctrl+V) 不同。這僅適用於程式輔助閱讀。
我們預期這種情況不會永遠持續下去。我們將先建立權限模型和 UI 來管理這些項目,再考慮是否允許使用者授予這項權限。
如果您使用 xclip 或 X 工具,這些工具通常會有本機緩衝區 (位於 XWayland),但不會自動與系統的其餘部分同步。
我是否必須管理 VM 更新?
請注意,VM 與容器是分開的。
如何查看 Termina 版本?
由於 Termina 是下載的元件,因此您可以在新分頁中前往 chrome://components,然後尋找 cros-termina。
您也可以透過 vsh 連線至 VM,然後執行 cat /etc/lsb-release。
我是否必須管理容器更新?
容器中與 ChromeOS 通訊或 ChromeOS 整合所需的 Google 提供套件,會定期自動更新。系統會自動安裝所有必要的依附元件。
容器中安裝的其他套件不會自動升級。我們希望避免更新可能會導致已安裝程式無法運作的套件。這個容器與其他 Linux 發行版本類似,因此如要使用較新的軟體,必須不時更新。
您可以執行 sudo apt-get update && sudo apt-get dist-upgrade。
可以使用 IPv6 嗎?
是的,從 R81 開始。支援雙重堆疊和僅限 IPv6 的網路。
ChromeOS 僅支援 SLAAC;詳情請參閱「ChromeOS 的 IPv6 支援」支援頁面。
我可以存取第 2 層網路嗎?
目前無法,網路存取權僅限於第 3 層 (即 IP)。因此您無法進行任何橋接或低階有趣的事。
目前不清楚這項規定是否會變更,以及何時會變更。Wi-Fi 難以與外部世界橋接,而且許多裝置都沒有乙太網路連線。我們可以在容器之間支援第 2 層,但目前尚不清楚有多少人需要這項功能,因此無法判斷是否值得投入相關資源。
CrOS/Android (VM/容器外部) 設定的 VPN 是否正常運作?
目前無法。如要瞭解最新消息,請為 https://crbug.com/834585 加上星號。
是否支援音訊輸出?
可以,從 R74 開始 (Termina 版本 11707.0.0 以上)。
如果您在部署音訊支援功能前設定容器,容器可能無法正確設定 (因為預設會輸出至空值裝置)。請嘗試下列步驟來復原:
# Make sure the new cros-pulse-config package is installed. $ sudo apt-get update $ sudo apt-get dist-upgrade # Clear out existing pulse settings. $ rm -rf ~/.config/pulse # Turn it off & on again via crosh ([Ctrl]+[[Alt]]+[[T]]). crosh> vmc stop termina
是否支援音訊擷取 (例如麥克風)?
ChromeOS M84 版現已支援這項功能。如要啟用音訊擷取功能,請前往「設定」,然後選取左側導覽列中的「開發人員」。然後前往「Linux」,你會在該選單中看到「允許 Linux 存取你的麥克風」選項。
我可以存取硬體 (例如 USB/藍牙/序列埠) 嗎?
ChromeOS 現在可透過 USB 共用特定裝置。如要啟用 USB 存取權,請前往「設定」,然後選取左側導覽列中的「開發人員」。然後依序前往「Linux」和「USB 偏好設定」。您可以在這裡逐一啟用 USB 存取權。
團隊正積極開發這項功能,日後將支援更多裝置。
我可以執行 Wayland 程式嗎?
可以,而且我們建議使用這些格式!Chrome 本身會大量處理 Wayland 用戶端,因此升級後,您更有可能「正常運作」。
Sommelier 會順暢地提供這項支援。
我可以執行 X 計畫嗎?
可以,但可能會遇到一些相容性問題,而且可能永遠無法像執行傳統 X 伺服器一樣完美。不過,隨著更廣大的社群轉移至 Wayland,這應該就夠用了。
Sommelier 會負責啟動 XWayland、充當 WM,以及在 Chrome 和 X 程式之間翻譯 X 和 Wayland 要求。
為什麼視窗有時會很小/模糊?
啟動器架上顯示的 Linux 應用程式應提供高密度或低密度選項。如果發現解析度未如預期,請在圖示上按一下滑鼠右鍵,即可切換高密度和低密度。
Chrome 支援高 DPI 顯示器,但許多 Linux 應用程式不支援。如果程式無法正確支援 DPI 縮放,就會導致結果不佳。
目前我們直接向應用程式公開內建解析度和 DPI。如果顯示的圖片很小或模糊,表示圖片無法正確縮放。您應向上游專案回報這些問題,希望有一天能「正常運作」。
在此期間,Sommelier 會公開部分執行階段設定,方便您依據每個程式設定縮放比例,解決異常行為。詳情請參閱 Sommelier 的說明文件。
如果您套用全系統縮放或變更預設螢幕解析度,我們會嘗試縮放應用程式輸出內容,以符合這些設定。這可能會導致結果模糊不清。你可以調整螢幕解析度,或透過 Sommelier 進行微調 (詳情請參閱上文)。啟動器架上顯示的 Linux 應用程式應提供高密度或低密度選項。如果發現解析度未如預期,請在圖示上按一下滑鼠右鍵,即可切換高密度和低密度。
是否能順利運作?
Synergy 無法運作 (做為用戶端或伺服器)。這需要擷取及模擬所有視窗的輸入內容 (例如滑鼠/鍵盤)。由於我們是以 Wayland 為基礎建構,因此根據設計,一個用戶端無法存取系統上的任何其他用戶端。這是用戶端之間強大的安全界線,因為我們不希望容器內執行的任意程式碼能夠中斷並攻擊其他用戶端 (例如瀏覽器),以及傳送任意按鍵。
我們不打算從容器啟用這類控制項。這並非表示 ChromeOS 永遠不會推出類似 Synergy 的解決方案 (例如 CRD),只是解決方案不會是 Synergy 或容器中的任何其他工具。
你可以執行 Synergy,並讓它傳達在單一視窗下執行的輸入事件,但這已是極限。
我可以執行 Windows 程式嗎?
沒問題,請試試 WINE。不過,相容性主要取決於 WINE,因此請勿向我們尋求支援。
我可以執行 macOS 程式嗎?
別緊張。您可以嘗試各種現有的 Linux 解決方案,但這些解決方案可能更加粗糙。
為什麼要從頭開始實作 crosvm (而不是使用 QEMU/kvmtool 等)?
我們對這些其他專案沒有任何意見。事實上,這些都是很棒的設計,而且對我們的設計有影響。最重要的是,他們提供的功能超出我們的需求,而且安全模型不如我們自行編寫的完善。雖然 crosvm 無法執行其他專案的所有功能,但它只會執行我們需要的功能。
詳情請參閱 crosvm 專案。
虛擬機器不會拖慢所有作業的速度嗎?
與僅在容器中或直接在系統中執行的作業相比,VM 的確會增加額外負擔。不過,在我們的測試中,這項額外負擔對使用者體驗的影響微乎其微,但系統安全性大幅提升,因此非常值得。
詳情請參閱官方 Chromium OS 文件的「安全性」一節。
為什麼要在 VM 內執行容器?為什麼不直接在 VM 中執行程式?
為了縮短 VM 的啟動時間,我們需要盡可能縮減 Termina 的大小。也就是刪除我們不需要或不相關的程式/檔案。
我們使用 dm-verity,這項技術要求 Termina 映像檔為唯讀,以確保安全性,但這也表示我們可以在 VM 執行個體之間安全地共用映像檔。
此外,我們發布的程式/程式庫版本通常比其他發行版本更新 (因為我們是以 Gentoo 為基礎建構),而且會使用額外的安全性標記進行編譯。
允許使用者修改 VM 會導致無狀態映像檔無法正常運作,且無法避免使用者錯誤和程式中的錯誤。
因此,支援執行任意程式相當困難,且會導致系統缺少上述許多所需屬性。將所有內容強制納入容器,可產生更穩健的解決方案,讓使用者放心實驗。
此外,我們很喜歡烏龜。
是否已處理 Foreshadow (又稱 L1TF / CVE-2018-3646)?
可以。詳情請參閱公開說明文件。
可以刪除不再需要的容器嗎?
當然,你可以隨意刪除想刪除的內容。不過,目前沒有 UI 或指令可協助您完成這項操作。
可以刪除不再需要的 VM 嗎?
當然,你可以隨意刪除想刪除的內容。您可以使用 vmc destroy 指令手動刪除這些函式。
我可以停用這些功能嗎?
管理員可以透過管理控制台控管容器/VM 的存取權,因此企業/教育機構可以視需要限制存取權。
一開始,標準 ChromeOS 設定下方會有「Linux」選項,但長期計畫是移除這個選項,讓一切運作順暢。屆時,未受管理裝置將不會顯示旋鈕。
我可以啟動其他作業系統嗎?例如 Windows、macOS、Linux、*BSD 等。
目前無法,您只能啟動名為「Termina」Termina的自訂 Linux VM。請參閱接下來的幾個問題。
我可以執行自己的 VM/核心嗎?
目前無法,你只能啟動 Termina,這項功能使用我們的自訂 Linux 核心和設定。敬請持續鎖定!
我可以執行其他 Linux 發行版嗎?
當然!您可以使用完整的 LXD 指令列,並從內建的映像檔遠端選擇許多其他發行版本。不過,我們只測試隨附的預設容器,因此執行其他發行版本時,可能會發生問題。
我目前執行的是 (在此插入發行版本),如何取得 {GUI apps, launcher icons, etc…}?
Sommelier 和 Garcon 二進位檔會繫結掛接到每個容器,因此不必安裝或交叉編譯。cros-container-guest-tools 中的 systemd 單位和設定檔會在 systemd 使用者工作階段中啟動這些精靈。建議您也執行 loginctl enable-linger <user>,允許這些應用程式在背景執行。
我可以執行多少部 VM?
您可以視系統處理能力 (RAM/CPU 方面) 產生任意數量。這些選項彼此獨立。
我可以執行多少個容器?
您可以視系統處理能力 (RAM/CPU 方面) 產生任意數量。每個 VM 執行個體可代管多個容器。
支援哪些容器格式?
Termina 目前僅直接支援 LXC。我們瞭解 Kubernetes/Docker/OCI/rkt 等等,並希望讓這些技術都能輕鬆使用。
如需暫時的解決方法,請參閱上一個問題。