diff options
author | Jason Wessel <jason.wessel@windriver.com> | 2013-09-17 13:32:16 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-30 22:11:56 +0100 |
commit | 4a0ff9c74dcf41847c23f30616e95f18309e59c1 (patch) | |
tree | 33746b63645e28fb338ec654c4a63865e0ac969c | |
parent | 5a2d11e845a52d932f9c546142fb58122ed2cba0 (diff) | |
download | poky-4a0ff9c74dcf41847c23f30616e95f18309e59c1.tar.gz |
syslinux.bbclass: Fix hard coding of console=tty*
The SYSLINUX_SERIAL variable was hard coded and occasionally needs to
be different for the kernel argument vs the syslinux argument.
In the auto-generated boot mode console=tty0 was hard coded, and this
is not needed at all, and causes problems in some cases if a end user
wanted to change the console=... via the kernel boot argument APPEND
mechanism. The default can be forced with SYSLINUX_DEFAULT_CONSOLE
for systems that need a special specification to enable the frame
buffer instead of a serial port.
[YOCTO #3944]
(From OE-Core rev: cf2fba810a8a59cff71bf2c12e516e9080146604)
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/syslinux.bbclass | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/meta/classes/syslinux.bbclass b/meta/classes/syslinux.bbclass index dae66097bc..49f58f5d08 100644 --- a/meta/classes/syslinux.bbclass +++ b/meta/classes/syslinux.bbclass | |||
@@ -12,7 +12,9 @@ | |||
12 | # ${APPEND} - an override list of append strings for each label | 12 | # ${APPEND} - an override list of append strings for each label |
13 | # ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited | 13 | # ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited |
14 | # ${SYSLINUX_SPLASH} - A background for the vga boot menu if using the boot menu | 14 | # ${SYSLINUX_SPLASH} - A background for the vga boot menu if using the boot menu |
15 | # ${SYSLINUX_DEFAULT_CONSOLE} - set to "console=ttyX" to change kernel boot default console | ||
15 | # ${SYSLINUX_SERIAL} - Set an alternate serial port or turn off serial with empty string | 16 | # ${SYSLINUX_SERIAL} - Set an alternate serial port or turn off serial with empty string |
17 | # ${SYSLINUX_SERIAL_TTY} - Set alternate console=tty... kernel boot argument | ||
16 | 18 | ||
17 | do_bootimg[depends] += "syslinux:do_populate_sysroot \ | 19 | do_bootimg[depends] += "syslinux:do_populate_sysroot \ |
18 | syslinux-native:do_populate_sysroot" | 20 | syslinux-native:do_populate_sysroot" |
@@ -21,7 +23,11 @@ SYSLINUXCFG = "${S}/syslinux.cfg" | |||
21 | 23 | ||
22 | ISOLINUXDIR = "/isolinux" | 24 | ISOLINUXDIR = "/isolinux" |
23 | SYSLINUXDIR = "/" | 25 | SYSLINUXDIR = "/" |
26 | # The kernel has an internal default console, which you can override with | ||
27 | # a console=...some_tty... | ||
28 | SYSLINUX_DEFAULT_CONSOLE ?= "" | ||
24 | SYSLINUX_SERIAL ?= "0 115200" | 29 | SYSLINUX_SERIAL ?= "0 115200" |
30 | SYSLINUX_SERIAL_TTY ?= "ttyS0,115200" | ||
25 | ISO_BOOTIMG = "isolinux/isolinux.bin" | 31 | ISO_BOOTIMG = "isolinux/isolinux.bin" |
26 | ISO_BOOTCAT = "isolinux/boot.cat" | 32 | ISO_BOOTCAT = "isolinux/boot.cat" |
27 | MKISOFS_OPTIONS = "-no-emul-boot -boot-load-size 4 -boot-info-table" | 33 | MKISOFS_OPTIONS = "-no-emul-boot -boot-load-size 4 -boot-info-table" |
@@ -105,6 +111,8 @@ python build_syslinux_cfg () { | |||
105 | cfgfile.write('%s\n' % opt) | 111 | cfgfile.write('%s\n' % opt) |
106 | 112 | ||
107 | cfgfile.write('ALLOWOPTIONS 1\n'); | 113 | cfgfile.write('ALLOWOPTIONS 1\n'); |
114 | syslinux_default_console = d.getVar('SYSLINUX_DEFAULT_CONSOLE', True) | ||
115 | syslinux_serial_tty = d.getVar('SYSLINUX_SERIAL_TTY', True) | ||
108 | syslinux_serial = d.getVar('SYSLINUX_SERIAL', True) | 116 | syslinux_serial = d.getVar('SYSLINUX_SERIAL', True) |
109 | if syslinux_serial: | 117 | if syslinux_serial: |
110 | cfgfile.write('SERIAL %s\n' % syslinux_serial) | 118 | cfgfile.write('SERIAL %s\n' % syslinux_serial) |
@@ -147,10 +155,10 @@ python build_syslinux_cfg () { | |||
147 | localdata.setVar('OVERRIDES', label + ':' + overrides) | 155 | localdata.setVar('OVERRIDES', label + ':' + overrides) |
148 | bb.data.update_data(localdata) | 156 | bb.data.update_data(localdata) |
149 | 157 | ||
150 | btypes = [ [ "", "console=tty0" ] ] | 158 | btypes = [ [ "", syslinux_default_console ] ] |
151 | if menu and syslinux_serial: | 159 | if menu and syslinux_serial: |
152 | btypes = [ [ "Graphics console ", " console=tty0" ], | 160 | btypes = [ [ "Graphics console ", syslinux_default_console ], |
153 | [ "Serial console ", " console=ttyS0,115200" ] ] | 161 | [ "Serial console ", syslinux_serial_tty ] ] |
154 | 162 | ||
155 | for btype in btypes: | 163 | for btype in btypes: |
156 | cfgfile.write('LABEL %s%s\nKERNEL /vmlinuz\n' % (btype[0], label)) | 164 | cfgfile.write('LABEL %s%s\nKERNEL /vmlinuz\n' % (btype[0], label)) |