請參閱 //docs/gen/boot-options.md,現在是 但事實並非如此
Zircon 核心會從系統啟動載入程式接收文字指令列, 改變系統行為。核心指令列參數 格式為 option 或 option=value 且以空格分隔,而且不可以 包含空格。
如果是布林選項,option=0、option=false 或 option=off 將會停用 選項。任何其他形式 (option、option=true、option=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=<seconds>
設定 UTC 時鐘的初始偏移 (從 Unix 紀元開始,以秒為單位)。 裝置協調員會在啟動時設定時鐘,之後如果 RTC 之所以會發生
console.shell=<bool>
如果這個選項設為 true Driver_manager,系統就會啟動殼層。 kernel.shell 尚未啟動預設值為 false。
如果為 false,則會停用 zircon.autorun.boot,並 zircon.autorun.system 選項
driver.<name>.tests.enable=<bool>
啟用個別驅動程式庫的單元測試。單元測試將執行
驅動程式庫會繫結任何裝置如果 driver.tests.enable
為 true,則這個
預設為啟用,否則預設為停用。
再次提醒,驅動程式庫名稱為「駕駛人」引數加入 ZIRCON_DRIVER 巨集。而不是裝置名稱。 儘管裝置可能命名為「foo-bar」,但各驅動程式幾乎相同 驅動程式庫名稱必須使用底線,例如「foo_bar」。
driver.sysmem.contiguous_memory_size=<num>
覆寫 sysmem 連續記憶體的 board-驅動程式庫指定大小 集區。以位元組為單位。
driver.sysmem.protected_memory_size=<num>
針對 sysmem 的預設受保護的記憶體覆寫 board-驅動程式庫指定的大小 集區。以位元組為單位。
driver.tests.enable=<bool>
為所有驅動程式啟用單元測試。單元測試會在
駕駛人能繫結任何裝置你也可以針對個別
驅動程式庫,請參閱 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=<command>
這個選項會要求在開機時執行 command。
指令應以根「/」開頭的絕對路徑。
系統會將 command 中的所有 +
字元視為引數分隔符,
將引數傳遞至執行檔
如果 console.shell 為 false,系統會停用這個選項。
zircon.autorun.system=<command>
這個選項會要求在系統分區掛接後執行 command。 如果沒有系統分區,就不會啟動。
指令應以根「/」開頭的絕對路徑。
系統會將 command 中的所有 +
字元視為引數分隔符,
將引數傳遞至執行檔
如果 console.shell 為 false,系統會停用這個選項。
zircon.system.disable-automount=<bool>
此選項可防止 fshost 自動掛接任何磁碟檔案系統 (/system、/data 等) 對某些低階測試設定相當實用。這項服務 預設為 false。因為 netsvc.netboot=true 已被取代
zircon.system.pkgfs.cmd=<command>
這個選項要求在掛接 blob 分區後執行 command。
系統會將 command 中的所有 +
字元視為引數分隔符,
將引數傳遞至執行檔
執行檔及其依附元件 (動態連結器和共用程式庫)
。可執行的 path 是 command,
前 +
。動態連結器 (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=<blobid>
與上述 zircon.system.pkgfs.cmd
搭配使用。
zircon.system.filesystem-check=<bool>
這個選項會要求系統自動掛接的檔案系統 執行測試之前,請使用檔案系統一致性檢查工具進行預先驗證。
這個選項的預設值為 false。
netsvc.netboot=<bool>
如果設為 true,Zircon 會嘗試在發生時啟動另一個 zircon 執行個體 啟動中。
具體來說,zircon 會從 並嘗試 kexec 進入新的映像檔,然後替換 目前運作中的 zircon 執行個體
這項設定隱含 zircon.system.disable-automount=true
netsvc.disable=<bool>
如果設為 True (預設值),就會停用 netsvc
。
netsvc.advertise=<bool>
設為 true 時,netsvc 會傳送網路開機廣告,藉此尋找開機伺服器。 預設為 true。
netsvc.interface=<path>
這個選項會指示 netsvc 僅使用拓撲路徑結束的裝置
的值,並且包含萬用字元 *
字元,符合任一零或
系統還會顯示更多字元。所有其他裝置都會遭到
netsvc裝置的拓撲路徑可以根據
在裝置上執行 lsdev
指令,例如:/dev/class/network/000
或
/dev/class/ethernet/000
)。
如果裝置有多個裝置,這項資訊就能派上用場 乙太網路通訊埠,可能以非確定順序列舉。
netsvc.all-features=<bool>
這個選項可讓 netsvc
正常運作並支援所有功能。根據預設
「netsvc
」會以最小模式啟動,但僅支援裝置探索功能。
userboot.next=<path>
這個選項會指示使用者啟動程序 (第一個使用者空間程序) 執行 會在啟動檔案系統中執行指定的二進位檔,而不是遵循正常作業 使用者空間啟動程序 (啟動裝置管理員等)。
建議用於替代啟動模式 (例如工廠測試或系統單元) 測試)。
這裡使用的路徑名稱與 userboot.root
(下方)、如果已設定,或其他
相對於 BOOTFS 的根目錄 (稍後通常在 /boot
中可見)。
開頭不得為 /
前置字元。
如果此執行檔使用 PT_INTERP
(例如動態連結器),使用者啟動程序
程序
載入器服務
解析 PT_INTERP
(動態連結器) 名稱,以及任何共用程式庫的名稱
可能會要求該服務只會查看 lib/
目錄 (位於
userboot.root
)。
下一個程式的引數可使用「+」來指定分隔符 程式和個別引數之間的差異下一個方案名稱一律是 做為第一個引數
範例:userboot.next=bin/core-tests+arg1+arg2=foo
userboot.root=<path>
這會設定「根層級」BOOTFS 中路徑前置字元,其中 userboot.next
路徑
和載入程式服務的 lib/
目錄。預設情況下
沒有前置字元,因此系統會將路徑視為
BOOTFS。例如:提供 userboot.root=pkg/foo
和 userboot.next=bin/app
,名稱
在 BOOTFS 中找到的將會是 pkg/foo/bin/app
、pkg/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=<name>
指定虛擬控制台的按鍵對應配置。「qwerty」和「dvorak」支援。
virtcon.font=<name>
指定虛擬控制台的字型。「9 x 16」以及「18x32」支援。
zircon.nodename=<name>
設定 bootserver
、loglistener
和
net{addr,cp,ls,runcmd}
工具建立範本。若省略此引數,系統會產生節點名稱
從 MAC 位址擷取出來這個天線由 GigaBoot 和 Zircon 著稱。
zircon.namegen=<num>
設定系統節點名稱產生樣式。如果省略或不明,系統會
樣式 1.如果設定 zircon.nodename
,則不會有任何作用。舊版名稱產生功能
日後可能會移除任何樣式這個客戶的公認是 GigaBoot 的榮耀,
Zircon。
樣式:- 0:使用以 MAC 位址為基礎的四字名稱樣式。- 1: fuchsia-0123-4567-89ab (以 MAC 位址為準)。
zvb.current_slot=<_a|_b|_r>
讓 Fuchsia 知道系統啟動載入程式啟動的運算單元。一併設定這項設定 向分區映像檔安裝工具告知支援 ABR,且應更新 ABR 中繼資料。
zvb.boot-partition-uuid=<UUID>
zvb.current_slot 的替代方式 - 讓 Fuchsia 知道使用者透過 進行系統啟動載入程式,方法是傳遞包含 Zircon 核心的分區的 UUID 擷取的 IP 位址這項設定也會告知分區映像檔安裝工具支援 ABR,且 更新 ABR 中繼資料。
console.device_topological_suffix=<path>
如果設定此設定,控制台啟動器將連線至主控台裝置
拓撲路徑與這個後置字串相符如未指定,代表控制台啟動器
將連線至「/svc/console
」。只有 kernel.shell=false 才會生效。
其他 Gigaboot 指令列選項
bootloader.timeout=<num>
這個選項會設定系統啟動載入程式中的啟動逾時,預設值為 3 秒內請求驗證碼。如要略過啟動選單,請將值設為 0。
bootloader.fbres=<w>x<h>
這個選項會設定 framebuffer 解析度。使用系統啟動載入程式選單來顯示 可用的選項。
範例:bootloader.fbres=640x480
bootloader.default=<network|local|zedboot>
這個選項會將預設啟動裝置設為 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 隨身碟的根目錄中 該檔案含有指令列