Zircon 核心指令列選項

請參閱 //docs/gen/boot-options.md,現在是 但事實並非如此

Zircon 核心會從系統啟動載入程式接收文字指令列, 改變系統行為。核心指令列參數 格式為 optionoption=value 且以空格分隔,而且不可以 包含空格。

如果是布林選項,option=0option=falseoption=off 將會停用 選項。任何其他形式 (optionoption=trueoption=wheee 等) 表示 立即啟用。

核心指令列會從核心傳遞至使用者啟動程序, 因此以下說明的部分選項適用於 模型本身,而非核心本身。

如果按鍵重複,系統會優先採用最後一個值,也就是較晚的設定 覆寫之前的警告

元件管理服務會讀取 /boot/config/additional_boot_args 檔案 (如果有的話) ,並匯入 name=value 行到環境中, 或是覆寫核心指令列中的值開頭的空白字元是 系統會略過開頭為 # 的行。以下項目中不得有空白字元: 。

如要在建構中指定選項,請參閱 本指南

blobfs.cache-eviction-policy=<policy>

控制 blobf針對以頁面伺服器為基礎的 blob (無開放式控點) 的撤銷策略 或 VMO 本機副本如未設定,系統會使用內部定義的系統預設值。

未支援呼叫器的 Blob 不受此旋鈕的影響。

支援下列值:

  • NEVER_EVICT:節點一律不會撤銷。建議啟用核心 在這個範例中 (kernel.page-scanner.enable-eviction),則視為 否則 blobf 會無限期將所有資料頁面保留在記憶體中。
  • EVICT_IMMEDIATELY:節點會在沒有開放控制代碼後立即撤銷 或 VMO 本機副本下次存取時,必須從磁碟中再次載入這些項目。

blobfs.write-compression-algorithm=<algorithm>

blobf 在執行階段寫入 blob 時應使用的壓縮演算法。 如未設定,系統會使用內部定義的系統預設值。

支援下列值:

  • ZSTD_CHUNKED
  • UNCOMPRESSED

boot.usb=<bool>

如果為 true,表示開機儲存媒介是透過 USB 匯流排連線。 //src/sys/live_usb 中的 live_usb 元件會使用此字串判斷 以及是否應執行

bootsvc.next=<啟動檔案系統路徑>

控管 bootsvc 所執行的程式,以便繼續執行啟動程序。如果 未指定,就會使用預設的下一個程式。

程式的引數可選擇使用逗號分隔 程式和個別引數之間的差異例如: 「bootsvc.next=bin/mybin,arg1,arg2」。

clock.backstop=&lt;seconds&gt;

設定 UTC 時鐘的初始偏移 (從 Unix 紀元開始,以秒為單位)。 裝置協調員會在啟動時設定時鐘,之後如果 RTC 之所以會發生

console.shell=&lt;bool&gt;

如果這個選項設為 true Driver_manager,系統就會啟動殼層。 kernel.shell 尚未啟動預設值為 false。

如果為 false,則會停用 zircon.autorun.boot,並 zircon.autorun.system 選項

driver.&lt;name&gt;.tests.enable=&lt;bool&gt;

啟用個別驅動程式庫的單元測試。單元測試將執行 驅動程式庫會繫結任何裝置如果 driver.tests.enable 為 true,則這個 預設為啟用,否則預設為停用。

再次提醒,驅動程式庫名稱為「駕駛人」引數加入 ZIRCON_DRIVER 巨集。而不是裝置名稱。 儘管裝置可能命名為「foo-bar」,但各驅動程式幾乎相同 驅動程式庫名稱必須使用底線,例如「foo_bar」。

driver.sysmem.contiguous_memory_size=&lt;num&gt;

覆寫 sysmem 連續記憶體的 board-驅動程式庫指定大小 集區。以位元組為單位。

driver.sysmem.protected_memory_size=&lt;num&gt;

針對 sysmem 的預設受保護的記憶體覆寫 board-驅動程式庫指定的大小 集區。以位元組為單位。

driver.tests.enable=&lt;bool&gt;

為所有驅動程式啟用單元測試。單元測試會在 駕駛人能繫結任何裝置你也可以針對個別 驅動程式庫,請參閱 driver.\<name>.enable_tests。系統會停用預設值。

x64 特定值

在 x64 上,設定 8250 類 UART 時支援下列其他值:

  • 如果設為 legacy,則會使用舊版 COM1 介面。
  • 如果設為 acpi,表示系統上 DBG2 ACPI 項目指定的 UART 在可用的情況下 (如果有的話)。
  • 您可以使用 ioport,\<portno>,\<irq> 指定連接埠-io UART。
  • 您可以使用 mmio,\<physaddr>,\<irq> 指定 MMIO UART。

