61 lines
1.8 KiB
Diff
61 lines
1.8 KiB
Diff
From 7dace4fe678448c98ebb7beaa01ca64788ab02b4 Mon Sep 17 00:00:00 2001
|
|
From: Dennis Gilmore <dennis@ausil.us>
|
|
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
|
|
|