debian: Add debian packaging for installer/pxe-network-installer

This update adds debian packaging to the pxe-network-installer package.
This includes a set of release based bios and uefi grub menus and a
modification to the pxeboot-update.sh script to support creating
debian grub files based on host mac address.

Test Plan:

PASS: Verify package build, image build and pxeboot install
PASS: Verify package install directory structure layout
PASS: Verify packaging of new debian /var/pxeboot/pxelinux.cfg.files
PASS: Verify platform release variable substitution in new grub files
PASS: Verify pxeboot-update.sh script changes produce both bios & efi
      variable substituted mac based grub file for a provisioned host

Regression:

PASS: Verify CentOS build and system install

Story: 2009101
Task: 44677
Signed-off-by: Eric MacDonald <eric.macdonald@windriver.com>
Change-Id: I69f735ef45bf0e0ecd612f5d7a8f1fcf6e51ca88
This commit is contained in:
Eric MacDonald 2022-03-21 11:11:10 +00:00
parent 9af975fbdb
commit cddb4fc6dd
20 changed files with 373 additions and 24 deletions

View File

@ -1,3 +1,4 @@
installer/pxe-network-installer
mtce
mtce-common
mtce-compute

View File

@ -0,0 +1,5 @@
pxe-network-installer (2.0-1) unstable; urgency=medium
* Initial release.
-- Eric MacDonald <eric.macdonald@windriver.com> Wed, 10 Mar 2022 13:01:55 +0000

View File

@ -0,0 +1,16 @@
Source: pxe-network-installer
Section: admin
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Homepage: https://www.starlingx.io
Standards-Version: 4.5.1
Build-Depends: debhelper-compat (= 13),
build-info-dev,
grub2,
syslinux-common
Package: pxe-network-installer
Architecture: all
Depends: ${misc:Depends}
Description: System node pxe boot installer
System node pxe boot installer templates, utils and objects

View File

@ -0,0 +1,43 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Contact: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Upstream-Name: pxe-network-installer
Source: https://opendev.org/starlingx/metal
Files: *
Copyright: (c) 2013-2022 Wind River Systems, Inc
(c) Others (See individual files for more details)
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2021 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1,2 @@
var/pxeboot
usr/sbin

View File

@ -0,0 +1,48 @@
#!/usr/bin/make -f
# export DH_VERBOSE = 1
export ROOT=$(CURDIR)/debian/tmp
export platform_release="$(shell grep SW_VERSION /usr/include/build_info.h | cut -d ' ' -f 3)"
%:
dh $@
override_dh_auto_configure:
sed -i "s/xxxSW_VERSIONxxx/${platform_release}/g" debian-pxe-* efi-debian-pxe-*
dh_auto_configure
override_dh_install:
install -v -d -m 755 $(ROOT)/usr/bin
install -v -d -m 755 $(ROOT)/var/pxeboot/pxelinux.cfg
install -v -d -m 755 $(ROOT)/var/pxeboot/pxelinux.cfg.files
install -v -d -m 755 $(ROOT)/var/pxeboot/rel-${platform_release}
install -v -d -m 755 $(ROOT)/usr/share/licenses/pxe-network-installer-1.0.0
# Review Note: The actual kernel and initrd files will be added later
# Pull in the kernel and initrd and add installer links.
ln -sf bzImage $(ROOT)/var/pxeboot/rel-${platform_release}/installer-bzImage
ln -sf initrd $(ROOT)/var/pxeboot/rel-${platform_release}/installer-initrd
# Add grub links
install -v -m 644 default $(ROOT)/var/pxeboot/pxelinux.cfg.files/default
install -v -m 644 default.static $(ROOT)/var/pxeboot/pxelinux.cfg.files/default.static
install -v -m 644 pxe-grub.cfg $(ROOT)/var/pxeboot/pxelinux.cfg.files/grub.cfg
install -v -m 644 pxe-grub.cfg.static $(ROOT)/var/pxeboot/pxelinux.cfg.files/grub.cfg.static
install -p -D -m 700 pxeboot-update.sh $(ROOT)/usr/sbin/pxeboot-update-${platform_release}.sh
# Legacy BIOS System Node Install grub menus
install -p -D -m 700 debian-pxe-controller-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/pxe-controller-install-${platform_release}
install -p -D -m 700 debian-pxe-smallsystem-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/pxe-smallsystem-install-${platform_release}
install -p -D -m 700 debian-pxe-storage-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/pxe-storage-install-${platform_release}
install -p -D -m 700 debian-pxe-worker-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/pxe-worker-install-${platform_release}
install -p -D -m 700 debian-pxe-worker_lowlatency-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/pxe-worker_lowlatency-install-${platform_release}
install -p -D -m 700 debian-pxe-smallsystem_lowlatency-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/pxe-smallsystem_lowlatency-install-${platform_release}
# UEFI System Node Install grub menus
install -p -D -m 700 efi-debian-pxe-controller-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/efi-pxe-controller-install-${platform_release}
install -p -D -m 700 efi-debian-pxe-smallsystem-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/efi-pxe-smallsystem-install-${platform_release}
install -p -D -m 700 efi-debian-pxe-storage-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/efi-pxe-storage-install-${platform_release}
install -p -D -m 700 efi-debian-pxe-worker-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/efi-pxe-worker-install-${platform_release}
install -p -D -m 700 efi-debian-pxe-worker_lowlatency-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/efi-pxe-worker_lowlatency-install-${platform_release}
install -p -D -m 700 efi-debian-pxe-smallsystem_lowlatency-install $(ROOT)/var/pxeboot/pxelinux.cfg.files/efi-pxe-smallsystem_lowlatency-install-${platform_release}
dh_install

