Failed graphic drivers after install

I’ve don’t it this time…

Weird screen behaviour lead me to attempting to load a proprietary amd drivers.

It didn’t work and I can’t boot the computer.

I tried the recovery in the boot menu, that failed.

I need to boot to a text prompt. “text” in the Linux line of the grub did squat.

Any hints?

What did you do to get to this point? We’re missing context.

Load load the AMD proprietary graphics drivers. I’ve been trying to resolve an issue where the screen blacks out for no apparent reason.

Now it boots but stops with a - at the top right of the screen. I can’t get a terminal to appear to fix the issue.

I need to boot into a standard driver and not the AMD specific one, and get a terminal active. At least I’d assumed that was the way forward.

My reading of random help says put “text” at the end of the Linux line to skip loading drivers and get a terminal.

I tried “text” and “amdgpu.text=1” and removing all AMD stuff. I read of video=vesa as an option.

I’m guessing from your previous posts here: Lock screen crashes or freezes on KDE Rocky 9 - #6 by Yani and here: Warp Terminal How's had a go at it? you’ve been trying to use warp terminal and it’s AI to solve you problem and now it’s gone wrong? I would say you probably put way too much trust in the information that supposed AI terminal was giving you?

You probably need to remove everything from preempt=voluntary to the end of the line where it ends at amdgpu.gpu_recovery and then attempt to boot it, or use the rescue kernel that is also in the grub list to boot from.

2 Likes

I knew the consequences of loading the AMD driver. I’m not blaming AI. It’s me breaking things to find where the “blackouts” are coming from.

I have been able to F2 a terminal but not in a repeatable manner.

Totally my call.

I would still attempt the rescue kernel, or removing as above. Once you’re booted, any packages you installed for the AMD stuff can then be removed.

There’s a lot of what the…

A couple of things make it worse.

The Logitech keyboard and the magic duel use f keys.

Smarts in the monitor

Tiny terminal font on UHD

I can and can’t get a terminal. Might be code looping in error versus my patients.

I’ve unlinked the repo. And removed the driver.

Oh I’ll be attempting a rescue.

rd.break gets me the emergency prompt.

Logout returned me to user mode.

After a reboot I can’t reproduce that.

Issue is connected to $DISPLAY

I can and can’t get a prompt.

If I use rd.break I get the emergency prompt. Sometimes I can log out of that to a user prompt.

What is the repository for the correct AMD files. It might be disabled. I’m not sure (see Idiocracy) which of the repos contain it.

Use: systemd.unit=multi-user.target

Yep worked that one out and a few more.

I spent a lot of time googling answers. Got poor results. Put WARP on the laptop and had plenty of answers.

Would I have got the same answer if I was a Redhat subscriber?

Through all this I’ve not answered the starting question of why the screen is randomly dying. For the record it managed to do it in text mode. There are 2 versions of the problem now. One blanks the screen and sound goes off but it recovers after 10 seconds. And another that blanks the screen dead yet the sound keeps working, that one requires a reboot. It feels like a power spike, however the computer and monitor are on a battery UPS. Maybe the second of the errors is graphics card over heating?

It could be the monitor dying, it’s just out of warranty, :slight_smile:

I didn’t start with looking in the wiki but if I gather credible additions I think some additions might come out of this. Regardless of the source, AI, forum, web… it will be tested Rocky results.

Here is an AI suggestion that is likely valid…

#!/bin/bash
#
# inxi_diagnostics.sh - A comprehensive script for running inxi system diagnostics
# Created by: AI Assistant
# Purpose: Run inxi with various verbosity levels and save the output to files

# Default values
SCRIPT_NAME=$(basename "$0")
OUTPUT_DIR="$HOME/inxi_diagnostics_$(date +%Y%m%d_%H%M%S)"
VERBOSITY_LEVEL=0
RUN_GPU=false
RUN_ALL=false
CUSTOM_ARGS=""
COPY_TO_DESKTOP=false
WINDOWS_DESKTOP="/mnt/c/Users/NelG/Desktop"

# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# Function to display usage information
show_help() {
    echo -e "${BLUE}Usage: $SCRIPT_NAME [OPTIONS]${NC}"
    echo
    echo -e "${GREEN}Description:${NC}"
    echo "  Run inxi diagnostics with various verbosity levels and save the output to files"
    echo
    echo -e "${GREEN}Options:${NC}"
    echo "  -h, --help              Show this help message and exit"
    echo "  -o, --output DIR        Specify output directory (default: ~/inxi_diagnostics_TIMESTAMP)"
    echo "  -v, --verbosity LVL     Set verbosity level (1-4)"
    echo "                          1: Basic (-F)"
    echo "                          2: Detailed (-Fxx)"
    echo "                          3: Very Detailed (-Fxxx)"
    echo "                          4: Maximum Detail (-Fxxxz)"
    echo "  -g, --gpu               Run GPU-specific diagnostics"
    echo "  -g, --gpu               Run GPU-specific diagnostics"
    echo "  -a, --all               Run all diagnostic levels"
    echo "  -c, --custom ARGS       Pass custom arguments to inxi (enclose in quotes)"
    echo "  -d, --copy-to-desktop   Copy all generated files to Windows desktop"
    echo -e "${GREEN}Examples:${NC}"
    echo "  $SCRIPT_NAME -v 4                          # Run with maximum detail"
    echo "  $SCRIPT_NAME -g                           # Run GPU-specific diagnostics"
    echo "  $SCRIPT_NAME -a                           # Run all diagnostic levels"
    echo "  $SCRIPT_NAME -o ~/my_diagnostics -v 2     # Save output to specific directory"
    echo "  $SCRIPT_NAME -c \"-Gxxxza --weather\"       # Run with custom arguments"
    echo "  $SCRIPT_NAME -v 4 -d                      # Run with max detail and copy to desktop"
}

# Function to check if inxi is installed
check_inxi() {
    if ! command -v inxi &> /dev/null; then
        echo -e "${RED}Error: inxi is not installed or not in your PATH${NC}"
        echo "Please install inxi using your distribution's package manager:"
        echo "  - Debian/Ubuntu: sudo apt-get install inxi"
        echo "  - Fedora: sudo dnf install inxi"
        echo "  - Arch Linux: sudo pacman -S inxi"
        exit 1
    fi
}

# Function to create the output directory
create_output_dir() {
    if [ ! -d "$OUTPUT_DIR" ]; then
        mkdir -p "$OUTPUT_DIR" || {
            echo -e "${RED}Error: Failed to create output directory: $OUTPUT_DIR${NC}"
            exit 1
        }
    fi
    echo -e "${GREEN}Output will be saved to: $OUTPUT_DIR${NC}"
    
    # Check if we should create the Windows desktop path
    if [ "$COPY_TO_DESKTOP" = true ] && [ -d "/mnt/c" ]; then
        # Ensure desktop directory exists
        if [ ! -d "$WINDOWS_DESKTOP" ]; then
            echo -e "${YELLOW}Warning: Windows Desktop directory not found at $WINDOWS_DESKTOP${NC}"
            echo -e "${YELLOW}Files will only be saved to $OUTPUT_DIR${NC}"
            COPY_TO_DESKTOP=false
        fi
    fi
}

# Function to run inxi with specified arguments and save output to a file
run_inxi() {
    local args="$1"
    local filename="$2"
    local description="$3"
    local output_file="$OUTPUT_DIR/$filename"
    
    echo -e "${YELLOW}Running: inxi $args${NC}"
    echo -e "${BLUE}$description${NC}"
    echo -e "${YELLOW}Saving output to: $output_file${NC}"
    
    echo "# inxi $args" > "$output_file"
    echo "# Run at: $(date)" >> "$output_file"
    echo "# Description: $description" >> "$output_file"
    echo "# ----------------------------------------" >> "$output_file"
    
    inxi $args >> "$output_file" 2>&1
    
    echo -e "${GREEN}Done!${NC}"
    echo
}

