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
|
||||
HASATA=0
|
||||
for D in $(lsblk -dpno NAME); do
|
||||
for D in $(lsblk -dpno KNAME); do
|
||||
[ "${D}" = "${LOADER_DISK}" ] && continue
|
||||
if echo "sata sas scsi" | grep -wq "$(getBus "${D}")"; then
|
||||
HASATA=1
|
||||
|
@ -246,6 +246,7 @@ function _sort_netif() {
|
||||
ETHLIST=""
|
||||
for F in /sys/class/net/eth*; do
|
||||
[ ! -e "${F}" ] && continue
|
||||
local ETH MAC BUS
|
||||
ETH="$(basename "${F}")"
|
||||
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)"
|
||||
@ -288,10 +289,11 @@ function _sort_netif() {
|
||||
# 1 - device path
|
||||
function getBus() {
|
||||
local BUS=""
|
||||
[ -f "/.dockerenv" ] && BUS="docker"
|
||||
# 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
|
||||
# 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"
|
||||
echo "${BUS}"
|
||||
return 0
|
||||
|
@ -94,7 +94,7 @@ fi
|
||||
initConfigKey "modules" "{}" "${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
|
||||
_sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
|
||||
fi
|
||||
@ -129,12 +129,14 @@ PID="0x0001"
|
||||
TYPE="DoM"
|
||||
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
|
||||
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)"
|
||||
[ "${VID}" = "0x" ] || [ "${PID}" = "0x" ] && die "$(TEXT "The loader disk does not support the current USB Portable Hard Disk.")"
|
||||
TYPE="flashdisk"
|
||||
elif [ "${BUS}" = "docker" ]; then
|
||||
TYPE="PC"
|
||||
elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then
|
||||
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
echo "LOCALBUILD MODE"
|
||||
|
Loading…
x
Reference in New Issue
Block a user