diff options
Diffstat (limited to 'meta/classes/syslinux.bbclass')
-rw-r--r-- | meta/classes/syslinux.bbclass | 68 |
1 files changed, 60 insertions, 8 deletions
diff --git a/meta/classes/syslinux.bbclass b/meta/classes/syslinux.bbclass index 0cc6b851bc..6eb804b75c 100644 --- a/meta/classes/syslinux.bbclass +++ b/meta/classes/syslinux.bbclass | |||
@@ -2,7 +2,63 @@ | |||
2 | # Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved | 2 | # Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved |
3 | # Released under the MIT license (see packages/COPYING) | 3 | # Released under the MIT license (see packages/COPYING) |
4 | 4 | ||
5 | # This creates a configuration file suitable for use with syslinux. | 5 | # Provide syslinux specific functions for building bootable images. |
6 | |||
7 | # External variables | ||
8 | # ${INITRD} - indicates a filesystem image to use as an initrd (optional) | ||
9 | # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) | ||
10 | # ${AUTO_SYSLINUXMENU} - set this to 1 to enable creating an automatic menu | ||
11 | # ${LABELS} - a list of targets for the automatic config | ||
12 | # ${APPEND} - an override list of append strings for each label | ||
13 | # ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited | ||
14 | |||
15 | do_bootimg[depends] += "syslinux:do_populate_sysroot \ | ||
16 | syslinux-native:do_populate_sysroot" | ||
17 | |||
18 | SYSLINUXCFG = "syslinux.cfg" | ||
19 | SYSLINUXMENU = "menu" | ||
20 | |||
21 | SYSLINUX_ISODIR = "${ISODIR}/isolinux" | ||
22 | SYSLINUX_HDDDIR = "${HDDDIR}" | ||
23 | ISO_BOOTIMG = "isolinux/isolinux.bin" | ||
24 | ISO_BOOTCAT = "isolinux/boot.cat" | ||
25 | MKISOFS_OPTIONS = "-no-emul-boot -boot-load-size 4 -boot-info-table" | ||
26 | |||
27 | syslinux_populate() { | ||
28 | DEST=$1 | ||
29 | CFGNAME=$2 | ||
30 | |||
31 | install -d ${DEST} | ||
32 | |||
33 | # Install the kernel, initrd, and rootfs | ||
34 | install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage ${DEST}/vmlinuz | ||
35 | if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then | ||
36 | install -m 0644 ${INITRD} ${DEST}/initrd | ||
37 | fi | ||
38 | if [ -n "${ROOTFS}" ] && [ -s "${ROOTFS}" ]; then | ||
39 | install -m 0644 ${ROOTFS} ${DEST}/rootfs.img | ||
40 | fi | ||
41 | |||
42 | # Install the config files | ||
43 | install -m 0644 ${SYSLINUXCFG} ${DEST}/${CFGNAME} | ||
44 | if [ -f ${SYSLINUXMENU} ]; then | ||
45 | install -m 0644 ${SYSLINUXMENU} ${DEST} | ||
46 | fi | ||
47 | } | ||
48 | |||
49 | syslinux_iso_populate() { | ||
50 | syslinux_populate ${SYSLINUX_ISODIR} isolinux.cfg | ||
51 | install -m 0644 ${STAGING_LIBDIR}/syslinux/isolinux.bin ${SYSLINUX_ISODIR} | ||
52 | } | ||
53 | |||
54 | syslinux_hddimg_populate() { | ||
55 | syslinux_populate ${SYSLINUX_HDDDIR} syslinux.cfg | ||
56 | install -m 0444 ${STAGING_LIBDIR}/syslinux/ldlinux.sys ${SYSLINUX_HDDDIR}/ldlinux.sys | ||
57 | } | ||
58 | |||
59 | syslinux_hddimg_install() { | ||
60 | syslinux ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg | ||
61 | } | ||
6 | 62 | ||
7 | python build_syslinux_menu () { | 63 | python build_syslinux_menu () { |
8 | import copy | 64 | import copy |
@@ -26,10 +82,8 @@ python build_syslinux_menu () { | |||
26 | if not cfile: | 82 | if not cfile: |
27 | raise bb.build.FuncFailed('Unable to read SYSLINUXMENU') | 83 | raise bb.build.FuncFailed('Unable to read SYSLINUXMENU') |
28 | 84 | ||
29 | bb.mkdirhier(os.path.dirname(cfile)) | ||
30 | |||
31 | try: | 85 | try: |
32 | cfgfile = file(cfile, 'w') | 86 | cfgfile = file(cfile, 'w') |
33 | except OSError: | 87 | except OSError: |
34 | raise bb.build.funcFailed('Unable to open %s' % (cfile)) | 88 | raise bb.build.funcFailed('Unable to open %s' % (cfile)) |
35 | 89 | ||
@@ -85,10 +139,8 @@ python build_syslinux_cfg () { | |||
85 | if not cfile: | 139 | if not cfile: |
86 | raise bb.build.FuncFailed('Unable to read SYSLINUXCFG') | 140 | raise bb.build.FuncFailed('Unable to read SYSLINUXCFG') |
87 | 141 | ||
88 | bb.mkdirhier(os.path.dirname(cfile)) | ||
89 | |||
90 | try: | 142 | try: |
91 | cfgfile = file(cfile, 'w') | 143 | cfgfile = file(cfile, 'w') |
92 | except OSError: | 144 | except OSError: |
93 | raise bb.build.funcFailed('Unable to open %s' % (cfile)) | 145 | raise bb.build.funcFailed('Unable to open %s' % (cfile)) |
94 | 146 | ||
@@ -103,7 +155,7 @@ python build_syslinux_cfg () { | |||
103 | if opts: | 155 | if opts: |
104 | for opt in opts.split(';'): | 156 | for opt in opts.split(';'): |
105 | cfgfile.write('%s\n' % opt) | 157 | cfgfile.write('%s\n' % opt) |
106 | 158 | ||
107 | cfgfile.write('ALLOWOPTIONS 1\n'); | 159 | cfgfile.write('ALLOWOPTIONS 1\n'); |
108 | cfgfile.write('DEFAULT %s\n' % (labels.split()[0])) | 160 | cfgfile.write('DEFAULT %s\n' % (labels.split()[0])) |
109 | 161 | ||