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
- Name: José Expósito
- Email: jexposit@redhat.com
Current status
- Targeted release: Fedora Linux 45
- Last updated: 2026-03-25
- Announced
- Discussion thread
- FESCo issue: #3579
- Tracker bug: #2451365
- Release notes tracker: #323
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:
- Provides contextual information - Explains what happened in accessible language
- Decodes and displays panic information - Presents kernel version, architecture, and error traces in a structured, readable format
- Facilitates bug reporting - Offers streamlined integration with Fedora Bugzilla, pre-filling bug reports with relevant system information and error traces
- 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:
WEBPACK_BUGZILLA_URL- URL of the Fedora Bugzilla instance (for example, https://bugzilla.redhat.com)
npm run build:production generates a website pointing to the configured Bugzilla URL.
Information Flow:
- DRM Panic generates QR code containing compressed panic data (URL with query parameters)
- User scans QR code with mobile device
- Browser loads web application from Fedora infrastructure
- JavaScript decodes URL parameters and decompresses trace data
- Application presents information and provides bug reporting workflow
- 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.
Benefit to Fedora
- Improved User Experience - Transforms a technical, intimidating error screen into an approachable interface that guides users through understanding and reporting issues
- 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
- 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:
- Screen displays a kernel panic message with a QR code
- User scans QR code
- User sees technical information with no context
- No clear path to report the issue or get help
After This Change
When a user experiences a kernel panic:
- Screen displays a kernel panic message with a QR code
- User scans QR code
- Browser loads a Fedora-branded web page
- 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
- GitHub Repository
- HACKING.md - Development and testing guide
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.
