From 7dace4fe678448c98ebb7beaa01ca64788ab02b4 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 23 Apr 2014 15:54:57 -0500 Subject: [PATCH 16/36] automatically add console= to bootline when not existing if there is a console variable in the u-boot environment and not one on the append line from syslinux config add what is in the environment to the bootargs, allows us to not need to modify the config in a disk image --- common/cmd_pxe.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c index 9c43e63..eb5f9c3 100644 --- a/common/cmd_pxe.c +++ b/common/cmd_pxe.c @@ -606,6 +606,7 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) char initrd_str[22]; char mac_str[29] = ""; char ip_str[68] = ""; + char console[30] = ""; char *bootargs; int bootm_argc = 3; int len = 0; @@ -665,8 +666,21 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) } #endif - if (label->append) + if (label->append) { len += strlen(label->append); + /* check for a console line in the boot args passed in from the + * config file. If there is no console line and the enviornment + * has a console variable add it to the bootargs + */ + if ( !strstr(label->append, "console=") ) { + printf("no console= \n"); + if (getenv("console")) { + sprintf(console, " console=%s", + getenv("console")); + len += strlen(console); + } + } + } if (len) { bootargs = malloc(len + 1); @@ -675,6 +689,8 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) bootargs[0] = '\0'; if (label->append) strcpy(bootargs, label->append); + if (strlen(console) > 0) + strcat(bootargs, console); strcat(bootargs, ip_str); strcat(bootargs, mac_str); -- 1.9.0