mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 05:49:49 +00:00
system overhaul and bug fixeds
- Replaced the fragile upstream script installer with native Deb822 repository injection and automated GPG keyring management in `jellyfin.sh`. Eliminated external dependencies, checksums, and interactive flags for guaranteed non-interactive support across Bullseye/Bookworm/Trixie. - Upgraded the NVMe module (`modules/extras/system/system.sh`) to perform multi-drive scanning with dynamic `lsblk` parsing. Replaced single-disk detection logic with a `while read` loop to capture all devices, displaying formatted SMART health diagnostics (Critical Warning, Temperature, Percentage Used). - Overhauled the 'System Information' TUI into a multi-device dashboard featuring standalone GPU/Driver hierarchies and dynamic storage mapping. Added new globals (`DISPLAY_SERVER`, `STORAGE_SUMMARY`) and comprehensive arrays for Network/Wi-Fi interface indexing in `modules/utils.sh`. - Redesigned the graphics stack layout to fix multi-GPU text clipping and unified Mesa version prompting logic. Integrated post-install package telemetry to display live versions in the completion screen, separating planning visualization from installation decision points in `modules/gpu.sh`. - Fixed non-free-firmware conceptual documentation bugs and expanded Backports descriptions with hardware-focused educational text. Added non-free repository safeguards for Trixie/Bullseye compatibility under "Firmware & Wireless Drivers". - Refactored repository logic in modules/repos.sh to eliminate dead code (redundant default_text variables) and strict-hardcoded layout behaviors, standardizing dialog geometry to a clean matrix. - Updated README.md
This commit is contained in:
+88
-20
@@ -53,8 +53,8 @@ main_menu() {
|
||||
"1" "System Info" \
|
||||
"2" "User Privileges & Feedback" \
|
||||
"3" "Configure repositories" \
|
||||
"4" "Wireless & Firmware" \
|
||||
"5" "Graphics Stack" \
|
||||
"4" "Firmware & Wireless Drivers" \
|
||||
"5" "Graphics Drivers & Mesa Stack" \
|
||||
"6" "Backports Kernel" \
|
||||
"7" "Gaming Setup" \
|
||||
"8" "ZRAM (Swap)" \
|
||||
@@ -113,27 +113,93 @@ kernels. Use the stable kernel provided by Bullseye." 10 60
|
||||
}
|
||||
|
||||
_show_sysinfo() {
|
||||
local gpu_info="${GPU_DESC}"
|
||||
[ -n "$GPU_VERSION" ] && gpu_info+=" (${GPU_VERSION})"
|
||||
local msg=""
|
||||
|
||||
local network_info
|
||||
if [ -n "$ETH_DESC" ] && [ -n "$WIFI_DESC" ]; then
|
||||
network_info="Ethernet: ${ETH_DESC}\nWiFi: ${WIFI_DESC}"
|
||||
elif [ -n "$ETH_DESC" ]; then
|
||||
network_info="${ETH_DESC}"
|
||||
elif [ -n "$WIFI_DESC" ]; then
|
||||
network_info="${WIFI_DESC}"
|
||||
else
|
||||
network_info="No adapters detected"
|
||||
# ── OS Block ──
|
||||
msg+="OS: ${DEBIAN_VERSION} (${DEBIAN_CODENAME})\n"
|
||||
msg+="Kernel: ${KERNEL_VERSION}\n"
|
||||
msg+="Display: ${DISPLAY_SERVER}\n"
|
||||
msg+="\n"
|
||||
|
||||
# ── Hardware Block ──
|
||||
msg+="CPU: ${CPU_SUMMARY}\n"
|
||||
msg+="RAM: ${RAM_SUMMARY}\n"
|
||||
msg+="Storage: ${STORAGE_SUMMARY}\n"
|
||||
msg+="\n"
|
||||
|
||||
# ── GPU Block ──
|
||||
local found_gpu=false
|
||||
if command -v lspci &>/dev/null; then
|
||||
local gpu_count=0
|
||||
while IFS= read -r gpu_line; do
|
||||
found_gpu=true
|
||||
gpu_count=$((gpu_count + 1))
|
||||
local desc
|
||||
desc=$(echo "$gpu_line" | sed -E 's/.*: //; s/ *\(rev.*//')
|
||||
|
||||
if echo "$gpu_line" | grep -qi "nvidia"; then
|
||||
local nv_ver=""
|
||||
nv_ver=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader 2>/dev/null | head -1)
|
||||
[ -z "$nv_ver" ] && nv_ver=$(dpkg -l nvidia-driver 2>/dev/null | awk '/^ii/ {print $3}' | sed 's/-.*//')
|
||||
msg+="GPU ${gpu_count}: ${desc}\n"
|
||||
msg+=" Driver: ${nv_ver:+NVIDIA }${nv_ver:-not installed}\n"
|
||||
else
|
||||
local mesa_ver=""
|
||||
mesa_ver=$(dpkg -l libgl1-mesa-dri 2>/dev/null | awk '/^ii/ {print $3; exit}' | sed 's/-.*//')
|
||||
msg+="GPU ${gpu_count}: ${desc}\n"
|
||||
msg+=" Driver: ${mesa_ver:+Mesa }${mesa_ver:-unknown}\n"
|
||||
fi
|
||||
done < <(lspci -nn | grep -E "VGA|3D" || true)
|
||||
fi
|
||||
|
||||
_msg "System Information" \
|
||||
"Debian: ${DEBIAN_VERSION} (${DEBIAN_CODENAME})
|
||||
Kernel: ${KERNEL_VERSION}
|
||||
CPU: $(get_cpu_summary)
|
||||
RAM: $(get_ram_summary)
|
||||
GPU: ${gpu_info}
|
||||
Network: ${network_info}" 13 65
|
||||
if ! $found_gpu; then
|
||||
msg+="GPU: No GPU detected\n"
|
||||
fi
|
||||
msg+="\n"
|
||||
|
||||
# ── Network Block ──
|
||||
msg+="─── Network ───\n"
|
||||
local has_network=false
|
||||
local i
|
||||
|
||||
if ! command -v ip &>/dev/null; then
|
||||
msg+="(install iproute2 for interface details)\n"
|
||||
else
|
||||
for i in "${!ETH_NAMES[@]}"; do
|
||||
has_network=true
|
||||
local e_iface="${ETH_NAMES[$i]}"
|
||||
local e_desc="${ETH_DESCS[$i]:-$ETH_DESC}"
|
||||
local e_state="${ETH_STATES[$i]}"
|
||||
local e_ip4="${ETH_IPS[$i]}"
|
||||
if [ "$e_state" = "UP" ]; then
|
||||
msg+="${e_iface}: ${e_desc}\n ↑ ${e_ip4:-no IP}\n"
|
||||
else
|
||||
msg+="${e_iface}: ${e_desc}\n ↓\n"
|
||||
fi
|
||||
done
|
||||
|
||||
for i in "${!WIFI_NAMES[@]}"; do
|
||||
has_network=true
|
||||
local w_iface="${WIFI_NAMES[$i]}"
|
||||
local w_desc="${WIFI_DESCS[$i]:-$WIFI_DESC}"
|
||||
local w_state="${WIFI_STATES[$i]}"
|
||||
local w_ip4="${WIFI_IPS[$i]}"
|
||||
local w_ssid="${WIFI_SSIDS[$i]}"
|
||||
if [ "$w_state" = "UP" ]; then
|
||||
msg+="${w_iface}: ${w_desc}\n ↑ ${w_ip4:-no IP}"
|
||||
[ -n "$w_ssid" ] && msg+=" \"${w_ssid}\""
|
||||
msg+="\n"
|
||||
else
|
||||
msg+="${w_iface}: ${w_desc}\n ↓\n"
|
||||
fi
|
||||
done
|
||||
|
||||
if ! $has_network; then
|
||||
msg+="No active interfaces detected\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
_msg "System Information" "$msg" 22 76
|
||||
}
|
||||
|
||||
check_root
|
||||
@@ -146,6 +212,8 @@ detect_cpu_ram
|
||||
detect_kernel
|
||||
detect_gpu
|
||||
detect_network
|
||||
detect_displayserver
|
||||
detect_storage
|
||||
|
||||
# ── Bullseye-specific init (archive phase) ──
|
||||
if [ "$DEBIAN_VERSION" = "11" ] && type check_bullseye_archive_phase &>/dev/null; then
|
||||
|
||||
Reference in New Issue
Block a user