~tom-gall/live-build/integrate-linaro-media-create

« back to all changes in this revision

Viewing changes to helpers/binary_syslinux

  • Committer: Daniel Baumann
  • Date: 2011-03-09 18:17:15 UTC
  • Revision ID: git-v1:74c3ad26d5d710282da6f51b746a33ad6370b8ce
Rearranging helpers scripts in source tree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
 
3
 
# lh_binary_syslinux(1) - installs syslinux into binary
4
 
# Copyright (C) 2006-2010 Daniel Baumann <daniel@debian.org>
5
 
#
6
 
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
7
 
# This is free software, and you are welcome to redistribute it
8
 
# under certain conditions; see COPYING for details.
9
 
 
10
 
set -e
11
 
 
12
 
# Including common functions
13
 
. "${LH_BASE:-/usr/share/live-helper}"/live-helper.sh
14
 
 
15
 
# Setting static variables
16
 
DESCRIPTION="$(Echo 'installs syslinux into binary')"
17
 
HELP=""
18
 
USAGE="${PROGRAM} [--force]"
19
 
 
20
 
Arguments "${@}"
21
 
 
22
 
# Reading configuration files
23
 
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
24
 
Set_defaults
25
 
 
26
 
if [ "${LH_BOOTLOADER}" != "syslinux" ]
27
 
then
28
 
        exit 0
29
 
fi
30
 
 
31
 
Echo_message "Begin installing syslinux..."
32
 
 
33
 
# Requiring stage file
34
 
Require_stagefile .stage/config .stage/bootstrap
35
 
 
36
 
# Checking stage file
37
 
Check_stagefile .stage/binary_syslinux
38
 
 
39
 
# Checking syslinux templates
40
 
Check_templates syslinux
41
 
 
42
 
# Checking lock file
43
 
Check_lockfile .lock
44
 
 
45
 
# Creating lock file
46
 
Create_lockfile .lock
47
 
 
48
 
# Check architecture
49
 
Check_architecture amd64 i386
50
 
Check_crossarchitecture
51
 
 
52
 
# Checking depends
53
 
Check_package chroot/usr/bin/syslinux syslinux
54
 
 
55
 
# Restoring cache
56
 
Restore_cache cache/packages_binary
57
 
 
58
 
# Installing depends
59
 
Install_package
60
 
 
61
 
# Local functions
62
 
Utf8_to_latin1 ()
63
 
{
64
 
        VALUE="${1}"
65
 
 
66
 
        echo "${VALUE}" | iconv -f utf-8 -t latin1
67
 
}
68
 
 
69
 
Syslinux_memtest_entry ()
70
 
{
71
 
        LABEL="${1}"
72
 
        MENULABEL="$(Utf8_to_latin1 "${2}")"
73
 
        KERNEL="${3}"
74
 
 
75
 
        MEMTEST="${MEMTEST}\nlabel ${LABEL}\n"
76
 
 
77
 
        # Write the menu label if the syslinux menu is being use
78
 
        MEMTEST="${MEMTEST}\tmenu label ${MENULABEL}\n"
79
 
        MEMTEST="${MEMTEST}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
80
 
        MEMTEST="$(/bin/echo ${MEMTEST} | sed -e 's|//|/|g')"
81
 
}
82
 
 
83
 
Syslinux_live_entry ()
84
 
{
85
 
        LABEL="${1}"
86
 
        MENULABEL="$(Utf8_to_latin1 "${2}")"
87
 
        MENULABEL="${2}"
88
 
        KERNEL="${3}"
89
 
        INITRD="${4}"
90
 
        APPEND="${5}"
91
 
 
92
 
        case "${LH_BINARY_IMAGES}" in
93
 
                iso*|usb*)
94
 
                        NUMBER="$(ls -1 ${KERNEL_PATH} | grep 'vmlinuz[0-9]\+$' | wc -l)"
95
 
                        NUMBER="$((${NUMBER} +1))"
96
 
 
97
 
                        # Do not add numbering to filenames if first kernel/initrd
98
 
                        if [ "${NUMBER}" = "1" ]
99
 
                        then
100
 
                                NUMBER=""
101
 
                        fi
102
 
 
103
 
                        # Note: ISOLINUX will not find the kernel if the name ends in ".img".
