mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-09-14 06:02:35 +00:00
amd gcn legacy support & kernel overhaul
- Fixed Mesa 32-bit dependency conflicts by removing mesa-va-drivers from gaming setup; mesa-libgallium now includes VA-API for Mesa >= 25.3.3, resolving solver errors with backports (Mesa 26.x). - Removed corectrl detection and installation from AMD tools in gpu/amd_intel.sh (retained in System Tools checklist only). - Added zutty terminal emulator option alongside alacritty for Debian 12+ in terminals.sh. - Overhauled Kernel menu: replaced "Backports Kernel" with "Kernel" submenu offering Stable, RT, Cloud, and Backports options; removed hardcoded Debian 11 restriction (backports hidden only on Bullseye); headers now installed automatically with all kernel variants; NVIDIA warnings added for Backports (DKMS required) and RT (driver compatibility note). - Implemented AMD GCN legacy driver migration: is_amd_legacy_gcn() function detects GCN 1.0/1.1 GPUs via whitelist of 85 PCI IDs; offers user prompt to force amdgpu module with GRUB parameters (radeon.si_support=0, radeon.cik_support=0, amdgpu.si_support=1, amdgpu.cik_support=1); safe sed-based injection into GRUB_CMDLINE_LINUX_DEFAULT with backup and idempotency check. - Standardized UI across 27 checklist locations: unified text to "Check [*] the packages you want installed/updated on your system."; removed SCROLL_HINT variable entirely from all code; changed OK button to "Apply" in _checklist() and _inputbox() only (not in _msg/_menu). - Reordered gaming menu checklists: i386 moved to top position, steam/mangohud positioned immediately after for better dependency flow. - Enhanced kernel installation prompts: all variants (Stable, RT, Cloud, Backports) now display candidate version numbers in parentheses using apt-cache policy and madison queries. - update readme
This commit is contained in:
@@ -85,6 +85,136 @@ The submenu offers the next categories:
|
||||
|
||||
---
|
||||
|
||||
## Quick Start — Recommended Setup Order
|
||||
|
||||
This section shows the recommended order to configure a fresh Debian installation for maximum performance and usability. Follow these steps in order — each step builds on the previous one.
|
||||
|
||||
---
|
||||
|
||||
### Step 1 — Know Your System
|
||||
**Menu:** `1 System Information`
|
||||
|
||||
Check your hardware before installing anything. The script detects your CPU, RAM, GPU vendor and generation, network adapters, and display server. Write down what you see — especially the GPU line (Intel/AMD/NVIDIA) and any WiFi chipset. You'll need this info for steps 4 and 5.
|
||||
|
||||
> 💡 If no GPU is detected, you're likely on a VM or headless server — skip step 5.
|
||||
|
||||
---
|
||||
|
||||
### Step 2 — Enable Password Feedback
|
||||
**Menu:** `2 User Privileges & Feedback` → select option for Sudo Password Feedback
|
||||
|
||||
Enable asterisks (`****`) when typing your sudo password. This prevents typos during the many installation steps that follow. Toggle it on now, disable it later if you prefer hidden input.
|
||||
|
||||
---
|
||||
|
||||
### Step 3 — Configure Repositories
|
||||
**Menu:** `3 Configure Repositories`
|
||||
|
||||
This is the foundation — all subsequent installations depend on correct repos.
|
||||
|
||||
1. **Enable Contrib & Non-Free Components** (required for firmware, drivers, Steam)
|
||||
2. **Setup/Update Backports repositories** (recommended — gives you newer kernels, Mesa drivers, and firmware for modern hardware)
|
||||
|
||||
> ⚠️ Without non-free enabled, steps 4 and 5 will fail. Do not skip this.
|
||||
|
||||
---
|
||||
|
||||
### Step 4 — Install Firmware & Wireless Drivers
|
||||
**Menu:** `4 Firmware, Wireless & Bluetooth`
|
||||
|
||||
The script scans ALL network hardware (PCI + USB) and installs exactly the firmware your system needs. Accept the plan it shows — it's based on your actual hardware.
|
||||
|
||||
This step also sets up Bluetooth if your system has Bluetooth hardware (KDE gets bluedevil, XFCE gets blueman, GNOME uses built-in).
|
||||
|
||||
> ⚠️ You need internet for this step. If WiFi isn't working after firmware install, reboot first — the driver needs a fresh load.
|
||||
|
||||
---
|
||||
|
||||
### Step 5 — Install Graphics Drivers
|
||||
**Menu:** `5 Graphics Drivers & Mesa Stack`
|
||||
|
||||
The script auto-detects your GPU and installs the correct driver:
|
||||
|
||||
- **NVIDIA:** The script chooses the best path automatically (CUDA repo, backports, or stable) based on your GPU generation and kernel. Just confirm the plan.
|
||||
- **AMD/Intel:** Installs firmware + Mesa stack + Vulkan drivers. Also installs 32-bit libraries if gaming is planned.
|
||||
- **Hybrid (laptop):** Installs Intel/AMD firmware first, then NVIDIA driver.
|
||||
|
||||
> 💡 After installation, reboot before testing. NVIDIA drivers need a fresh kernel load to activate.
|
||||
|
||||
---
|
||||
|
||||
### Step 6 — Kernel Configuration
|
||||
**Menu:** `6 Kernel`
|
||||
|
||||
If you enabled backports in step 3, you can install a newer kernel (e.g., 7.x) for better hardware support. The script offers stable vs backports:
|
||||
|
||||
| Choice | Best for |
|
||||
|--------|----------|
|
||||
| Stable (default) | Maximum stability, older hardware |
|
||||
| Backports | Modern CPUs (Intel Arrow Lake, AMD Zen 5), new GPUs, better power management |
|
||||
|
||||
> ⚠️ If you installed NVIDIA drivers in step 5, the backports kernel may require DKMS recompilation. The script warns about this — it's usually fine.
|
||||
|
||||
---
|
||||
|
||||
### Step 7 — Gaming Setup (Optional)
|
||||
**Menu:** `7 Gaming Setup`
|
||||
|
||||
If you plan to game on Debian:
|
||||
|
||||
1. **Enable i386 architecture** when prompted — this is REQUIRED for Steam/Proton and 32-bit game libraries
|
||||
2. Select your launchers: Steam, Heroic Games Launcher, Lutris
|
||||
3. Select performance tools: GameMode, MangoHud, GOverlay
|
||||
4. Select RetroArch if you want retro emulation (pre-installed with GBA, SNES, NES, GB cores)
|
||||
|
||||
> ⚠️ Steam requires the contrib repository (step 3) and i386 architecture. The script warns if either is missing.
|
||||
|
||||
---
|
||||
|
||||
### Step 8 — ZRAM Compressed Swap (Optional)
|
||||
**Menu:** `8 ZRAM`
|
||||
|
||||
ZRAM compresses memory pages in RAM instead of writing to disk. This is especially useful on systems with limited RAM (8GB or less). The script automatically sets ZRAM to ~50% of your physical RAM with priority 100 (used before disk swap).
|
||||
|
||||
Choose **LZ4** for gaming (fastest compression) or **ZSTD** for general use (better compression ratio).
|
||||
|
||||
> 💡 If you also use disk-based swap (Option 9), ZRAM is used first. Disk swap only kicks in after ZRAM fills up.
|
||||
|
||||
---
|
||||
|
||||
### Step 9 — Essential Software
|
||||
**Menu:** `10 Install Programs and Software` → option `0 Essential Pack`
|
||||
|
||||
One-click install of the most common tools:
|
||||
|
||||
| Package | What you get |
|
||||
|---------|--------------|
|
||||
| htop, inxi | System monitoring |
|
||||
| neofetch / fastfetch | System info display |
|
||||
| vlc | Media player |
|
||||
| ufw | Firewall|
|
||||
| zip, unrar, p7zip | Compression tools |
|
||||
|
||||
After this, browse the other categories (browsers, editors, dev tools) as needed.
|
||||
|
||||
---
|
||||
|
||||
### Complete Flow Summary
|
||||
|
||||
1. System Information ← Know your hardware
|
||||
2. User Privileges & Feedback ← Enable password asterisks
|
||||
3. Configure Repositories ← Enable contrib + non-free + backports
|
||||
4. Firmware, Wireless & Bluetooth ← Install WiFi/BT firmware
|
||||
5. Graphics Drivers & Mesa Stack ← Install GPU drivers
|
||||
6. Kernel ← Optional: newer kernel (Backports)
|
||||
7. Gaming Setup ← Optional: Steam + tools
|
||||
8. ZRAM ← Optional: compressed swap
|
||||
9. Install Programs → 0 Essential ← Common tools
|
||||
|
||||
**Estimated time:** 15-20 minutes for a full setup (steps 1-5 + 9). Steps 6-8 are optional and depend on your use case.
|
||||
|
||||
|
||||
---
|
||||
## File Structure
|
||||
|
||||
| Directory/File | Description |
|
||||
@@ -101,12 +231,15 @@ The submenu offers the next categories:
|
||||
```bash
|
||||
├── debianito.sh
|
||||
├── docs
|
||||
│ ├── boot.md
|
||||
│ ├── desktops_display.md
|
||||
│ ├── firmware.md
|
||||
│ ├── gaming.md
|
||||
│ ├── gpu.md
|
||||
│ ├── kernel.md
|
||||
│ ├── repos_config.md
|
||||
│ ├── retroarch.md
|
||||
│ ├── swap.md
|
||||
│ ├── system_info.md
|
||||
│ ├── user_priv_feed.md
|
||||
│ └── zram.md
|
||||
@@ -121,6 +254,8 @@ The submenu offers the next categories:
|
||||
│ │ └── repos.sh
|
||||
│ ├── desktop_display.sh
|
||||
│ ├── extras
|
||||
│ │ ├── communication
|
||||
│ │ │ └── communication.sh
|
||||
│ │ ├── design
|
||||
│ │ │ └── design.sh
|
||||
│ │ ├── dev
|
||||
@@ -147,6 +282,8 @@ The submenu offers the next categories:
|
||||
│ │ ├── system
|
||||
│ │ │ ├── software_centers.sh
|
||||
│ │ │ └── system.sh
|
||||
│ │ ├── terminals
|
||||
│ │ │ └── terminals.sh
|
||||
│ │ └── themes
|
||||
│ │ ├── cursors
|
||||
│ │ │ └── cursors.sh
|
||||
|
||||
+2
-10
@@ -62,7 +62,7 @@ main_menu() {
|
||||
"3" "Configure Repositories" \
|
||||
"4" "Firmware, Wireless & Bluetooth" \
|
||||
"5" "Graphics Drivers & Mesa Stack" \
|
||||
"6" "Backports Kernel" \
|
||||
"6" "Kernel" \
|
||||
"7" "Gaming Setup" \
|
||||
"8" "ZRAM" \
|
||||
"9" "Swap Management" \
|
||||
@@ -104,15 +104,7 @@ main_menu() {
|
||||
esac
|
||||
STATE_REFRESHED=true
|
||||
;;
|
||||
6)
|
||||
if [ "$DEBIAN_VERSION" = "11" ]; then
|
||||
_msg "Not Available" \
|
||||
"Backports Kernel is not available on Debian 11 Bullseye.\n\nThe stable kernel provided by Bullseye is the only option." 10 60
|
||||
else
|
||||
install_kernel_backports || true
|
||||
fi
|
||||
STATE_REFRESHED=true
|
||||
;;
|
||||
6) show_kernel_menu || true ;;
|
||||
7)
|
||||
if [ "$DEBIAN_VERSION" = "11" ] && type install_gaming_bullseye &>/dev/null; then
|
||||
install_gaming_bullseye || true
|
||||
|
||||
+14
-14
@@ -82,7 +82,7 @@ _cat_themes_bullseye() {
|
||||
local item_count=6
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Desktop Themes (Bullseye)" "Select desktop themes${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Desktop Themes (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"arc-theme" "Arc GTK theme" "$(_state arc-theme)" \
|
||||
"blackbird-gtk-theme" "Blackbird GTK theme" "$(_state blackbird-gtk-theme)" \
|
||||
"bluebird-gtk-theme" "Bluebird GTK theme" "$(_state bluebird-gtk-theme)" \
|
||||
@@ -114,7 +114,7 @@ _cat_icons_bullseye() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Icon Themes (Bullseye)" "Select icon themes${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Icon Themes (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" )
|
||||
clear
|
||||
[ -z "$choices" ] && return
|
||||
@@ -129,7 +129,7 @@ _cat_cursors_bullseye() {
|
||||
local item_count=5
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Cursor Themes (Bullseye)" "Select cursor themes${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Cursor Themes (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"breeze-cursor-theme" "Breeze cursors (KDE)" "$(_state breeze-cursor-theme)" \
|
||||
"chameleon-cursor-theme" "Chameleon cursors" "$(_state chameleon-cursor-theme)" \
|
||||
"dmz-cursor-theme" "DMZ cursors" "$(_state dmz-cursor-theme)" \
|
||||
@@ -149,7 +149,7 @@ _cat_fonts_bullseye() {
|
||||
local item_count=4
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Fonts (Bullseye)" "Available fonts${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Fonts (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"fonts-firacode" "Fira Code monospace font" "$(_state fonts-firacode)" \
|
||||
"fonts-noto" "Noto fonts (Google)" "$(_state fonts-noto)" \
|
||||
"fonts-dejavu-core" "DejaVu core fonts" "$(_state fonts-dejavu-core)" \
|
||||
@@ -169,7 +169,7 @@ _cat_download_bullseye() {
|
||||
|
||||
local item_count1=2
|
||||
local lista_alto1=$((item_count1 > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count1))
|
||||
choices1=$(_checklist "Downloaders" "Select download tools:" $TUI_ALTO $TUI_ANCHO $lista_alto1 \
|
||||
choices1=$(_checklist "Downloaders" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto1 \
|
||||
"aria2" "Multiprotocol downloader (CLI)" "$(_state aria2)" \
|
||||
"filezilla" "FTP/SFTP client (GUI)" "$(_state filezilla)" \
|
||||
)
|
||||
@@ -177,7 +177,7 @@ _cat_download_bullseye() {
|
||||
|
||||
local item_count2=8
|
||||
local lista_alto2=$((item_count2 > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count2))
|
||||
choices2=$(_checklist "Torrent Clients" "Select torrent clients${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto2 \
|
||||
choices2=$(_checklist "Torrent Clients" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto2 \
|
||||
"deluge" "BitTorrent client (GTK)" "$(_state deluge)" \
|
||||
"deluged" "BitTorrent daemon/server" "$(_state deluged)" \
|
||||
"mktorrent" "Torrent metainfo creator (CLI)" "$(_state mktorrent)" \
|
||||
@@ -207,7 +207,7 @@ _cat_internet_bullseye() {
|
||||
local item_count=11
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Internet (Bullseye)" "Select browsers, email${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Internet (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"chromium" "Chromium web browser" "$(_state chromium)" \
|
||||
"dillo" "Lightweight graphical browser" "$(_state dillo)" \
|
||||
"elinks" "Text-mode web browser" "$(_state elinks)" \
|
||||
@@ -249,7 +249,7 @@ _cat_players_bullseye() {
|
||||
local item_count=2
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Media Players (Bullseye)" "Select media players${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Media Players (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"mpv" "Lightweight media player" "$(_state mpv)" \
|
||||
"vlc" "VLC media player" "$(_state vlc)" \
|
||||
)
|
||||
@@ -270,7 +270,7 @@ _cat_design_bullseye() {
|
||||
local item_count=13
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Multimedia & Design (Bullseye)" "Select multimedia and design tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Multimedia & Design (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"ardour" "Digital audio workstation" "$(_state ardour)" \
|
||||
"audacity" "Audio editor/recorder" "$(_state audacity)" \
|
||||
"blender" "3D modeling/animation suite" "$(_state blender)" \
|
||||
@@ -302,7 +302,7 @@ _cat_programming_bullseye() {
|
||||
local item_count=9
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Code Editors & IDEs (Bullseye)" "Select editors and IDEs${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Code Editors & IDEs (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"vim" "Classic terminal editor" "$(_state vim)" \
|
||||
"vim-gtk3" "Vim with GTK3 GUI" "$(_state vim-gtk3)" \
|
||||
"neovim" "Modern vim fork" "$(_state neovim)" \
|
||||
@@ -330,7 +330,7 @@ _cat_dev_bullseye() {
|
||||
local item_count=14
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Servers & Dev Tools (Bullseye)" "Select development tools and servers${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Servers & Dev Tools (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"apache2" "Apache web server" "$(_state apache2)" \
|
||||
"build-essential" "C/C++ build tools (gcc, make)" "$(_state build-essential)" \
|
||||
"docker" "Docker container runtime" "$(_state docker.io)" \
|
||||
@@ -394,7 +394,7 @@ _cat_security_bullseye() {
|
||||
local item_count=5
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Security & Networking (Bullseye)" "Select security and networking tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Security & Networking (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"wireshark" "Network protocol analyzer (GUI)" "$(_state wireshark)" \
|
||||
"tcpdump" "Command-line packet analyzer" "$(_state tcpdump)" \
|
||||
"fail2ban" "Brute-force protection daemon" "$(_state fail2ban)" \
|
||||
@@ -425,7 +425,7 @@ _cat_general_bullseye() {
|
||||
local item_count=22
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "System Tools (Bullseye)" "Select system utilities${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "System Tools (Bullseye)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"compress" "Compression tools (zip, unrar, p7zip)" "$(_state zip)" \
|
||||
"conky" "System monitor for desktop" "$(_state conky)" \
|
||||
"cpu-x" "CPU-X (alternative to CPU-Z)" "$(_state cpu-x)" \
|
||||
@@ -562,7 +562,7 @@ install_extras_bullseye() {
|
||||
|
||||
while true; do
|
||||
local cat_choice
|
||||
cat_choice=$(_menu "Extra Software — Bullseye" "Select a category${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
cat_choice=$(_menu "Extra Software — Bullseye" "Select a category:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"0" "Essential Pack" \
|
||||
"1" "Customization System" \
|
||||
"2" "Download & Network" \
|
||||
|
||||
@@ -107,15 +107,15 @@ install_gaming_bullseye() {
|
||||
|
||||
local choices
|
||||
choices=$(_checklist "Gaming Setup — Bullseye" \
|
||||
"Select gaming packages to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"i386" "Enable 32-bit (i386) architecture" ON \
|
||||
"steam" "Steam (requires 32-bit support)" ON \
|
||||
"gamemode" "Game performance optimization" OFF \
|
||||
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
||||
"gamemode" "Game performance optimization" OFF \
|
||||
"goverlay" "MangoHud config GUI" ON \
|
||||
"java" "Minecraft Java Runtime" OFF \
|
||||
"lutris" "Lutris + Wine (requires 32-bit support)" OFF \
|
||||
"retroarch" "RetroArch Emulator Frontend" OFF \
|
||||
"i386" "Enable 32-bit (i386) architecture" ON)
|
||||
"retroarch" "RetroArch Emulator Frontend" OFF)
|
||||
|
||||
if [ -z "$choices" ]; then
|
||||
echo "No gaming packages selected."
|
||||
|
||||
@@ -115,7 +115,7 @@ configure_greetd() {
|
||||
fi
|
||||
local choice
|
||||
choice=$(_menu "greetd Configuration" \
|
||||
"Select an option${SCROLL_HINT}:" \
|
||||
"Select an option:" \
|
||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"${gd_items[@]}")
|
||||
[ -z "$choice" ] && return
|
||||
@@ -179,7 +179,7 @@ configure_gdm3() {
|
||||
fi
|
||||
local choice
|
||||
choice=$(_checklist "GDM3 Configuration" \
|
||||
"Select options to apply${SCROLL_HINT}:" \
|
||||
"Select options to apply:" \
|
||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"${items_enabled[@]}")
|
||||
[ -z "$choice" ] && return
|
||||
@@ -243,7 +243,7 @@ configure_sddm() {
|
||||
while true; do
|
||||
local choice
|
||||
choice=$(_menu "SDDM Configuration" \
|
||||
"Select an option${SCROLL_HINT}:" \
|
||||
"Select an option:" \
|
||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"1" "Install SDDM (Set as default)" \
|
||||
"2" "Enable Autologin" \
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ install_extras() {
|
||||
while true; do
|
||||
local cat_choice
|
||||
cat_choice=$(_menu "Install Programs and Software" \
|
||||
"Select a category${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"Select a category:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"0" "Essential Pack" \
|
||||
"1" "Customization System" \
|
||||
"2" "Download & Network" \
|
||||
|
||||
@@ -62,7 +62,7 @@ _cat_communication() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Communication" "Select communication apps${SCROLL_HINT}:" \
|
||||
choices=$(_checklist "Communication" "Check [*] the packages you want installed/updated on your system.\n" \
|
||||
$TUI_ALTO $TUI_ANCHO $lista_alto "${items[@]}")
|
||||
clear
|
||||
[ -z "$choices" ] && return
|
||||
|
||||
@@ -39,7 +39,7 @@ _cat_design() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Multimedia & Design" "Select multimedia and design tools${SCROLL_HINT}:" \
|
||||
choices=$(_checklist "Multimedia & Design" "Check [*] the packages you want installed/updated on your system.\n" \
|
||||
$TUI_ALTO $TUI_ANCHO $lista_alto "${items[@]}")
|
||||
clear
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ _cat_dev() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Development & Servers" "Select development tools and servers${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Development & Servers" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -45,14 +45,14 @@ _cat_download() {
|
||||
local lista_alto1=$((item_count1 > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count1))
|
||||
local choices1 choices2=""
|
||||
|
||||
choices1=$(_checklist "Downloaders" "Select download tools:" $TUI_ALTO $TUI_ANCHO $lista_alto1 \
|
||||
choices1=$(_checklist "Downloaders" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto1 \
|
||||
"${items1[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
local item_count2=${#items2[@]}
|
||||
local lista_alto2=$((item_count2 > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count2))
|
||||
choices2=$(_checklist "Torrent Clients" "Select torrent clients:" $TUI_ALTO $TUI_ANCHO $lista_alto2 \
|
||||
choices2=$(_checklist "Torrent Clients" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto2 \
|
||||
"${items2[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -174,7 +174,7 @@ _cat_internet() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Internet" "Select browsers, email, and VPN tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Internet" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -97,7 +97,7 @@ _cat_office() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Office & Productivity" "Select office applications${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Office & Productivity" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ _cat_programming() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Programming Applications" "Select editors and IDEs${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Programming Applications" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -27,7 +27,7 @@ _cat_security() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Security & Networking" "Select security and networking tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Security & Networking" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -100,7 +100,7 @@ _cat_general() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "System Tools" "Select system utilities to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "System Tools" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -18,6 +18,7 @@ _cat_terminals() {
|
||||
|
||||
if [ "$DEBIAN_VERSION" = "12" ] || [ "$DEBIAN_VERSION" = "13" ]; then
|
||||
items+=("alacritty" "" "$(_state alacritty)")
|
||||
items+=("zutty" "" "$(_state zutty)")
|
||||
fi
|
||||
if [ "$DEBIAN_VERSION" = "13" ]; then
|
||||
items+=("blackbox-terminal" "" "$(_state blackbox-terminal)")
|
||||
@@ -27,7 +28,7 @@ _cat_terminals() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Terminals" "Select terminal emulators${SCROLL_HINT}:" \
|
||||
choices=$(_checklist "Terminals" "Check [*] the packages you want installed/updated on your system.\n" \
|
||||
$TUI_ALTO $TUI_ANCHO $lista_alto "${items[@]}")
|
||||
clear
|
||||
[ -z "$choices" ] && return
|
||||
|
||||
@@ -25,7 +25,7 @@ _cat_cursors() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Cursor Themes" "Select cursor themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Cursor Themes" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -27,7 +27,7 @@ _cat_themes() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Desktop Themes (GTK/KDE)" "Select desktop themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Desktop Themes (GTK/KDE)" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -29,7 +29,7 @@ _cat_fonts() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Fonts" "Select fonts to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Fonts" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -44,7 +44,7 @@ _cat_icons() {
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Icon Themes" "Select icon themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
choices=$(_checklist "Icon Themes" "Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
+4
-4
@@ -52,17 +52,17 @@ install_gaming() {
|
||||
# 1. Single checklist with ALL options (including i386 toggle)
|
||||
local choices
|
||||
choices=$(_checklist "Gaming Setup" \
|
||||
"Select gaming packages to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"Check [*] the packages you want installed/updated on your system.\n" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"i386" "Enable 32-bit (i386) architecture" ON \
|
||||
"steam" "Steam (requires 32-bit support)" ON \
|
||||
"gamemode" "Game performance optimization" OFF \
|
||||
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
||||
"gamemode" "Game performance optimization" OFF \
|
||||
"goverlay" "MangoHud config GUI" ON \
|
||||
"heroic" "Heroic Launcher (Epic/GOG)" OFF \
|
||||
"java" "Minecraft Java Runtime" OFF \
|
||||
"openrgb" "OpenRGB (RGB lighting control)" OFF \
|
||||
"lutris" "Lutris + Wine (requires 32-bit support)" OFF \
|
||||
"retroarch" "RetroArch Emulator Frontend" OFF \
|
||||
"i386" "Enable 32-bit (i386) architecture" ON)
|
||||
"retroarch" "RetroArch Emulator Frontend" OFF)
|
||||
|
||||
if [ -z "$choices" ]; then
|
||||
echo "No gaming packages selected."
|
||||
|
||||
@@ -7,7 +7,6 @@ _install_mesa_32bit() {
|
||||
"libgl1-mesa-dri"
|
||||
"libglx-mesa0"
|
||||
"libegl-mesa0"
|
||||
"mesa-va-drivers"
|
||||
"mesa-libgallium"
|
||||
)
|
||||
|
||||
|
||||
@@ -87,6 +87,21 @@ _install_amd_intel_stack() {
|
||||
install_amd_firmware
|
||||
fi
|
||||
|
||||
if $HAS_AMD_LEGACY_GCN; then
|
||||
local msg="An AMD GCN 1.0/GCN 1.1 GPU has been detected.\n\n"
|
||||
msg+="These old GPUs use the legacy 'radeon' driver by default,\n"
|
||||
msg+="but the modern 'amdgpu' driver offers better performance\n"
|
||||
msg+="and Mesa support.\n\n"
|
||||
msg+="Would you like to FORCE the amdgpu driver?\n"
|
||||
msg+="(adds radeon.si_support=0 radeon.cik_support=0\n"
|
||||
msg+=" amdgpu.si_support=1 amdgpu.cik_support=1 to GRUB)"
|
||||
if _confirm "AMD Legacy GCN" "$msg" 16 72; then
|
||||
_apply_amd_gcn_grub_fix
|
||||
else
|
||||
echo "Skipping amdgpu migration."
|
||||
fi
|
||||
fi
|
||||
|
||||
_install_mesa_backports
|
||||
|
||||
local mesa_ver
|
||||
@@ -109,6 +124,33 @@ _install_amd_intel_stack() {
|
||||
_msg "Graphics Stack — Complete" "$summary" 12 65
|
||||
}
|
||||
|
||||
_apply_amd_gcn_grub_fix() {
|
||||
local file="/etc/default/grub"
|
||||
local backup="${file}.backup.gcn.$(date +%Y%m%d_%H%M%S)"
|
||||
local params="radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1"
|
||||
|
||||
if grep -q "amdgpu.si_support=1" "$file" 2>/dev/null; then
|
||||
_msg "AMD GCN" "amdgpu parameters already present in GRUB.\nNo changes made." 8 50
|
||||
return
|
||||
fi
|
||||
|
||||
sudo cp "$file" "$backup"
|
||||
|
||||
sudo sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT=/ s/\"$*/${params}&/" "$file"
|
||||
|
||||
if _confirm "AMD GCN — GRUB" "Parameters added:\n\n ${params}\n\nRun update-grub now?" 12 65; then
|
||||
if sudo update-grub >/dev/null 2>&1; then
|
||||
_msg "AMD GCN — Complete" "amdgpu parameters added to GRUB.\n\nBackup: ${backup}\n\nReboot to apply."
|
||||
else
|
||||
echo -e "${RED}update-grub failed. Restoring backup...${NC}"
|
||||
sudo cp "$backup" "$file"
|
||||
_msg "Error" "update-grub failed.\nBackup restored."
|
||||
fi
|
||||
else
|
||||
_msg "AMD GCN" "Parameters written to ${file}.\nRun 'sudo update-grub' manually."
|
||||
fi
|
||||
}
|
||||
|
||||
_install_nvidia_stack() {
|
||||
if ! $HAS_NVIDIA; then
|
||||
_msg "NVIDIA Not Found" "No NVIDIA GPU was detected.\n\nPlease check your hardware and try again." 10 60
|
||||
|
||||
@@ -112,6 +112,21 @@ is_nvidia_blackwell() {
|
||||
echo false
|
||||
}
|
||||
|
||||
is_amd_legacy_gcn() {
|
||||
local dev_id
|
||||
dev_id=$(lspci -nn | grep -iE "VGA|3D" | grep -i amd | grep -oP '1002:\K[0-9a-fA-F]{4}' | head -n1)
|
||||
[ -z "$dev_id" ] && { echo false; return; }
|
||||
|
||||
local legacy_ids
|
||||
legacy_ids="6660|6664|6665|6667|6780|6784|6788|678a|6798|679a|679e|679f|3000|3001|6808|6809|6810|6811|6816|6817|6818|6819|6828|6829|682b|682c|6835|6837|683d|683f|6608|6609|6610|6611|6613|6617|1dcf|983d|6646|6649|664d|6650|6651|6658|665c|665d|67a0|67a1|67a2|67a8|67a9|67aa|67b0|67b1|67b8|67be|9830|9831|9832|9833|9834|9835|9836|9837|9838|9839|1304|1305|1306|1307|1309|130a|130b|130c|130d|130e|130f|1310|1311|1312|1313|1315|1316|1317|1318|131b|131c|131d|9850|9851|9852|9853|9854|9855|9856|9857|9858|9859|985a|985b|985c|985d|985e|985f"
|
||||
|
||||
if echo "$dev_id" | grep -qiE "^(${legacy_ids})$"; then
|
||||
echo true
|
||||
else
|
||||
echo false
|
||||
fi
|
||||
}
|
||||
|
||||
_install_mesa_backports() {
|
||||
if [ "$(is_backports_enabled)" != "true" ]; then
|
||||
install_mesa_stable
|
||||
|
||||
@@ -11,13 +11,6 @@ install_amd_firmware() {
|
||||
|
||||
offer_amd_tools() {
|
||||
local amd_tools=("radeontop")
|
||||
local corectrl_available=false
|
||||
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
corectrl_available=true
|
||||
elif [ "$(is_backports_enabled)" = "true" ] && apt-cache madison corectrl 2>/dev/null | grep -q "bookworm-backports"; then
|
||||
corectrl_available=true
|
||||
fi
|
||||
|
||||
local pkgs
|
||||
if [ "$DEBIAN_VERSION" = "11" ]; then
|
||||
@@ -25,13 +18,8 @@ offer_amd_tools() {
|
||||
else
|
||||
pkgs=$(pkg_versions "${amd_tools[@]}" nvtop vainfo)
|
||||
fi
|
||||
if $corectrl_available; then
|
||||
local ctrl_ver
|
||||
ctrl_ver=$(apt-cache policy corectrl 2>/dev/null | awk 'NR==3 {print $2; exit}')
|
||||
pkgs+=" - corectrl ${ctrl_ver}\n"
|
||||
fi
|
||||
|
||||
if ! _confirm "AMD Tools" "Install AMD monitoring and control tools?\n\n${pkgs}"; then
|
||||
if ! _confirm "AMD Tools" "Install AMD monitoring tools?\n\n${pkgs}"; then
|
||||
echo "Skipping AMD tools."
|
||||
return
|
||||
fi
|
||||
@@ -44,14 +32,6 @@ offer_amd_tools() {
|
||||
vainfo
|
||||
_pause "vainfo output shown above."
|
||||
|
||||
if $corectrl_available; then
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
_run_cmd "corectrl" "sudo apt install -y corectrl" "Installing corectrl..."
|
||||
else
|
||||
_run_cmd "corectrl" "sudo apt install -y -t ${DEBIAN_CODENAME}-backports corectrl" "Installing corectrl from backports..."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}AMD tools installed.${NC}"
|
||||
}
|
||||
|
||||
|
||||
+65
-19
@@ -1,31 +1,77 @@
|
||||
#!/usr/bin/env bash
|
||||
# kernel.sh
|
||||
# kernel.sh — Submenu for kernel variants: Stable, RT, Cloud, Backports
|
||||
|
||||
install_kernel_backports() {
|
||||
show_kernel_menu() {
|
||||
while true; do
|
||||
local items=("stable" "Install linux-image-amd64")
|
||||
[ "$DEBIAN_VERSION" != "11" ] && items+=("backports" "Install from backports")
|
||||
items+=("rt" "Install linux-image-rt-amd64 (Preempt-RT)")
|
||||
items+=("cloud" "Install linux-image-cloud-amd64")
|
||||
items+=("back" "Return to main menu")
|
||||
|
||||
local choice
|
||||
choice=$(_menu "Kernel Installation" "Select kernel variant:" \
|
||||
16 65 5 "${items[@]}")
|
||||
[ -z "$choice" ] && break
|
||||
clear
|
||||
|
||||
case "$choice" in
|
||||
stable) _install_kernel_package "linux-image-amd64" "Stable" "" ;;
|
||||
rt) _install_kernel_package "linux-image-rt-amd64" "RT" "" ;;
|
||||
cloud) _install_kernel_package "linux-image-cloud-amd64" "Cloud" "" ;;
|
||||
backports)
|
||||
if [ "$(is_backports_enabled)" != "true" ]; then
|
||||
_msg "Kernel" "Backports repository is not enabled.\n\nUse option 3 (Configure repositories) to enable backports\nbefore installing the backports kernel."
|
||||
return 1
|
||||
else
|
||||
_install_kernel_package "linux-image-amd64" "Backports" \
|
||||
"-t ${DEBIAN_CODENAME}-backports"
|
||||
fi
|
||||
;;
|
||||
back) break ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
local backports_kernel_ver
|
||||
backports_kernel_ver=$(get_backports_kernel_version)
|
||||
_install_kernel_package() {
|
||||
local pkg_base="$1"
|
||||
local flavor="$2"
|
||||
local bpo_flag="$3"
|
||||
|
||||
local msg="Install the latest kernel from backports?"
|
||||
if [ "$backports_kernel_ver" != "unknown" ]; then
|
||||
msg+="\n\nVersion: $backports_kernel_ver"
|
||||
fi
|
||||
msg+="\nOlder kernels remain available in GRUB."
|
||||
|
||||
if [ "$GPU_TYPE" == "nvidia" ]; then
|
||||
msg+="\n\nWARNING: may break NVIDIA driver."
|
||||
fi
|
||||
|
||||
if ! _confirm "Backports Kernel" "$msg"; then
|
||||
echo "Skipping kernel installation."
|
||||
if ! apt-cache show "$pkg_base" >/dev/null 2>&1; then
|
||||
_msg "Kernel" "Kernel not available for your current version of Debian.\n\nPackage: ${pkg_base}" 10 60
|
||||
return
|
||||
fi
|
||||
|
||||
_run_cmd "Kernel" "sudo apt install -y -t ${DEBIAN_CODENAME}-backports linux-image-amd64" "Installing kernel from backports..."
|
||||
echo -e "${GREEN}Kernel installed. Reboot to use it.${NC}"
|
||||
if [ "$flavor" = "Backports" ] && [ "$GPU_TYPE" = "nvidia" ]; then
|
||||
if ! _confirm "Kernel" "WARNING: Backports kernel changes the kernel version.\nYour NVIDIA driver will need recompilation (DKMS).\n\nProceed?"; then
|
||||
echo "Skipping."; return
|
||||
fi
|
||||
fi
|
||||
if [ "$flavor" = "RT" ] && [ "$GPU_TYPE" = "nvidia" ]; then
|
||||
_msg "Kernel — RT" "Note: Ensure your NVIDIA driver supports the RT (Preempt-RT) kernel.\nSome proprietary drivers may not work correctly." 10 60
|
||||
fi
|
||||
|
||||
local headers_pkg="${pkg_base/linux-image-/linux-headers-}"
|
||||
local ver headers_ver
|
||||
if [ -n "$bpo_flag" ]; then
|
||||
ver=$(apt-cache madison "$pkg_base" 2>/dev/null | grep "${DEBIAN_CODENAME}-backports" | awk '{print $3}' | head -1)
|
||||
headers_ver=$(apt-cache madison "$headers_pkg" 2>/dev/null | grep "${DEBIAN_CODENAME}-backports" | awk '{print $3}' | head -1)
|
||||
else
|
||||
ver=$(apt-cache show "$pkg_base" 2>/dev/null | sed -n 's/^Version: //p' | grep -v '~bpo' | head -1)
|
||||
headers_ver=$(apt-cache show "$headers_pkg" 2>/dev/null | sed -n 's/^Version: //p' | grep -v '~bpo' | head -1)
|
||||
fi
|
||||
[ -n "$ver" ] && ver=" ($ver)"
|
||||
[ -n "$headers_ver" ] && headers_ver=" ($headers_ver)"
|
||||
local summary="Install ${flavor} kernel?\n Image: ${pkg_base}${ver}\n Headers: ${headers_pkg}${headers_ver}"
|
||||
[ -n "$bpo_flag" ] && summary+="\n From: ${DEBIAN_CODENAME^}-backports"
|
||||
|
||||
if ! _confirm "Kernel — ${flavor}" "$summary"; then
|
||||
echo "Skipping."; return
|
||||
fi
|
||||
|
||||
_run_cmd "Kernel" "sudo apt install -y ${bpo_flag} ${pkg_base} ${headers_pkg}" \
|
||||
"Installing ${flavor} kernel + headers..."
|
||||
|
||||
echo -e "${GREEN}${flavor} kernel installed. Reboot to use it.${NC}"
|
||||
_pause
|
||||
}
|
||||
|
||||
+1
-2
@@ -467,8 +467,7 @@ _repos_setup_backports() {
|
||||
|
||||
local enable_backports=false
|
||||
if _confirm "Backports" "Do you want to enable the official Debian Backports repository?\n\n\
|
||||
Backports provides newer, selectively updated packages from the next\n\
|
||||
Debian testing branch, recompiled to run stably on your current system.\n\n\
|
||||
Backports provides newer, selectively updated packages from the next Debian testing branch, recompiled to run stably on your current system.\n
|
||||
Answer NO to disable or remove backports if they are currently enabled." 16 70; then
|
||||
enable_backports=true
|
||||
fi
|
||||
|
||||
+2
-2
@@ -122,7 +122,7 @@ _grub_menu_settings() {
|
||||
while true; do
|
||||
local choice
|
||||
choice=$(_menu "GRUB Boot Menu Settings" \
|
||||
"Configure when and how the GRUB menu appears${SCROLL_HINT}:" \
|
||||
"Configure when and how the GRUB menu appears:" \
|
||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"1" "Disable GRUB menu on start (Fastest boot)" \
|
||||
"2" "Faster boot (Show 3-sec countdown)" \
|
||||
@@ -168,7 +168,7 @@ rescue_boot() {
|
||||
while true; do
|
||||
local choice
|
||||
choice=$(_menu "Boot Rescue + GRUB Configuration" \
|
||||
"Select an operation${SCROLL_HINT}:" \
|
||||
"Select an operation:" \
|
||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"1" "GRUB Boot Menu Settings" \
|
||||
"2" "Refirm Secure Boot (shim + GRUB)" \
|
||||
|
||||
+4
-3
@@ -4,7 +4,6 @@
|
||||
# ------------------
|
||||
# Global variables
|
||||
# ------------------
|
||||
readonly SCROLL_HINT=" [↑↓]"
|
||||
CPU_SUMMARY=""
|
||||
RAM_SUMMARY=""
|
||||
GPU_TYPE=""
|
||||
@@ -15,6 +14,7 @@ NVIDIA_GPU_DEVICE_ID=""
|
||||
HAS_NVIDIA=false
|
||||
HAS_AMD=false
|
||||
HAS_INTEL=false
|
||||
HAS_AMD_LEGACY_GCN=false
|
||||
KERNEL_VERSION=""
|
||||
DISPLAY_SERVER="unknown"
|
||||
STORAGE_SUMMARY=""
|
||||
@@ -212,6 +212,7 @@ detect_gpu() {
|
||||
[ -z "$nvidia_dev_id" ] && nvidia_dev_id=$(echo "$line" | grep -oP '10de:\K[0-9a-fA-F]+' | head -n1)
|
||||
elif echo "$line" | grep -qi "amd"; then
|
||||
has_amd=true
|
||||
HAS_AMD_LEGACY_GCN=$(is_amd_legacy_gcn)
|
||||
elif echo "$line" | grep -qi "intel"; then
|
||||
has_intel=true
|
||||
[ -z "$intel_dev_id" ] && intel_dev_id=$(echo "$line" | grep -oP '8086:\K[0-9a-fA-F]+' | head -n1)
|
||||
@@ -557,11 +558,11 @@ _menu() {
|
||||
|
||||
_checklist() {
|
||||
local title="$1" text="$2" h="$3" w="$4" lh="$5"; shift 5
|
||||
whiptail --title "$title" --checklist "$text" "$h" "$w" "$lh" "$@" 3>&1 1>&2 2>&3 || true
|
||||
whiptail --title "$title" --ok-button "Apply" --checklist "$text" "$h" "$w" "$lh" "$@" 3>&1 1>&2 2>&3 || true
|
||||
}
|
||||
|
||||
_inputbox() {
|
||||
whiptail --title "$1" --inputbox "$2" "${3:-10}" "${4:-60}" "${5:-}" 3>&1 1>&2 2>&3 || true
|
||||
whiptail --title "$1" --ok-button "Apply" --inputbox "$2" "${3:-10}" "${4:-60}" "${5:-}" 3>&1 1>&2 2>&3 || true
|
||||
}
|
||||
|
||||
_validate_sudoers() {
|
||||
|
||||
Reference in New Issue
Block a user