View File

@ -0,0 +1,7 @@
---
debname: pxe-network-installer
debver: 2.0-1
src_path: pxe-network-installer
revision:
dist: $STX_DIST
PKG_GITREVCOUNT: true

View File

@ -0,0 +1,26 @@
SERIAL 0 115200
TIMEOUT 50
DEFAULT menu.c32
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
PROMPT 0
NOESCAPE 1
NOCOMPLETE 1
ALLOWOPTIONS 0
LABEL 1
MENU LABEL ^1) Standard Controller
MENU DEFAULT
KERNEL rel-xxxSW_VERSIONxxx/installer-bzImage
APPEND initrd=rel-xxxSW_VERSIONxxx/installer-initrd rdinit=/install traits=controller instname=debian instsh=0 instab=0 instw=10 instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
IPAPPEND 2

View File

@ -0,0 +1,26 @@
SERIAL 0 115200
TIMEOUT 50
DEFAULT menu.c32
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
PROMPT 0
NOESCAPE 1
NOCOMPLETE 1
ALLOWOPTIONS 0
LABEL 1
MENU LABEL ^1) All-in-one
MENU DEFAULT
KERNEL rel-xxxSW_VERSIONxxx/installer-bzImage
APPEND initrd=rel-xxxSW_VERSIONxxx/installer-initrd rdinit=/install traits=controller,worker instname=debian instsh=0 instab=0 instw=10 instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
IPAPPEND 2

View File

@ -0,0 +1,26 @@
SERIAL 0 115200
TIMEOUT 50
DEFAULT menu.c32
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
PROMPT 0
NOESCAPE 1
NOCOMPLETE 1
ALLOWOPTIONS 0
LABEL 1
MENU LABEL ^1) All-in-one (lowlatency)
MENU DEFAULT
KERNEL rel-xxxSW_VERSIONxxx/installer-bzImage
APPEND initrd=rel-xxxSW_VERSIONxxx/installer-initrd rdinit=/install traits=controller,worker,lowlatency instname=debian instsh=0 instab=0 instw=10 instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
IPAPPEND 2

View File