104
 
                        if [ -e ${KERNEL_PATH}/${KERNEL} ]
105
 
                        then
106
 
                                mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${NUMBER}
107
 
                        fi
108
 
 
109
 
                        if [ -e ${KERNEL_PATH}/${INITRD} ]
110
 
                        then
111
 
                                mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${NUMBER}.img
112
 
                        fi
113
 
 
114
 
                        KERNEL=vmlinuz${NUMBER}
115
 
                        INITRD=initrd${NUMBER}.img
116
 
                ;;
117
 
        esac
118
 
 
119
 
        # Regular kernel
120
 
        LINUX_LIVE="${LINUX_LIVE}\nlabel ${LABEL}\n"
121
 
 
122
 
        # Write the menu label if the syslinux menu is being use
123
 
        if [ -n "${MENULABEL}" ]
124
 
        then
125
 
                LINUX_LIVE="${LINUX_LIVE}\tmenu label ${MENULABEL}\n"
126
 
        fi
127
 
 
128
 
        LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
129
 
        LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} live-config ${LH_BOOTAPPEND_LIVE} ${APPEND}\n"
130
 
 
131
 
        # Failsafe kernel
132
 
        LINUX_LIVE="${LINUX_LIVE}\nlabel ${LABEL}failsafe\n"
133
 
 
134
 
        # Write the menu label if the syslinux menu is being use
135
 
        if [ -n "${MENULABEL}" ]
136
 
        then
137
 
                LINUX_LIVE="${LINUX_LIVE}\tmenu label ${MENULABEL} (failsafe)\n"
138
 
        fi
139
 
 
140
 
        LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
141
 
        LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} live-config ${LH_BOOTAPPEND_LIVE} ${APPEND} ${FAILSAFE}\n"
142
 
}
143
 
 
144
 
Syslinux_install_entry ()
145
 
{
146
 
        LABEL="${1}"
147
 
        KERNEL="${2}"
148
 
        INITRD="${3}"
149
 
        APPEND="${4}"
150
 
 
151
 
        # Boot in quiet mode where appropriate
152
 
        QAPPEND="quiet"
153
 
 
154
 
        for TYPE in Install Expert Rescue Auto
155
 
        do
156
 
                case "${TYPE}" in
157
 
                        Install)
158
 
                                TAPPEND="${APPEND} ${QAPPEND}"
159
 
                                ;;
160
 
 
161
 
                        Expert)
162
 
                                TAPPEND="priority=low ${APPEND}"
163
 
                                ;;
164
 
 
165
 
                        Rescue)
166
 
                                TAPPEND="rescue/enable=true ${APPEND} ${QAPPEND}"
167
 
                                ;;
168
 
 
169
 
                        Auto)
170
 
                                TAPPEND="auto=true priority=critical ${APPEND} ${QAPPEND}"
171
 
                                ;;
172
 
                esac
173
 
 
174
 
                case "${LABEL}" in
175
 
                        Text)
176
 
                                TYPE_SUFFIX=""
177
 
                                ;;
178
 
                        GUI)
179
 
                                TYPE_SUFFIX="gui"
180
 
                                ;;
181
 
                esac
182
 
 
183
 
                LINUX_INSTALL="${LINUX_INSTALL}\nlabel $(echo "${TYPE}" | tr A-Z a-z)${TYPE_SUFFIX}\n"
184
 
                LINUX_INSTALL="${LINUX_INSTALL}\tmenu label ${LABEL} ${TYPE}\n"
185
 
                LINUX_INSTALL="${LINUX_INSTALL}\tkernel ${LIVE_INSTALL_KERNEL_PATH}/${KERNEL}\n"
186
 
                LINUX_INSTALL="${LINUX_INSTALL}\tappend initrd=${LIVE_INSTALL_KERNEL_PATH}/${INITRD} ${TAPPEND} ${LH_BOOTAPPEND_INSTALL}\n"
187
 
        done
188
 
}
189
 
 
190
 
Copy_syslinux_templates ()
191
 
