Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions platform/broadcom/sonic-platform-modules-dell/common/onie_mode_set
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/bin/bash
#scrit to set onie boot modes from NOS
# modes supported rescue/install/uninstall

VERBOSE=no
ONIEPATH="/mnt/onie-boot"

unset ONIE_MODE

function set_onie_boot()
{
# If reboot to ONIE is requested, set the ONIE boot mode (update/install/uninstall/rescue)
# and reboot.

# Exit if not superuser
if [[ "$EUID" -ne 0 ]]; then
echo "This command must be run as root" >&2
exit 1
fi

# Mount ONIE partition if not already mounted
if ! grep -qs '/mnt/onie-boot ' /proc/mounts; then
mkdir -p ${ONIEPATH}
mount LABEL=ONIE-BOOT ${ONIEPATH} || ERR=$?
if [[ ${ERR} -ne 0 ]]; then
VERBOSE=yes debug "Failed to mount ONIE partition."
exit 1
fi
fi

# Set mode
${ONIEPATH}/onie/tools/bin/onie-boot-mode -o ${ONIE_MODE} || ERR=$?
if [[ ${ERR} -ne 0 ]]; then
VERBOSE=yes debug "Failed to set ONIE boot mode. Ensure that mode is valid"
exit 1
fi

# Set next boot to ONIE
grub-editenv /host/grub/grubenv set next_entry=ONIE || ERR=$?
if [[ ${ERR} -ne 0 ]]; then
VERBOSE=yes debug "Failed to set next boot to ONIE."
exit 1
fi
echo "next boot mode set to onie - ${ONIE_MODE}"

}


function debug()
{
if [[ x"${VERBOSE}" == x"yes" ]]; then
echo `date` $@
fi
logger "$@"
}


SCRIPT=$0

function show_help_and_exit()
{
echo "Usage ${SCRIPT} [options]"
echo " This script will set modes in onie rescue/uninstall/install."
echo " "
echo " Available options:"
echo " -h, -? : getting this help"
echo " -o [mode] : boot into ONIE"

exit 0
}

function parse_options()
{
while getopts "h?vo:" opt; do
case $opt in
h|\? )
show_help_and_exit
;;
o )
ONIE_MODE=$OPTARG
set_onie_boot
;;
v )
VERBOSE=yes
;;
esac
done
}

parse_options $@
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ s5232f/cfg/s5232f-modules.conf etc/modules-load.d
s5232f/systemd/platform-modules-s5232f.service etc/systemd/system
common/platform_reboot usr/share/sonic/device/x86_64-dellemc_s5232f_c3538-r0
common/fw-updater usr/local/bin
common/onie_mode_set usr/local/bin
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ s5248f/cfg/s5248f-modules.conf etc/modules-load.d
s5248f/systemd/platform-modules-s5248f.service etc/systemd/system
common/platform_reboot usr/share/sonic/device/x86_64-dellemc_s5248f_c3538-r0
common/fw-updater usr/local/bin
common/onie_mode_set usr/local/bin
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ s6100/systemd/platform-modules-s6100.service etc/systemd/system
s6100/systemd/s6100-lpc-monitor.service etc/systemd/system
tools/flashrom/flashrom usr/local/bin/
common/fw-updater usr/local/bin
common/onie_mode_set usr/local/bin
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ z9100/cfg/z9100-modules.conf etc/modules-load.d
z9100/systemd/platform-modules-z9100.service etc/systemd/system
z9100/systemd/z9100-lpc-monitor.service etc/systemd/system
common/fw-updater usr/local/bin
common/onie_mode_set usr/local/bin
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ z9264f/cfg/z9264f-modules.conf etc/modules-load.d
z9264f/systemd/platform-modules-z9264f.service etc/systemd/system
common/platform_reboot usr/share/sonic/device/x86_64-dellemc_z9264f_c3538-r0
common/fw-updater usr/local/bin
common/onie_mode_set usr/local/bin