@ -0,0 +1,26 @@
SERIAL 0 115200
TIMEOUT 50
DEFAULT menu.c32
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
PROMPT 0
NOESCAPE 1
NOCOMPLETE 1
ALLOWOPTIONS 0
LABEL 1
MENU LABEL ^1) Storage
MENU DEFAULT
KERNEL rel-xxxSW_VERSIONxxx/installer-bzImage
APPEND initrd=rel-xxxSW_VERSIONxxx/installer-initrd rdinit=/install traits=storage instname=debian instsh=0 instab=0 instw=10 instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
IPAPPEND 2

View File

@ -0,0 +1,26 @@
SERIAL 0 115200
TIMEOUT 50
DEFAULT menu.c32
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
PROMPT 0
NOESCAPE 1
NOCOMPLETE 1
ALLOWOPTIONS 0
LABEL 1
MENU LABEL ^1) Worker
MENU DEFAULT
KERNEL rel-xxxSW_VERSIONxxx/installer-bzImage
APPEND initrd=rel-xxxSW_VERSIONxxx/installer-initrd rdinit=/install traits=worker instname=debian instsh=0 instab=0 instw=10 instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
IPAPPEND 2

View File

@ -0,0 +1,26 @@
SERIAL 0 115200
TIMEOUT 50
DEFAULT menu.c32
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
PROMPT 0
NOESCAPE 1
NOCOMPLETE 1
ALLOWOPTIONS 0
LABEL 1
MENU LABEL ^1) Lowlatency Worker
MENU DEFAULT
KERNEL rel-xxxSW_VERSIONxxx/installer-bzImage
APPEND initrd=rel-xxxSW_VERSIONxxx/installer-initrd rdinit=/install traits=worker,lowlatency instname=debian instsh=0 instab=0 instw=10 instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
IPAPPEND 2

View File