{
192
 
        cp -r "${TEMPLATES}"/common/* ${SCREEN_PATH}
193
 
 
194
 
        if [ "${LH_SYSLINUX_MENU}" = "false" ]
195
 
        then
196
 
                cp "${TEMPLATES}"/normal/* ${SCREEN_PATH}
197
 
        else
198
 
                cp "${TEMPLATES}"/menu/* ${SCREEN_PATH}
199
 
 
200
 
                case "${LH_SYSLINUX_MENU}" in
201
 
                        gfxboot)
202
 
                                MENUMODULE="gfxboot.c32"
203
 
                                ;;
204
 
 
205
 
                        menu)
206
 
                                MENUMODULE="menu.c32"
207
 
                                ;;
208
 
 
209
 
                        vesamenu)
210
 
                                MENUMODULE="vesamenu.c32"
211
 
                                ;;
212
 
 
213
 
                        *)
214
 
                                if [ -z "${LH_SYSLINUX_CFG}" ]
215
 
                                then
216
 
                                        MENUMODULE=$(grep 'menu.c32' ${TEMPLATES}/menu/syslinux.cfg | sed 's|default\s*.*/\(.*menu.c32\)$|\1|g')
217
 
                                else
218
 
                                        LH_SYSLINUX_CFG="${LH_SYSLINUX_CFG:-${TEMPLATES}/menu/syslinux.cfg}"
219
 
                                fi
220
 
                                ;;
221
 
                esac
222
 
 
223
 
                case "${LH_BUILD_WITH_CHROOT}" in
224
 
                        true)
225
 
                                cp chroot/usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
226
 
                                ;;
227
 
                        false)
228
 
                                cp /usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
229
 
                                ;;
230
 
                esac
231
 
        fi