例如,ioport,0x3f8,4 會描述舊版 COM1 介面。

所有數字皆可採用 strtoul() 接受的底數。

目前所有其他值均未定義。

ldso.trace

這個選項 (預設為停用) 會開啟動態連接器追蹤記錄輸出。 輸出格式為 Intel Processor Trace 等用戶端可使用的格式 聯絡。

zircon.autorun.boot=&lt;command&gt;

這個選項會要求在開機時執行 command

指令應以根「/」開頭的絕對路徑。

系統會將 command 中的所有 + 字元視為引數分隔符, 將引數傳遞至執行檔

如果 console.shell 為 false,系統會停用這個選項。

zircon.autorun.system=&lt;command&gt;

這個選項會要求在系統分區掛接後執行 command。 如果沒有系統分區,就不會啟動。

指令應以根「/」開頭的絕對路徑。

系統會將 command 中的所有 + 字元視為引數分隔符, 將引數傳遞至執行檔

如果 console.shell 為 false,系統會停用這個選項。

zircon.system.disable-automount=&lt;bool&gt;

此選項可防止 fshost 自動掛接任何磁碟檔案系統 (/system、/data 等) 對某些低階測試設定相當實用。這項服務 預設為 false。因為 netsvc.netboot=true 已被取代

zircon.system.pkgfs.cmd=&lt;command&gt;

這個選項要求在掛接 blob 分區後執行 command。 系統會將 command 中的所有 + 字元視為引數分隔符, 將引數傳遞至執行檔

執行檔及其依附元件 (動態連結器和共用程式庫) 。可執行的 pathcommand, 前 +。動態連結器 (PT_INTERP) 和共用資料庫 (DT_NEEDED) 傳送至載入器服務的名稱字串會加上 lib/ 前置字串,以便產生 「path」。每個這類 path 都會解析為 blob ID (即 ASCII 十六進位的 Merkleroot) 使用 zircon.system.pkgfs.file.path 指令列引數。如此一來 /boot/config/additional_boot_args 包含固定的資訊清單,用於 開始這項程序

新程序會在啟動時收到 PA_USER0 管道帳號代碼, 做為用戶端檔案系統控制代碼掛接至 /pkgfs/pkgfs/system會 您也以 /system 的形式掛接

zircon.system.pkgfs.file.path=&lt;blobid&gt;

與上述 zircon.system.pkgfs.cmd 搭配使用。

zircon.system.filesystem-check=&lt;bool&gt;

這個選項會要求系統自動掛接的檔案系統 執行測試之前,請使用檔案系統一致性檢查工具進行預先驗證。

這個選項的預設值為 false。

netsvc.netboot=&lt;bool&gt;

如果設為 true,Zircon 會嘗試在發生時啟動另一個 zircon 執行個體 啟動中。

具體來說,zircon 會從 並嘗試 kexec 進入新的映像檔,然後替換 目前運作中的 zircon 執行個體

這項設定隱含 zircon.system.disable-automount=true

netsvc.disable=&lt;bool&gt;

如果設為 True (預設值),就會停用 netsvc

netsvc.advertise=&lt;bool&gt;

設為 true 時,netsvc 會傳送網路開機廣告,藉此尋找開機伺服器。 預設為 true。

netsvc.interface=&lt;path&gt;

這個選項會指示 netsvc 僅使用拓撲路徑結束的裝置 的值,並且包含萬用字元 * 字元,符合任一零或 系統還會顯示更多字元。所有其他裝置都會遭到 netsvc裝置的拓撲路徑可以根據 在裝置上執行 lsdev 指令,例如:/dev/class/network/000/dev/class/ethernet/000)。

如果裝置有多個裝置,這項資訊就能派上用場 乙太網路通訊埠,可能以非確定順序列舉。

netsvc.all-features=&lt;bool&gt;

這個選項可讓 netsvc 正常運作並支援所有功能。根據預設 「netsvc」會以最小模式啟動,但僅支援裝置探索功能。

userboot.next=&lt;path&gt;

這個選項會指示使用者啟動程序 (第一個使用者空間程序) 執行 會在啟動檔案系統中執行指定的二進位檔,而不是遵循正常作業 使用者空間啟動程序 (啟動裝置管理員等)。

建議用於替代啟動模式 (例如工廠測試或系統單元) 測試)。

這裡使用的路徑名稱與 userboot.root (下方)、如果已設定,或其他 相對於 BOOTFS 的根目錄 (稍後通常在 /boot 中可見)。 開頭不得為 / 前置字元。

