Allow bootloadder disk to be of scsi type

This commit is contained in:
Ing 2023-08-10 15:00:13 +08:00
parent 6256363583
commit 881fbd2dbc
2 changed files with 9 additions and 6 deletions

View File

@ -12,6 +12,7 @@ loaderIsConfigured || die "$(TEXT "Loader is not configured!")"
LOADER_DISK="$(blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1)" LOADER_DISK="$(blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1)"
BUS=$(udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2) BUS=$(udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2)
[ "${BUS}" = "ata" ] && BUS="sata"
# Print text centralized # Print text centralized
clear clear
@ -23,7 +24,7 @@ printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} "" printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
TITLE="BOOTING:" TITLE="BOOTING:"
[ -d "/sys/firmware/efi" ] && TITLE+=" [UEFI]" || TITLE+=" [BIOS]" [ -d "/sys/firmware/efi" ] && TITLE+=" [UEFI]" || TITLE+=" [BIOS]"
[ "${BUS}" = "usb" ] && TITLE+=" [USB flashdisk]" || TITLE+=" [SATA DoM]" [ "${BUS}" = "usb" ] && TITLE+=" [${BUS^^} flashdisk]" || TITLE+=" [${BUS^^} DoM]"
printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}" printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
[ -f "${CACHE_PATH}/logo.png" ] && echo | fbv -acuf "${CACHE_PATH}/logo.png" >/dev/null [ -f "${CACHE_PATH}/logo.png" ] && echo | fbv -acuf "${CACHE_PATH}/logo.png" >/dev/null
@ -99,7 +100,7 @@ done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
# #
KVER=$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kver") KVER=$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}].kver")
if [ "${BUS}" = "ata" ]; then if [ ! "${BUS}" = "usb" ]; then
LOADER_DEVICE_NAME=$(echo ${LOADER_DISK} | sed 's|/dev/||') LOADER_DEVICE_NAME=$(echo ${LOADER_DISK} | sed 's|/dev/||')
SIZE=$(($(cat /sys/block/${LOADER_DEVICE_NAME}/size) / 2048 + 10)) SIZE=$(($(cat /sys/block/${LOADER_DEVICE_NAME}/size) / 2048 + 10))
# Read SATADoM type # Read SATADoM type
@ -144,7 +145,7 @@ fi
CMDLINE_LINE="" CMDLINE_LINE=""
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior " grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " || CMDLINE_LINE+="noefi " [ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " || CMDLINE_LINE+="noefi "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} " [ ! "${BUS}" = "usb" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M" CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
CMDLINE_DIRECT="${CMDLINE_LINE}" CMDLINE_DIRECT="${CMDLINE_LINE}"
for KEY in ${!CMDLINE[@]}; do for KEY in ${!CMDLINE[@]}; do

View File

@ -123,10 +123,12 @@ done
VID="0x0000" VID="0x0000"
PID="0x0000" PID="0x0000"
BUS=$(udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2) BUS=$(udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2)
[ "${BUS}" = "ata" ] && BUS="sata"
if [ "${BUS}" = "usb" ]; then if [ "${BUS}" = "usb" ]; then
VID="0x$(udevadm info --query property --name ${LOADER_DISK} | grep ID_VENDOR_ID | cut -d= -f2)" VID="0x$(udevadm info --query property --name ${LOADER_DISK} | grep ID_VENDOR_ID | cut -d= -f2)"
PID="0x$(udevadm info --query property --name ${LOADER_DISK} | grep ID_MODEL_ID | cut -d= -f2)" PID="0x$(udevadm info --query property --name ${LOADER_DISK} | grep ID_MODEL_ID | cut -d= -f2)"
elif [ "${BUS}" != "ata" ]; then elif [ "${BUS}" != "sata" -a "${BUS}" != "scsi" ]; then
die "$(TEXT "Loader disk neither USB or DoM")" die "$(TEXT "Loader disk neither USB or DoM")"
fi fi
@ -137,9 +139,9 @@ writeConfigKey "pid" ${PID} "${USER_CONFIG_FILE}"
# Inform user # Inform user
echo -en "$(TEXT "Loader disk:") \033[1;32m${LOADER_DISK}\033[0m (" echo -en "$(TEXT "Loader disk:") \033[1;32m${LOADER_DISK}\033[0m ("
if [ "${BUS}" = "usb" ]; then if [ "${BUS}" = "usb" ]; then
echo -en "\033[1;32mUSB flashdisk\033[0m" echo -en "\033[1;32m${BUS^^} flashdisk\033[0m"
else else
echo -en "\033[1;32mSATA DoM\033[0m" echo -en "\033[1;32m${BUS^^} DoM\033[0m"
fi fi
echo ")" echo ")"