版本核心

指令列選項

您可以間接 (做為平台實作細節) 或直接由開發人員將核心指令列選項新增至產品組合,以便進行本機偵錯和測試。

在電路板或產品檔案中指定選項

產品和電路板只能透過產品組合間接新增核心指令列選項: - 做為組合輸入套件的一部分。- 在組合中作為平台設定規則的一部分。

在本機指定選項

針對本機開發作業,您可以指定應附加至核心指令列的字串清單,做為組合開發人員覆寫值的一部分。

這需要兩個步驟:

1. 定義組態覆寫目標

//local/* 下的 //local/BUILD.gn 或其他 BUILD.gn 檔案中定義組合程式覆寫目標。

import("//build/assembly/developer_overrides.gni")

assembly_developer_overrides("custom_kernel_args") {
  kernel = {
    command_line_args = [ "foo" ]
  }
}

這項操作只需為每組覆寫值執行一次,之後即可在建構中重複使用任何產品組合或任何 outdir。

接下來,請告訴 GN 要使用哪個開發人員覆寫目標來製作產品。

2a. 請將該目標與「主要」產品組合一起使用

針對「main」產品組合 (fx set 指令中指定的產品組合),您可以使用以下指令,告知 GN 使用上述定義的產品組合目標:

fx set ... --assembly-override //local:custom_kernel_args

或者,您也可以執行 fx args,然後新增或修改一行內容,藉此修改現有的 args.gn 檔案:

product_assembly_overrides_label = "//local:custom_kernel_args"

2b. 除了「main」組件以外的產品組件

除了「主要」產品組合外,其他組合都需要稍微冗長的機制,例如 zedboot 或復原組合。這項操作會使用以萬用字元為基礎的模式比對:

fx set ... --assembly-override '//build/images/zedboot/*=//local:custom_kernel_args'

或 ```posix-terminal fx set ... --assembly-override '//products/microfuchsia/*=//local:custom_kernel_args'

處理多個產品組合時,直接在 args.gn 中指定這項資訊會更方便:

product_assembly_overrides = [
  {
    # core products:
    assembly = "//build/images/fuchsia/*"
    overrides = "//local:custom_kernel_args"
  },
  {
    assembly = "//build/images/zedboot/*"
    overrides = "//local:zedboot_overrides"
  },
  {
    assembly = "//products/microfuchsia/*"
    overrides = "//local:zedboot_overrides"
  }
]

請注意,使用 //vendor/* 電路板時,產品組裝目標也會位於 //vendor 存放區 (例如 //vendor/<foo>/products/minimal)。