From Fedora Project Wiki

DRM Panic Frontend

Summary

Deploy a web-based frontend application for Fedora's DRM Panic feature that provides users with an accessible, user-friendly interface for understanding kernel panic information and facilitating bug reports through Bugzilla integration.

Owner

Current status


Detailed Description

Background

With Fedora 42, the DRM Panic feature was enabled by default, allowing the Linux kernel to display panic screens with QR codes that encode error traces when kernel panics occur. While this feature successfully captures technical information, the raw kernel traces encoded in QR codes are largely incomprehensible to average users and provide no guidance on next steps.

Solution

The DRM Panic Frontend is a web application that bridges the gap between technical kernel panic data and user-friendly presentation. When users scan a QR code from a DRM Panic screen with their mobile device, they are directed to a Fedora-hosted web interface that:

  1. Provides contextual information - Explains what happened in accessible language
  2. Decodes and displays panic information - Presents kernel version, architecture, and error traces in a structured, readable format
  3. Facilitates bug reporting - Offers streamlined integration with Fedora Bugzilla, pre-filling bug reports with relevant system information and error traces
  4. Improves user experience - Uses PatternFly design patterns to provide interface consistent with Fedora's design language

Technical Details

Technology Stack:

  • Built with React 19 for dynamic user interfaces
  • PatternFly 6 for consistent Fedora design language
  • Webpack-based build system
  • Static HTML/CSS/JavaScript output (no server-side processing required)

Deployment Requirements:

  • Static web hosting on Fedora infrastructure
  • Updating the kernel to point to the new endpoint
  • No database or server-side runtime required

Configuration: The application requires minimal configuration via .env file:

npm run build:production generates a website pointing to the configured Bugzilla URL.

Information Flow:

  1. DRM Panic generates QR code containing compressed panic data (URL with query parameters)
  2. User scans QR code with mobile device
  3. Browser loads web application from Fedora infrastructure
  4. JavaScript decodes URL parameters and decompresses trace data
  5. Application presents information and provides bug reporting workflow
  6. No information leaves the user mobile device. The trace is encoded in the URL hash, which is not sent to the server

Demo: The following link displays an screenshot of a DRM Panic. Scan the QR code with your phone to test the application:

https://jexposit.fedorapeople.org/drm-panic-demo.png

Current Implementation Status

The DRM Panic Frontend is fully functional and includes:

  • Complete panic information display with system details (kernel version, architecture)
  • Modal dialogs for detailed error traces and bug reporting instructions
  • Bugzilla integration with pre-filled bug report URLs
  • Responsive design for mobile and desktop viewing
  • Minimal test coverage with Jest

Feedback

Initial community feedback from the devel@lists.fedoraproject.org announcement has been positive, with recognition that improving the user experience for kernel panics is valuable.

https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/JMGIBLN6EXSASOFGGTVEB7U23WND6SA6/

Benefit to Fedora

  1. Improved User Experience - Transforms a technical, intimidating error screen into an approachable interface that guides users through understanding and reporting issues
  2. Increased Bug Reports - By lowering the barrier to bug reporting, Fedora and upstream developers will receive more actionable panic reports, leading to better kernel stability
  3. Accessibility - Makes kernel debugging information accessible to non-technical users who can now effectively report issues even without understanding kernel internals

Scope

  • Proposal owners:
    • Maintain the DRM Panic Frontend application
    • Respond to bug reports and feature requests
    • Keep dependencies up to date
  • Other developers:
    • Fedora Infrastructure team - Provide hosting for the static web application, configure domains, and set up deployment pipeline
    • Fedora Design team (optional) - Review and suggest improvements to the user interface
    • Kernel team - Coordinate on QR code URL format and ensure DRM Panic QR codes point to the hosted frontend
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy:

This change aligns with the Fedora Strategy by improving user experience and making Fedora more accessible to non-technical users while also improving the quality of bug reports that help make Fedora more stable and reliable.

Upgrade/compatibility impact

This change has no impact on existing systems. The DRM Panic Frontend is an optional, additive feature that enhances the existing DRM Panic functionality without modifying kernel behavior.


How To Test

Testing the Web Application

Local Development Testing:

git clone https://github.com/JoseExposito/drm-panic-frontend.git
cd drm-panic-frontend
npm install
cp .env.example .env
npm start

Access Test URL: Navigate to the example URL provided in HACKING.md which simulates a DRM Panic QR code

Verify Functionality:

  • Panic information displays correctly (kernel version, architecture)
  • Error trace is readable and properly formatted
  • "Report Issue" modal provides clear instructions
  • Bugzilla link is correctly formatted with pre-filled fields
  • Copy-to-clipboard functionality works
  • Responsive design works on mobile devices

Production Build Testing:

npm run build:production

Verify the dist/ directory contains optimized static files ready for deployment

User Experience

Before This Change

When a user experiences a kernel panic with DRM Panic enabled:

  1. Screen displays a kernel panic message with a QR code
  2. User scans QR code
  3. User sees technical information with no context
  4. No clear path to report the issue or get help

After This Change

When a user experiences a kernel panic:

  1. Screen displays a kernel panic message with a QR code
  2. User scans QR code
  3. Browser loads a Fedora-branded web page
  4. User sees:
    • Clear explanation of what happened
    • System information in readable format (kernel version, architecture)
    • Structured error trace display
    • Step-by-step bug reporting instructions


Dependencies

Build Dependencies

  • Node.js 18+ (for development and building)
  • npm or yarn package manager

Runtime Dependencies

  • Modern web browser with JavaScript enabled
  • No server-side runtime dependencies (static files only)

Integration Dependencies

  • DRM Panic kernel feature (enabled in Fedora 42+)
  • QR code configuration pointing to the hosted frontend URL

Contingency Plan

  • Contingency mechanism: If the DRM Panic Frontend cannot be deployed for Fedora 45, DRM Panic continues to function with raw QR code data URLs. Users experience the pre-existing workflow (direct URL with encoded data). No regression or loss of functionality. Deployment can be attempted in a future release.
  • Contingency deadline: Beta freeze. If hosting infrastructure is not ready by Beta, the deployment can be postponed without impact.
  • Blocks release? No. This is a web application deployment separate from the Fedora release compose process.

Documentation

Application Documentation

Related Documentation


Release Notes

Fedora 45 introduces the DRM Panic Frontend, a user-friendly web interface for kernel panic reporting. When you scan a QR code from a kernel panic screen, you'll be directed to a helpful Fedora web page that explains what happened and guides you through reporting the issue to help improve Fedora. This makes it easier for everyone to contribute to Fedora's stability.