# Function to run GPU-specific diagnostics
run_gpu_diagnostics() {
    echo -e "${BLUE}Running GPU-specific diagnostics...${NC}"
    
    # Basic GPU info
    run_inxi "-G" "01_gpu_basic.txt" "Basic GPU information"
    
    # Detailed GPU info
    run_inxi "-Gxx" "02_gpu_detailed.txt" "Detailed GPU information"
    
    # Advanced GPU info with driver details
    run_inxi "-Gxxx" "03_gpu_advanced.txt" "Advanced GPU information with driver details"
    
    # Maximum GPU info
    run_inxi "-Gxxxz" "04_gpu_maximum.txt" "Maximum GPU information with security info"
    
    # OpenGL information
    run_inxi "-Gxxxz --display" "05_gpu_with_display.txt" "GPU information with display data"
    
    echo -e "${GREEN}GPU diagnostics completed!${NC}"
}

# Parse command line arguments
while [[ $# -gt 0 ]]; do
    case $1 in
        -h|--help)
            show_help
            exit 0
            ;;
        -o|--output)
            OUTPUT_DIR="$2"
            shift 2
            ;;
        -v|--verbosity)
            VERBOSITY_LEVEL="$2"
            shift 2
            ;;
        -g|--gpu)
            RUN_GPU=true
            shift
            ;;
        -a|--all)
            RUN_ALL=true
            shift
            ;;
        -c|--custom)
            CUSTOM_ARGS="$2"
            shift 2
            ;;
        -d|--copy-to-desktop)
            COPY_TO_DESKTOP=true
            shift
            ;;
        *)
            echo -e "${RED}Error: Unknown option: $1${NC}"
            show_help
            exit 1
            ;;
    esac
done

# Main execution
check_inxi
create_output_dir

# Create a summary file
SUMMARY_FILE="$OUTPUT_DIR/00_summary.txt"
echo "# inxi Diagnostics Summary" > "$SUMMARY_FILE"
echo "# Run at: $(date)" >> "$SUMMARY_FILE"
echo "# Hostname: $(hostname)" >> "$SUMMARY_FILE"
echo "# User: $(whoami)" >> "$SUMMARY_FILE"
echo "# ----------------------------------------" >> "$SUMMARY_FILE"
inxi -v >> "$SUMMARY_FILE"

# Run diagnostics based on verbosity level
if [ "$RUN_ALL" = true ]; then
    echo -e "${BLUE}Running all diagnostic levels...${NC}"
    
    run_inxi "-F" "10_system_basic.txt" "Basic system information"
    run_inxi "-Fxx" "11_system_detailed.txt" "Detailed system information"
    run_inxi "-Fxxx" "12_system_very_detailed.txt" "Very detailed system information"
    run_inxi "-Fxxxz" "13_system_maximum.txt" "Maximum system information with security info"
    
elif [ "$VERBOSITY_LEVEL" -gt 0 ]; then
    case $VERBOSITY_LEVEL in
        1)
            run_inxi "-F" "10_system_basic.txt" "Basic system information"
            ;;
        2)
            run_inxi "-Fxx" "11_system_detailed.txt" "Detailed system information"
            ;;
        3)
            run_inxi "-Fxxx" "12_system_very_detailed.txt" "Very detailed system information"
            ;;
        4)
            run_inxi "-Fxxxz" "13_system_maximum.txt" "Maximum system information with security info"
            ;;
        *)
            echo -e "${RED}Error: Invalid verbosity level: $VERBOSITY_LEVEL${NC}"
            echo "Please specify a verbosity level between 1 and 4"
            exit 1
            ;;
    esac
fi

# Run GPU diagnostics if requested
if [ "$RUN_GPU" = true ]; then
    run_gpu_diagnostics
fi

# Run with custom arguments if provided
if [ -n "$CUSTOM_ARGS" ]; then
    run_inxi "$CUSTOM_ARGS" "99_custom.txt" "Custom diagnostics: inxi $CUSTOM_ARGS"
fi

# Check if any diagnostics were run
if [ "$RUN_ALL" = false ] && [ "$VERBOSITY_LEVEL" -eq 0 ] && [ "$RUN_GPU" = false ] && [ -z "$CUSTOM_ARGS" ]; then
    echo -e "${YELLOW}No specific diagnostics were requested. Running basic diagnostics...${NC}"
    run_inxi "-F" "10_system_basic.txt" "Basic system information"