@ -0,0 +1,8 @@
default=0
timeout=10
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT_STYLE='countdown'
menuentry '1) UEFI Standard Controller' {
linuxefi rel-xxxSW_VERSIONxxx/installer-bzImage rdinit=/install traits=controller instname=debian instsh=0 instab=0 instw=10 BOOTIF=$net_default_mac instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
initrdefi rel-xxxSW_VERSIONxxx/installer-initrd

View File

@ -0,0 +1,8 @@
default=0
timeout=10
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT_STYLE='countdown'
menuentry '1) UEFI All-in-one' {
linuxefi rel-xxxSW_VERSIONxxx/installer-bzImage rdinit=/install traits=controller,worker instname=debian instsh=0 instab=0 instw=10 BOOTIF=$net_default_mac instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
initrdefi rel-xxxSW_VERSIONxxx/installer-initrd

View File

@ -0,0 +1,8 @@
default=0
timeout=10
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT_STYLE='countdown'
menuentry '1) UEFI All-in-one (lowlatency)' {
linuxefi rel-xxxSW_VERSIONxxx/installer-bzImage rdinit=/install traits=controller,worker,lowlatency instname=debian instsh=0 instab=0 instw=10 BOOTIF=$net_default_mac instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
initrdefi rel-xxxSW_VERSIONxxx/installer-initrd

View File

@ -0,0 +1,8 @@
default=0
timeout=10
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT_STYLE='countdown'
menuentry '1) UEFI Storage' {
linuxefi rel-xxxSW_VERSIONxxx/installer-bzImage rdinit=/install traits=storage instname=debian instsh=0 instab=0 instw=10 BOOTIF=$net_default_mac instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
initrdefi rel-xxxSW_VERSIONxxx/installer-initrd

View File

@ -0,0 +1,8 @@
default=0
timeout=10
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT_STYLE='countdown'
menuentry '1) UEFI Worker' {
linuxefi rel-xxxSW_VERSIONxxx/installer-bzImage rdinit=/install traits=worker instname=debian instsh=0 instab=0 instw=10 BOOTIF=$net_default_mac instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
initrdefi rel-xxxSW_VERSIONxxx/installer-initrd

View File

@ -0,0 +1,10 @@
default=0
timeout=10
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT_STYLE='countdown'
menuentry '1) UEFI lowlatency Worker' {
linuxefi rel-xxxSW_VERSIONxxx/installer-bzImage rdinit=/install traits=worker,lowlatency instname=debian instsh=0 instab=0 instw=10 BOOTIF=$net_default_mac instbr=starlingx ks=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/kickstart.cfg insturl=xxxBASE_URLxxx/feed/rel-xxxSW_VERSIONxxx/ostree_repo console=ttyS0,115200 console=tty1 biosdevname=0 net.ifnames=0 biosplusefi=1 xxxAPPEND_OPTIONSxxx
initrdefi rel-xxxSW_VERSIONxxx/installer-initrd
}

View File

@ -31,6 +31,7 @@ Arguments:
-T <tboot value> : Specify whether or not to use tboot (optional)
-k <kernel args> : Specify any extra kernel boot arguments (optional)
-l <base url> : Specify installer base URL
-d : Update Debian grub menus ; rather than centos menus
EOF
}
@ -67,8 +68,9 @@ function generate_config {
parms=$@
logger -t $0 " $parms"
debian_menus=false
while getopts "i:o:tgc:b:r:u:s:T:k:l:h" opt
while getopts "i:o:tgc:b:r:u:s:T:k:l:h:d" opt
do
case $opt in
i)
@ -91,6 +93,9 @@ do
c)
console=$OPTARG
;;
d)
debian_menus=true
;;
b)
boot_device=$OPTARG
;;
@ -101,10 +106,10 @@ do
tisnotify=$OPTARG
;;
s)
security_profile=$OPTARG
logger "security_profile is no longer supported ; ignoring"
;;
T)
tboot=$OPTARG
logger "tboot is no longer supported ; ignoring"
;;
k)
kernal_extra_args=$OPTARG
@ -123,6 +128,29 @@ do
esac
done
# handle debian.
# Support the validation check below by forcing
# boot and rootfs device to be set equal.
if [ ${debian_menus} = true ] ; then
if [ "${boot_device}" != "" ] ; then
instdev=${boot_device}
rootfs_device=${boot_device}
elif [ "${rootfs_device}" != "" ] ; then
instdev=${rootfs_device}
boot_device=${rootfs_device}
else
logger --stderr -t $0 "Error: Failed to supply an install device: $@"
usage
exit 1
fi
fi
if [ "$input_file" == "$output_file" ] ; then
logger --stderr -t $0 "Error: Input template and Output file must be different"
usage
exit 1
fi
# Validate parameters
if [ -z "$input_file" \
-o -z "$input_file_efi" \
@ -135,30 +163,30 @@ if [ -z "$input_file" \
exit 1
fi
APPEND_OPTIONS="boot_device=$boot_device rootfs_device=$rootfs_device"
if [ "${debian_menus}" = true ] ; then
APPEND_OPTIONS="instdev=$instdev"
else
APPEND_OPTIONS="boot_device=$boot_device rootfs_device=$rootfs_device"
if [ -n "$text_install" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS $text_install"
if [ -n "$text_install" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS $text_install"
fi
# We now require GPT partitions for all disks regardless of size
APPEND_OPTIONS="$APPEND_OPTIONS inst.gpt"
if [ -n "$tisnotify" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS tisnotify=$tisnotify"
fi
fi
if [ -n "$console" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS console=$console"
fi
if [ -n "$tisnotify" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS tisnotify=$tisnotify"
fi
# We now require GPT partitions for all disks regardless of size
APPEND_OPTIONS="$APPEND_OPTIONS inst.gpt"
# Add k8s support for namespaces
APPEND_OPTIONS="$APPEND_OPTIONS user_namespace.enable=1"
if [ -n "$security_profile" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS security_profile=$security_profile"
fi
if [ -n "$kernal_extra_args" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS $kernal_extra_args"
fi
@ -166,13 +194,6 @@ fi
BASE_URL=$base_url
generate_config $input_file $output_file
# for extended security profile UEFI boot only,
# a tboot option will be passed to target boot option menu
if [ "$security_profile" == "extended" -a -n "$tboot" ]; then
APPEND_OPTIONS="$APPEND_OPTIONS tboot=$tboot"
fi
generate_config $input_file_efi $output_file_efi
exit 0