Debian >> Kernel

-- parameter


參考資訊:
1. init
2.
where-is-the-double-dash-argument-documented

--後面的東西代表實際參數,而非參數選項

如下範例會將檔名為-A的內容印出來,-A其實是cat的選項,代表--show-all,因此,如果檔名剛好是-A,則可以使用--來結束參數選項,讓-A是以檔名方式傳遞給cat開啟

$ cat -- -A

在Linux Kernel CMDLINE中,如果要將實際參數傳遞給init時,也是使用--的方式,可以參考檔案:init/main.c

/* Anything after -- gets handed straight to init. */
static int __init set_init_arg(char *param, char *val,
			       const char *unused, void *arg)
{
	unsigned int i;

	if (panic_later)
		return 0;

	repair_env_string(param, val);

	for (i = 0; argv_init[i]; i++) {
		if (i == MAX_INIT_ARGS) {
			panic_later = "init";
			panic_param = param;
			return 0;
		}
	}
	argv_init[i] = param;
	return 0;
}

--後面的FC3000,不是參數選項,而是一個實際參數,因此,param="FC3000"

CONFIG_CMDLINE="rootwait root=/dev/mmcblk0p1 ro fstype=vfat init=/mininit -- FC3000"


返回上一頁