fi

# Create a README file
README_FILE="$OUTPUT_DIR/README.txt"
echo "# inxi Diagnostics Results" > "$README_FILE"
echo "# Generated on: $(date)" >> "$README_FILE"
echo "# ----------------------------------------" >> "$README_FILE"
echo "" >> "$README_FILE"
echo "This directory contains the results of various inxi diagnostic commands." >> "$README_FILE"
echo "" >> "$README_FILE"
echo "Files are named according to their content type and detail level." >> "$README_FILE"
echo "The numeric prefix indicates the order of information specificity." >> "$README_FILE"
echo "" >> "$README_FILE"
echo "For more information about inxi, visit: https://github.com/smxi/inxi" >> "$README_FILE"

echo -e "${GREEN}All diagnostics completed!${NC}"
echo -e "${GREEN}Results saved to: $OUTPUT_DIR${NC}"
echo -e "${YELLOW}To view a specific file, use: less $OUTPUT_DIR/FILENAME${NC}"

# Copy files to Windows desktop if requested
if [ "$COPY_TO_DESKTOP" = true ]; then
    echo -e "${BLUE}Copying files to Windows desktop...${NC}"
    
    # Check if running in WSL or similar environment with access to Windows file system
    if [ -d "/mnt/c" ]; then
        # Create a directory on the desktop with the same name
        DESKTOP_DIR="$WINDOWS_DESKTOP/$(basename "$OUTPUT_DIR")"
        mkdir -p "$DESKTOP_DIR"
        
        # Copy all files from OUTPUT_DIR to the desktop
        cp -r "$OUTPUT_DIR"/* "$DESKTOP_DIR/"
        
        echo -e "${GREEN}Files successfully copied to: $DESKTOP_DIR${NC}"
    else
        echo -e "${RED}Error: Cannot access Windows file system.${NC}"
        echo -e "${YELLOW}This script must be run from WSL or similar environment with access to Windows files.${NC}"
        echo -e "${YELLOW}You can manually copy the files from: $OUTPUT_DIR${NC}"
    fi
fi


a bit of crap in there but a starting point perhaps.

It is not fun anymore. :smiley:

I’ve got a prompt.

I think getting back to a default of Rocky is going to be the solution.

Plasma 6 and the unofficial packages really does it in the way when things go wrong.

I’m really not sure I’m using the correct repo for AMDGPU

Is there a wiki page on setting terminal font? I tried a few options. It’s never an issue cause GUI.

What happens if I force an upgrade of --best rather than the exceptions necessary for Plasma 6? Seems like some defaulting is the fast way out?

Yes “unofficial”. I wonder if the AI warned you about it?

Traditionally, AMD GPU was better supported out-of-the-box on RHEL and Rocky, but there was case where an integrated AMD GPU didn’t work properly.

That is usually bad.

I open the repository, not AI.

I have been able to observe the fridge causing a spike in the PCI chain.

Really I break thing better without AI.

Anyway, I’m still not sure if the right drive is within the distro files or just the not pro one from AMD.

I have managed to destroy all access to a prompt. I have download the ISO and made a USB and when I boot that the grub works but the load following that only causes the screen to cycle between dead and alive every 5 seconds. I guess that’s a corrupt download.

The issue is my lack of experience. Breaking stuff is a fine way to learn. I’ve never, for example, done a reinstall of Linux.

I have a NVidia graphics card and had to blacklist the generic “Nouveau” graphics driver in order to install the NVidia driver. Search these forums to learn more.

But didn’t he say he’s using AMD?

Yes he did. The point I was trying to make was that Nouveau could be the cause of his issue.

First, the Nouveau is a driver for NVidia GPUs. It will not be loaded for AMD devices.
(Second, properly packaged NVidia’s proprietary driver does disable Nouveau; no need for explicit steps.)


Rocky’s kernel packages should have kernel module amdgpu – does modinfo amdgpu tell something about it?

If there is that module and if it supports the GPU version in the system and there is attempt to supercede the amdgpu with some other module, then depending on the other module’s install there could be a need to specify which module to load.