232
 
 
233
 
        if ls "${TEMPLATES}/${LH_LANGUAGE}"/* > /dev/null 2>&1
234
 
        then
235
 
                cp -r "${TEMPLATES}"/"${LH_LANGUAGE}"/* ${SCREEN_PATH}
236
 
        else
237
 
                if ls "${TEMPLATES}"/en/* > /dev/null 2>&1
238
 
                then
239
 
                        cp -r "${TEMPLATES}"/en/* ${SCREEN_PATH}
240
 
                fi
241
 
        fi
242
 
 
243
 
        if ls ${SCREEN_PATH}/*.live > /dev/null 2>&1
244
 
        then
245
 
                for FILE in ${SCREEN_PATH}/*.live
246
 
                do
247
 
                        mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
248
 
                done
249
 
        fi
250
 
 
251
 
        if [ "${LH_DEBIAN_INSTALLER}" != "false" ]
252
 
        then
253
 
                if ls ${SCREEN_PATH}/*.install > /dev/null 2>&1
254
 
                then
255
 
                        for FILE in ${SCREEN_PATH}/*.install
256
 
                        do
257
 
                                mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
258
 
                        done
259
 
                fi
260
 
 
261
 
                case "${LH_ARCHITECTURE}" in
262
 
                        amd64|i386|powerpc)
263
 
                                if ls ${SCREEN_PATH}/*.install.g-i > /dev/null 2>&1
264
 
                                then
265
 
                                        for FILE in ${SCREEN_PATH}/*.install.g-i
266
 
                                        do
267
 
                                                mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
268
 
                                        done
269
 
                                fi
270
 
                                ;;
271
 
 
272
 
                        *)
273
 
                                rm -f ${SCREEN_PATH}/*.install.g-i
274
 
                                ;;
275
 
                esac
276
 
        else
277
 
                rm -f ${SCREEN_PATH}/*.install*
278
 
        fi
279
 
 
280
 
        if [ "${LH_SYSLINUX_MENU}" != "false" ]
281
 
        then
282
 
                rm -f ${DATA_PATH}/boot.txt
283
 
        fi
284
 
 
285
 
        # Copying custom splash screen
286
 
        if [ "${LH_SYSLINUX_SPLASH}" = "none" ]
287
 
        then
288
 
                # no splash screen
289
 
                SPLASH=""
290
 
                rm -f ${SCREEN_PATH}/splash.rle
291
 
                rm -f ${DATA_PATH}/splash.png
292
 
        else
293
 
                if [ "${LH_SYSLINUX_MENU}" = "false" ]
294
 
                then
295
 
                        SPLASH="${LIVE_DATA_PATH}/splash.rle"
296
 
                else
297
 
                        SPLASH="${LIVE_DATA_PATH}/splash.png"
298
 
                fi
299
 
 
300
 
                if [ -n "${LH_SYSLINUX_SPLASH}" ]
301
 
                then
302
 
                        if [ ! -e "${LH_SYSLINUX_SPLASH}" ]
303
 
                        then
304
 
                                Echo_error "%s doen't exist" "${LH_SYSLINUX_SPLASH}"
305
 
                                exit 1
306
 
                        else
307
 
                                rm -f ${SCREEN_PATH}/splash.rle
308
 
                                rm -f ${DATA_PATH}/splash.png
309
 
                                cp -f "${LH_SYSLINUX_SPLASH}" ${DATA_PATH}/$(basename ${SPLASH})
310
 
                        fi
311
 
                fi
312
 
        fi
313
 
}
314
 
 
315
 
Configure_syslinux_templates ()
316
 
{
317
 
        templates="$(find ${SYSLINUX_PATH} -type f -name '*.cfg' -o -name '*.txt')"
318
 
 
319
 
        for template_file in ${templates}
320
 
        do
321
 
                sed -i -e "s|{\$LINUX_LIVE}|${LINUX_LIVE}|" \
322
 
                       -e "s|{\$LINUX_INSTALL}|${LINUX_INSTALL}|" \
323
 
                       -e "s|{\$MEMTEST}|${MEMTEST}|" \
324
 
                       -e "s|{\$LIVE_SCREEN_PATH}|${LIVE_SCREEN_PATH}|" \
325
 
                       -e "s|{\$LIVE_DATA_PATH}|${LIVE_DATA_PATH}|" \
326
 
                       -e "s|{\$LIVE_KERNEL_PATH}|${LIVE_KERNEL_PATH}|" \
327
 
                       -e "s|{\$SPLASH}|${SPLASH}|" \
328
 
                       -e "s|{\$LH_DISTRIBUTION}|${LH_DISTRIBUTION}|" \
329
 
                       -e "s|{\$LH_DATE}|$(date +%Y%m%d)|" \
330
 
                       -e "s|{\$LH_MEDIA}|${MEDIA}|" \
331
 
                       -e "s|{\$LH_VERSION}|${VERSION}|" \
332
 
                       -e "s|{\$LH_SYSLINUX_TIMEOUT}|${LH_SYSLINUX_TIMEOUT}0|" \
333
 
                $template_file
334
 
        done
335
 
 
336
 
        case "${LH_BINARY_IMAGES}" in
337
 
                usb*)
338
 
                        if [ -f "${SYSLINUX_PATH}/exithelp.cfg" ]
339
 
                        then
340
 
                                sed -i -e "s|config isolinux.cfg|config syslinux.cfg|" "${SYSLINUX_PATH}"/exithelp.cfg
341
 
                        fi
342
 
                        ;;
343
 
 
344
 
                net)
345
 
                        if [ -f "${SCREEN_PATH}/exithelp.cfg" ]
346
 
                        then
347
 
                                sed -i -e "s|config isolinux.cfg|config ${LIVE_KERNEL_PATH}/pxelinux.cfg/default|" "${SCREEN_PATH}"/exithelp.cfg
348
 
                        fi
349
 
                        ;;
350
 
        esac
351
 
}
352
 
 
353
 
# Setting up common variables
354
 
case "${LH_INITRAMFS}" in
355
 
        casper)
356
 
                INITFS="casper"
357
 
                ;;
358
 
 
359
 
        live-initramfs)
360
 
                INITFS="live"
361
 
                ;;
362
 
esac
363
 
 
364
 
# Setting boot method specific variables
365
 
case "${LH_BINARY_IMAGES}" in
366
 
        iso*)
367
 
                SYSLINUX_PATH="binary/isolinux"
368
 
                KERNEL_PATH="binary/${INITFS}"
369
 
                SCREEN_PATH="${SYSLINUX_PATH}"
370
 
                DATA_PATH="${SCREEN_PATH}"
371
 
                LIVE_KERNEL_PATH="/${INITFS}"
372
 
                LIVE_INSTALL_KERNEL_PATH="/install"
373
 
                LIVE_SCREEN_PATH="/isolinux"
374
 
                LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
375
 
                MEDIA="CD-ROM"
376
 
                ;;
377
 
 
378
 
        net)
379
 
                SYSLINUX_PATH="tftpboot"
380
 
                KERNEL_PATH="${SYSLINUX_PATH}/debian-live/${LH_ARCHITECTURE}"
381
 
                SCREEN_PATH="${SYSLINUX_PATH}/debian-live/${LH_ARCHITECTURE}/boot-screens"
382
 
                DATA_PATH="${SCREEN_PATH}"
383
 
                LIVE_KERNEL_PATH="debian-live/${LH_ARCHITECTURE}"
384
 
                LIVE_INSTALL_KERNEL_PATH="debian-install/${LH_ARCHITECTURE}"
385
 
                LIVE_SCREEN_PATH="debian-live/${LH_ARCHITECTURE}/boot-screens"
386
 
                LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
387
 
                MEDIA="netboot"
388
 
                ;;
389
 
 
390
 
        usb*|tar)
391
 
                SYSLINUX_PATH="binary/syslinux"
392
 
                KERNEL_PATH="binary/${INITFS}"
393
 
                SCREEN_PATH="${SYSLINUX_PATH}"
394
 
                DATA_PATH="${SCREEN_PATH}"
395
 
                LIVE_KERNEL_PATH="/${INITFS}"
396
 
                LIVE_INSTALL_KERNEL_PATH="/install"
397
 
                LIVE_SCREEN_PATH="/syslinux"
398
 
                LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
399
 
                MEDIA="hd-media"
400
 
                ;;
401
 
esac
402
 
 
403
 
Check_multiarchitecture
404
 
 
405
 
# Creating directories
406
 
mkdir -p "${KERNEL_PATH}"
407
 
mkdir -p "${SCREEN_PATH}"
408
 
mkdir -p "${DATA_PATH}"
409
 
 
410
 
# Setting boot parameters
411
 
case "${LH_ENCRYPTION}" in
412
 
        ""|false)
413
 
                ;;
414
 
        *)
415
 
                LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} encryption=${LH_ENCRYPTION}"
416
 
                ;;
417
 
esac
418
 
 
419
 
if [ -n "${LH_USERNAME}" ]
420
 
then
421
 
        case "${LH_INITRAMFS}" in
422
 
                casper)
423
 
                        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} username=${LH_USERNAME}"
424
 
                        ;;
425
 
 
426
 
                live-initramfs)
427
 
                        if [ "${LH_USERNAME}" != "user" ]
428
 
                        then
429
 
                                LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} username=${LH_USERNAME}"
430
 
                        fi
431
 
                        ;;
432
 
        esac
433
 
fi
434
 
 
435
 
if [ -n "${LH_HOSTNAME}" ]
436
 
then
437
 
        case "${LH_INITRAMFS}" in
438
 
                casper)
439
 
                        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} hostname=${LH_HOSTNAME}"
440
 
                        ;;
441
 
 
442
 
                live-initramfs)
443
 
                        if [ "${LH_HOSTNAME}" != "debian" ]
444
 
                        then
445
 
                                LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} hostname=${LH_HOSTNAME}"
446
 
                        fi
447
 
                        ;;
448
 
        esac
449
 
fi
450
 
 
451
 
if [ "${LH_UNION_FILESYSTEM}" != "aufs" ]
452
 
then
453
 
        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}"
454
 
fi
455
 
 
456
 
if [ "${LH_EXPOSED_ROOT}" != "false" ]
457
 
then
458
 
        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot"
459
 
fi
460
 
 
461
 
if [ "${LH_BINARY_IMAGES}" = "net" ]
462
 
then
463
 
        case "${LH_NET_ROOT_FILESYSTEM}" in
464
 
                nfs)
465
 
                        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=nfs nfsroot=${LH_NET_ROOT_SERVER}:${LH_NET_ROOT_PATH}"
466
 
                        ;;
467
 
 
468
 
                cifs)
469
 
                        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//${LH_NET_ROOT_SERVER}${LH_NET_ROOT_PATH}"
470
 
                        ;;
471
 
 
472
 
                *)
473
 
                        Echo_error "Unsupported net filesystem"
474
 
                        exit 1
475
 
                        ;;
476
 
        esac
477
 
 
478
 
        if [ -n "${LH_NET_ROOT_MOUNTOPTIONS}" ]
479
 
        then
480
 
                LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfsopts=${LH_NET_ROOT_MOUNTOPTIONS}"
481
 
        fi
482
 
fi
483
 
 
484
 
if [ -n "${LH_NET_COW_PATH}" ]
485
 
then
486
 
        case "${LH_NET_COW_FILESYSTEM}" in
487
 
                nfs)
488
 
                        if [ -n "${LH_NET_COW_MOUNTOPTIONS}" ]
489
 
                        then
490
 
                                LH_NET_COW_MOUNTOPTIONS=",${LH_NET_COW_MOUNTOPTIONS}"
491
 
                        fi
492
 
 
493
 
                        LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfscow=${LH_NET_COW_SERVER}:${LH_NET_COW_PATH}${LH_NET_COW_MOUNTOPTIONS}"
494
 
                        ;;
495
 
 
496
 
                *)
497
 
                        Echo_error "Unsupported net filesystem"
498
 
                        exit 1
499
 
                        ;;
500
 
        esac
501
 
fi
502
 
 
503
 
LH_BOOTAPPEND_LIVE="$(echo ${LH_BOOTAPPEND_LIVE} | sed -e 's|  ||')"
504
 
 
505
 
# Parameters are listed at: linux/Documentation/kernel-parameters.txt
506
 
FAILSAFE="noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal"
507
 
 
508
 
# Moving kernels into place
509
 
if [ "binary/${INITFS}" != "${KERNEL_PATH}" ]
510
 
then
511
 
        mv binary/${INITFS}/vmlinuz* ${KERNEL_PATH}
512
 
        mv binary/${INITFS}/initrd* ${KERNEL_PATH}
513
 
 
514
 
        if [ "${LH_MEMTEST}" != "false" ] && [ "${LH_MEMTEST}" != "none" ]
515
 
        then
516
 
                mv binary/${INITFS}/memtest ${KERNEL_PATH}
517
 
        fi
518
 
fi
519
 
 
520
 
# Default entries
521
 
DEFAULT_FLAVOUR="$(echo ${LH_LINUX_FLAVOURS} | awk '{ print $1 }')"
522
 
DEFAULT_KERNEL="$(basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR})"
523
 
DEFAULT_INITRD="initrd.img-$(echo ${DEFAULT_KERNEL} | sed -e 's|vmlinuz-||')"
524
 
 
525
 
Syslinux_live_entry "live" "${LH_SYSLINUX_MENU_LIVE_ENTRY}" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
526
 
 
527
 
if [ "$(echo ${LH_LINUX_FLAVOURS} | wc -w)" -gt "1" ]
528
 
then
529
 
        for FLAVOUR in ${LH_LINUX_FLAVOURS}
530
 
        do
531
 
                if [ "${FLAVOUR}" != "${DEFAULT_FLAVOUR}" ]
532
 
                then
533
 
                        FLAVOUR_KERNEL="$(basename chroot/boot/vmlinuz-*${FLAVOUR})"
534
 
                        FLAVOUR_INITRD="initrd.img-$(echo ${FLAVOUR_KERNEL} | sed -e 's|vmlinuz-||')"
535
 
                        Syslinux_live_entry "live-${FLAVOUR}" "${LH_SYSLINUX_MENU_LIVE_ENTRY} ${FLAVOUR}" "${FLAVOUR_KERNEL}" "${FLAVOUR_INITRD}"
536
 
                fi
537
 
        done
538
 
fi
539
 
 
540
 
# Only needed for non-vesamenu, non-gfxboot syslinux
541
 
case "${LH_SYSLINUX_MENU}" in
542
 
        false|menu)
543
 
                # Adding syslinux hardcoded default label entry
544
 
                Syslinux_live_entry "linux" "" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
545
 
                ;;
546
 
esac
547
 
 
548
 
# Assembling debian-installer configuration
549
 
if [ "${LH_DEBIAN_INSTALLER}" != "false" ]
550
 
then
551
 
        VMLINUZ_DI="vmlinuz"
552
 
        INITRD_DI="initrd.gz"
553
 
        APPEND_DI="vga=normal"
554
 
 
555
 
        VMLINUZ_GI="gtk/vmlinuz"
556
 
        INITRD_GI="gtk/initrd.gz"
557
 
        APPEND_GI="video=vesa:ywrap,mtrr vga=788"
558
 
 
559
 
        if [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${VMLINUZ_DI}" ] && [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${INITRD_DI}" ]
560
 
        then
561
 
                Syslinux_install_entry "Text" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}"
562
 
        fi
563
 
 
564
 
        if [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${VMLINUZ_GI}" ] && [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${INITRD_GI}" ]
565
 
        then
566
 
                Syslinux_install_entry "GUI" "${VMLINUZ_GI}" "${INITRD_GI}" "${APPEND_GI}"
567
 
        fi
568
 
fi
569
 
 
570
 
# Assembling memtest configuration
571
 
if [ -f "${KERNEL_PATH}"/memtest ]
572
 
then
573
 
        Syslinux_memtest_entry "memtest" "${LH_SYSLINUX_MENU_MEMTEST_ENTRY}" "memtest"
574
 
fi
575
 
 
576
 
# Copy templates to base syslinux directory
577
 
Copy_syslinux_templates
578
 
 
579
 
# Fill in templates with created values
580
 
Configure_syslinux_templates
581
 
 
582
 
# Configure syslinux setup per boot method
583
 
case "${LH_BINARY_IMAGES}" in
584
 
        iso*)
585
 
                case "${LH_BUILD_WITH_CHROOT}" in
586
 
                        true)
587
 
                                cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
588
 
                                ;;
589
 
                        false)
590
 
                                cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
591
 
                                ;;
592
 
                esac
593
 
 
594
 
                mv ${SCREEN_PATH}/syslinux.cfg ${SCREEN_PATH}/isolinux.cfg
595
 
 
596
 
                # Copying configuration file
597
 
                if [ -n "${LH_SYSLINUX_CFG}" ]
598
 
                then
599
 
                        cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/isolinux.cfg
600
 
                fi
601
 
                ;;
602
 
 
603
 
        net)
604
 
                case "${LH_BUILD_WITH_CHROOT}" in
605
 
                        true)
606
 
                                cp chroot/usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
607
 
                                ;;
608
 
                        false)
609
 
                                cp /usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
610
 
                                ;;
611
 
                esac
612
 
 
613
 
                mkdir -p ${KERNEL_PATH}/pxelinux.cfg
614
 
                ln -s ${LIVE_KERNEL_PATH}/pxelinux.cfg ${SYSLINUX_PATH}/pxelinux.cfg
615
 
                ln -s ${LIVE_KERNEL_PATH}/pxelinux.0 ${SYSLINUX_PATH}/pxelinux.0
616
 
 
617
 
                # Adjusting include pathes
618
 
                for FILE in ${SCREEN_PATH}/*.cfg
619
 
                do
620
 
                        sed -i -e "s|^include |include ${LIVE_SCREEN_PATH}/|g" "${FILE}"
621
 
                done
622
 
 
623
 
                sed -i -e "s| f| ${LIVE_SCREEN_PATH}/f|g" ${SCREEN_PATH}/prompt.cfg
624
 
 
625
 
                mv ${SCREEN_PATH}/syslinux.cfg ${KERNEL_PATH}/pxelinux.cfg/default
626
 
 
627
 
                # Copying configuration file
628
 
                if [ -n "${LH_SYSLINUX_CFG}" ]
629
 
                then
630
 
                        cp "${LH_SYSLINUX_CFG}" ${KERNEL_PATH}/pxelinux.cfg/default
631
 
                fi
632
 
                ;;
633
 
 
634
 
        usb*|tar)
635
 
                case "${LH_BUILD_WITH_CHROOT}" in
636
 
                        true)
637
 
                                cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
638
 
                                ;;
639
 
                        false)
640
 
                                cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
641
 
                                ;;
642
 
                esac
643
 
 
644
 
                # Copying configuration file
645
 
                if [ -n "${LH_SYSLINUX_CFG}" ]
646
 
                then
647
 
                        cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/syslinux.cfg
648
 
                fi
649
 
                ;;
650
 
esac
651
 
 
652
 
# Saving cache
653
 
Save_cache cache/packages_binary
654
 
 
655
 
# Removing depends
656
 
Remove_package
657
 
 
658
 
# Creating stage file
659
 
Create_stagefile .stage/binary_syslinux