mirror of
https://github.com/RROrg/rr.git
synced 2025-09-20 10:47:20 +08:00
优化 boot.sh 和 functions.sh,修复设备检测逻辑,支持 Docker 环境
This commit is contained in:
parent
38caa773d7
commit
2f02843dff
@ -112,7 +112,7 @@ printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "MEM: ")" "${MEM}"
|
|||||||
|
|
||||||
if ! readConfigMap "addons" "${USER_CONFIG_FILE}" | grep -q nvmesystem; then
|
if ! readConfigMap "addons" "${USER_CONFIG_FILE}" | grep -q nvmesystem; then
|
||||||
HASATA=0
|
HASATA=0
|
||||||
for D in $(lsblk -dpno NAME); do
|
for D in $(lsblk -dpno KNAME); do
|
||||||
[ "${D}" = "${LOADER_DISK}" ] && continue
|
[ "${D}" = "${LOADER_DISK}" ] && continue
|
||||||
if echo "sata sas scsi" | grep -wq "$(getBus "${D}")"; then
|
if echo "sata sas scsi" | grep -wq "$(getBus "${D}")"; then
|
||||||
HASATA=1
|
HASATA=1
|
||||||
|
@ -246,6 +246,7 @@ function _sort_netif() {
|
|||||||
ETHLIST=""
|
ETHLIST=""
|
||||||
for F in /sys/class/net/eth*; do
|
for F in /sys/class/net/eth*; do
|
||||||
[ ! -e "${F}" ] && continue
|
[ ! -e "${F}" ] && continue
|
||||||
|
local ETH MAC BUS
|
||||||
ETH="$(basename "${F}")"
|
ETH="$(basename "${F}")"
|
||||||
MAC="$(cat "/sys/class/net/${ETH}/address" 2>/dev/null | sed 's/://g; s/.*/\L&/')"
|
MAC="$(cat "/sys/class/net/${ETH}/address" 2>/dev/null | sed 's/://g; s/.*/\L&/')"
|
||||||
BUS="$(ethtool -i "${ETH}" 2>/dev/null | grep bus-info | cut -d' ' -f2)"
|
BUS="$(ethtool -i "${ETH}" 2>/dev/null | grep bus-info | cut -d' ' -f2)"
|
||||||
@ -288,10 +289,11 @@ function _sort_netif() {
|
|||||||
# 1 - device path
|
# 1 - device path
|
||||||
function getBus() {
|
function getBus() {
|
||||||
local BUS=""
|
local BUS=""
|
||||||
|
[ -f "/.dockerenv" ] && BUS="docker"
|
||||||
# usb/ata(ide)/sata/sas/spi(scsi)/virtio/mmc/nvme
|
# usb/ata(ide)/sata/sas/spi(scsi)/virtio/mmc/nvme
|
||||||
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,TRAN 2>/dev/null | grep "${1} " | awk '{print $2}' | sed 's/^ata$/ide/' | sed 's/^spi$/scsi/') #Spaces are intentional
|
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,TRAN 2>/dev/null | grep "${1} " | awk '{print $2}' | sed 's/^ata$/ide/' | sed 's/^spi$/scsi/') #Spaces are intentional
|
||||||
# usb/scsi(ide/sata/sas)/virtio/mmc/nvme/vmbus/xen(xvd)
|
# usb/scsi(ide/sata/sas)/virtio/mmc/nvme/vmbus/xen(xvd)
|
||||||
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | awk '{print $2}' | awk -F':' '{print $(NF-1)}' | sed 's/_host//' | sed 's/^.*xen.*$/xen/') # Spaces are intentional
|
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | awk '{split($2,a,":"); if(length(a)>1) print a[length(a)-1]}' | sed 's/_host//' | sed 's/^.*xen.*$/xen/') # Spaces are intentional
|
||||||
[ -z "${BUS}" ] && BUS="unknown"
|
[ -z "${BUS}" ] && BUS="unknown"
|
||||||
echo "${BUS}"
|
echo "${BUS}"
|
||||||
return 0
|
return 0
|
||||||
|
@ -94,7 +94,7 @@ fi
|
|||||||
initConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
initConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||||
initConfigKey "modblacklist" "evbug,cdc_ether" "${USER_CONFIG_FILE}"
|
initConfigKey "modblacklist" "evbug,cdc_ether" "${USER_CONFIG_FILE}"
|
||||||
|
|
||||||
if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
if [ ! -f "/.dockerenv" ] && [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||||
if arrayExistItem "sortnetif:" "$(readConfigMap "addons" "${USER_CONFIG_FILE}")"; then
|
if arrayExistItem "sortnetif:" "$(readConfigMap "addons" "${USER_CONFIG_FILE}")"; then
|
||||||
_sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
|
_sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
|
||||||
fi
|
fi
|
||||||
@ -129,12 +129,14 @@ PID="0x0001"
|
|||||||
TYPE="DoM"
|
TYPE="DoM"
|
||||||
BUS=$(getBus "${LOADER_DISK}")
|
BUS=$(getBus "${LOADER_DISK}")
|
||||||
|
|
||||||
BUSLIST="usb sata sas scsi nvme mmc ide virtio vmbus xen"
|
BUSLIST="usb sata sas scsi nvme mmc ide virtio vmbus xen docker"
|
||||||
if [ "${BUS}" = "usb" ]; then
|
if [ "${BUS}" = "usb" ]; then
|
||||||
VID="0x$(udevadm info --query property --name "${LOADER_DISK}" 2>/dev/null | grep "ID_VENDOR_ID" | cut -d= -f2)"
|
VID="0x$(udevadm info --query property --name "${LOADER_DISK}" 2>/dev/null | grep "ID_VENDOR_ID" | cut -d= -f2)"
|
||||||
PID="0x$(udevadm info --query property --name "${LOADER_DISK}" 2>/dev/null | grep "ID_MODEL_ID" | cut -d= -f2)"
|
PID="0x$(udevadm info --query property --name "${LOADER_DISK}" 2>/dev/null | grep "ID_MODEL_ID" | cut -d= -f2)"
|
||||||
[ "${VID}" = "0x" ] || [ "${PID}" = "0x" ] && die "$(TEXT "The loader disk does not support the current USB Portable Hard Disk.")"
|
[ "${VID}" = "0x" ] || [ "${PID}" = "0x" ] && die "$(TEXT "The loader disk does not support the current USB Portable Hard Disk.")"
|
||||||
TYPE="flashdisk"
|
TYPE="flashdisk"
|
||||||
|
elif [ "${BUS}" = "docker" ]; then
|
||||||
|
TYPE="PC"
|
||||||
elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then
|
elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then
|
||||||
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||||
echo "LOCALBUILD MODE"
|
echo "LOCALBUILD MODE"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user