如果此執行檔使用 PT_INTERP (例如動態連結器),使用者啟動程序 程序 載入器服務 解析 PT_INTERP (動態連結器) 名稱,以及任何共用程式庫的名稱 可能會要求該服務只會查看 lib/ 目錄 (位於 userboot.root)。

下一個程式的引數可使用「+」來指定分隔符 程式和個別引數之間的差異下一個方案名稱一律是 做為第一個引數

範例:userboot.next=bin/core-tests+arg1+arg2=foo

userboot.root=&lt;path&gt;

這會設定「根層級」BOOTFS 中路徑前置字元,其中 userboot.next 路徑 和載入程式服務的 lib/ 目錄。預設情況下 沒有前置字元,因此系統會將路徑視為 BOOTFS。例如:提供 userboot.root=pkg/foouserboot.next=bin/app,名稱 在 BOOTFS 中找到的將會是 pkg/foo/bin/apppkg/foo/lib/ld.so.1 等。

userboot.shutdown

如果設定此選項,使用者啟動程序啟動後,系統會嘗試在 便會啟動離開事件請注意,如果已設定 userboot.reboot 系統會忽略 userboot.shutdown

virtcon.disable

如有這個選項,請勿啟動虛擬主控台服務。

啟動 virtcon.hide-on-boot

如有這個選項,虛擬控制台就不會取得任何 持續顯示,直到使用者透過裝置控制按鍵組合切換至手錶為止。

virtcon.keep-log-visible

如果有這個選項,虛擬控制台服務會保留偵錯記錄 (vc0),而不是在啟動時切換至第一個殼層 (vc1)。

virtcon.keymap=&lt;name&gt;

指定虛擬控制台的按鍵對應配置。「qwerty」和「dvorak」支援。

virtcon.font=&lt;name&gt;

指定虛擬控制台的字型。「9 x 16」以及「18x32」支援。

zircon.nodename=&lt;name&gt;

設定 bootserverloglistenernet{addr,cp,ls,runcmd} 工具建立範本。若省略此引數,系統會產生節點名稱 從 MAC 位址擷取出來這個天線由 GigaBoot 和 Zircon 著稱。

zircon.namegen=&lt;num&gt;

設定系統節點名稱產生樣式。如果省略或不明,系統會 樣式 1.如果設定 zircon.nodename,則不會有任何作用。舊版名稱產生功能 日後可能會移除任何樣式這個客戶的公認是 GigaBoot 的榮耀, Zircon。

樣式:- 0:使用以 MAC 位址為基礎的四字名稱樣式。- 1: fuchsia-0123-4567-89ab (以 MAC 位址為準)。

zvb.current_slot=&lt;_a|_b|_r&gt;

讓 Fuchsia 知道系統啟動載入程式啟動的運算單元。一併設定這項設定 向分區映像檔安裝工具告知支援 ABR,且應更新 ABR 中繼資料。

zvb.boot-partition-uuid=&lt;UUID&gt;

zvb.current_slot 的替代方式 - 讓 Fuchsia 知道使用者透過 進行系統啟動載入程式,方法是傳遞包含 Zircon 核心的分區的 UUID 擷取的 IP 位址這項設定也會告知分區映像檔安裝工具支援 ABR,且 更新 ABR 中繼資料。

console.device_topological_suffix=&lt;path&gt;

如果設定此設定,控制台啟動器將連線至主控台裝置 拓撲路徑與這個後置字串相符如未指定,代表控制台啟動器 將連線至「/svc/console」。只有 kernel.shell=false 才會生效。

其他 Gigaboot 指令列選項

bootloader.timeout=&lt;num&gt;

這個選項會設定系統啟動載入程式中的啟動逾時,預設值為 3 秒內請求驗證碼。如要略過啟動選單,請將值設為 0。

bootloader.fbres=&lt;w&gt;x&lt;h&gt;

這個選項會設定 framebuffer 解析度。使用系統啟動載入程式選單來顯示 可用的選項。

範例:bootloader.fbres=640x480

bootloader.default=&lt;network|local|zedboot&gt;

這個選項會將預設啟動裝置設為 netboot、使用本機 zircon.bin 或 透過 zedboot 進行網路啟動

如何將指令列傳遞到核心

在模擬器或 Qemu 中使用,使用 ffx emu 或 fx qemu

請使用 -c 傳送每個選項,例如:

ffx emu start -c gfxconsole.font=18x32 -c gfxconsole.early=false

(在 GigaBoot20x6 中)

將核心指令列放在結尾的 -- 分隔符後方,例如:

bootserver zircon.bin bootfs.bin -- gfxconsole.font=18x32 gfxconsole.early=false

(在 GigaBoot20x6 中啟動)

建立文字檔案並命名為「cmdline」位在 USB 隨身碟的根目錄中 該檔案含有指令列