openwrt 15.05 branch(Chaos Calmer)에서 컴파일한 펌웨어bootargs가 덮어쓰기

1124 단어 openwrt
컴파일된 펌웨어
bootargs 매개 변수가 커널에 덮어쓰기
내부 핵은 uboot에서 전송된 파라미터를 사용하지 않습니다
코드 보기
커널 코드\linux-3.18.27\arch\mips\ath79\prom.c 중
prom 호출init => ath79_prom_init_cmdline => ath79_use_image_cmdline
ath79 진입use_image_cmdline
함수ath79use_image_cmdline에서 사용image_cmdline
#ifdef CONFIG_IMAGE_CMDLINE_HACK
extern char __image_cmdline[];

static int __init ath79_use_image_cmdline(void)
{
	char *p = __image_cmdline;
	int replace = 0;

	if (*p == '-') {
		replace = 1;
		p++;
	}

	if (*p == '\0')
		return 0;

	if (replace) {
		strlcpy(arcs_cmdline, p, sizeof(arcs_cmdline));
	} else {
		strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
		strlcat(arcs_cmdline, p, sizeof(arcs_cmdline));
	}
	
	return 1;
}
#else
static inline int ath79_use_image_cmdline(void) { return 0; }
#endif

__image_cmdline
어셈블리 파일linux-3.18.27/arch/mips/kernel/head.S에서 내보내기
#ifdef CONFIG_IMAGE_CMDLINE_HACK
        .ascii  "CMDLINE:"
EXPORT(__image_cmdline)
        .fill   0x400
#endif /* CONFIG_IMAGE_CMDLINE_HACK */

좋은 웹페이지 즐겨찾기