RHEL BasedRocky Linux

How To Install Fwupd on Rocky Linux 10

Install Fwupd on Rocky Linux 10

In this tutorial, we will show you how to install Fwupd on Rocky Linux 10. Firmware updates are critical for maintaining system security, hardware compatibility, and optimal performance on Linux systems. Rocky Linux 10, as an enterprise-grade Red Hat Enterprise Linux derivative, provides excellent support for the fwupd daemon, which serves as the primary firmware update mechanism for modern Linux distributions. This comprehensive guide walks you through every aspect of installing and configuring fwupd on Rocky Linux 10, ensuring your system stays secure and up-to-date.

Fwupd represents a revolutionary approach to firmware management on Linux platforms. Unlike traditional firmware update methods that required vendor-specific tools or manual BIOS updates, fwupd provides a unified framework for updating device firmware across thousands of supported hardware components. The daemon integrates seamlessly with Rocky Linux 10’s package management system and UEFI implementation, making firmware updates as straightforward as installing regular software packages.

Understanding Fwupd and Rocky Linux 10 Integration

The firmware update daemon (fwupd) serves as a comprehensive solution for managing device firmware on Linux systems. This powerful tool connects to the Linux Vendor Firmware Service (LVFS), providing access to signed firmware updates from major hardware manufacturers including Dell, Lenovo, HP, Intel, and countless others.

Rocky Linux 10 offers enhanced UEFI support and improved security features that work harmoniously with fwupd’s architecture. The operating system’s robust package management system ensures seamless integration with firmware update workflows, while maintaining the stability and reliability that enterprise environments demand.

Recent developments in fwupd technology have introduced significant improvements in UEFI support, plugin architecture, and security validation mechanisms. Version 2.0.8 and newer releases include enhanced support for various hardware platforms, improved error handling, and better integration with secure boot environments.

The importance of regular firmware updates cannot be overstated in today’s security landscape. Firmware vulnerabilities can provide attackers with deep system access that bypasses traditional security measures. Fwupd addresses these concerns by providing cryptographically signed updates, automated security validation, and comprehensive logging of all firmware modification activities.

Prerequisites and System Requirements

Before beginning the fwupd installation process, ensure your Rocky Linux 10 system meets the necessary requirements and conditions. These prerequisites are essential for successful installation and operation of the firmware update daemon.

Your system should be running a fully updated Rocky Linux 10 installation with administrative privileges available. The installation process requires root access or sudo privileges to modify system packages and configuration files. Ensure your user account has the necessary permissions to execute privileged commands.

Network connectivity is absolutely essential for fwupd operation. The daemon requires internet access to download firmware metadata from the LVFS, retrieve available updates, and validate firmware signatures. Configure your firewall settings to allow outbound HTTPS connections on port 443 for fwupd communication.

UEFI firmware systems provide the best compatibility with fwupd, though BIOS systems can still benefit from certain firmware update capabilities. Modern UEFI implementations include the EFI System Partition (ESP) which fwupd uses for staging firmware updates during the boot process. Verify your system’s firmware type using the ls /sys/firmware/efi command.

Secure Boot compatibility requires special consideration when installing fwupd. While the daemon supports secure boot environments, certain configuration adjustments may be necessary to ensure proper operation. The shim-x64 package plays a crucial role in secure boot scenarios and should not be removed inadvertently.

Create comprehensive system backups before proceeding with fwupd installation or firmware updates. While fwupd includes safety mechanisms and rollback capabilities, having complete system backups provides additional protection against unexpected issues. Document your current firmware versions using manufacturer tools or system information utilities.

Installation Method 1: DNF Package Manager Installation

The DNF package manager provides the most straightforward and reliable method for installing fwupd on Rocky Linux 10. This approach leverages the official Rocky Linux repositories, ensuring you receive properly tested and integrated packages that follow enterprise distribution standards.

Begin by updating your package repository metadata to ensure access to the latest package information. Execute the following command to refresh repository data:

sudo dnf update --refresh

This command synchronizes your local package database with the latest repository information, ensuring you have access to the most recent fwupd packages and dependencies. The refresh operation typically completes within a few seconds, depending on your network connection speed.

Verify fwupd package availability in the Rocky Linux repositories before attempting installation. Use the following command to search for available fwupd packages:

dnf search fwupd

The search results should display the main fwupd package along with various plugins and related components. Review the package descriptions to understand the functionality provided by each component.

Install fwupd using the DNF package manager with the following command:

sudo dnf install fwupd

DNF automatically resolves dependencies and displays a comprehensive list of packages that will be installed alongside fwupd. These dependencies typically include libraries for hardware communication, cryptographic verification components, and system integration utilities. Review the dependency list carefully before confirming the installation.

The installation process downloads and installs multiple packages, including the core fwupd daemon, plugin modules for various hardware types, and necessary configuration files. Installation typically completes within a few minutes, depending on your internet connection speed and system performance.

Verify successful installation by checking the fwupd version and basic functionality:

fwupdmgr get-devices

This command should display a list of supported devices detected on your system, confirming that fwupd installation completed successfully and can communicate with your hardware components.

Installation Method 2: Snap Package Installation

Snap packages provide an alternative installation method that offers certain advantages in specific deployment scenarios. The snap version of fwupd includes all necessary dependencies in a self-contained package, simplifying deployment and reducing potential conflicts with system packages.

Install snapd on Rocky Linux 10 if not already present. Enable the EPEL repository first, then install snapd:

sudo dnf install epel-release
sudo dnf install snapd

Enable and start the snapd service to activate snap functionality:

sudo systemctl enable --now snapd.socket
sudo systemctl enable --now snapd

Create the traditional snap directory symlink for compatibility:

sudo ln -s /var/lib/snapd/snap /snap

Install fwupd using the snap package manager with the following command:

sudo snap install fwupd

The snap installation process downloads the complete fwupd stack, including all dependencies and plugins. This self-contained approach ensures consistent behavior across different Linux distributions and reduces dependency conflicts.

Snap packages operate in a confined environment with specific security restrictions. Grant necessary permissions for fwupd snap functionality:

sudo snap connect fwupd:hardware-observe
sudo snap connect fwupd:system-observe

Verify snap-based fwupd installation by checking device detection:

fwupd.fwupdmgr get-devices

Note that snap-installed fwupd uses the fwupd.fwupdmgr command prefix instead of the standard fwupdmgr command used with traditional package installations.

Installation Method 3: Source Compilation

Compiling fwupd from source provides maximum flexibility and access to the latest development features. This method requires more technical expertise but offers complete control over build configuration and optimization settings.

Install development tools and build dependencies required for fwupd compilation:

sudo dnf groupinstall "Development Tools"
sudo dnf install meson ninja-build pkg-config glib2-devel libgudev1-devel
sudo dnf install json-glib-devel libsoup-devel sqlite-devel gcab-devel
sudo dnf install libarchive-devel polkit-devel systemd-devel

Download the fwupd source code from the official repository:

git clone https://github.com/fwupd/fwupd.git
cd fwupd

Configure the build environment using meson build system:

meson setup build --prefix=/usr/local

Compile fwupd using ninja build tool:

ninja -C build

Install the compiled fwupd binary and associated files:

sudo ninja -C build install

Update library cache and systemd configuration after source installation:

sudo ldconfig
sudo systemctl daemon-reload

Source compilation provides access to cutting-edge features but requires ongoing maintenance to incorporate security updates and bug fixes manually.

Initial Configuration and Setup

Proper configuration ensures fwupd operates correctly within your Rocky Linux 10 environment. The daemon requires specific system settings and permissions to function properly with UEFI firmware and hardware components.

Enable and start the fwupd systemd service:

sudo systemctl enable fwupd
sudo systemctl start fwupd

Verify service status to ensure proper startup:

sudo systemctl status fwupd

The service should display “active (running)” status without error messages. If startup issues occur, examine the systemd journal for detailed error information:

sudo journalctl -u fwupd -f

Configure the EFI System Partition (ESP) location if not automatically detected. Edit the fwupd configuration file:

sudo nano /etc/fwupd/fwupd.conf

Locate the [fwupd] section and verify or add the ESP location:

[fwupd]
EspLocation=/boot/efi

The ESP location varies depending on your system configuration. Common locations include /boot/efi, /efi, or /boot/EFI. Use the findmnt -t vfat command to identify the correct ESP mount point.

Ensure proper UEFI variables access by checking permissions on the efivars filesystem:

ls -la /sys/firmware/efi/efivars/

The directory should be accessible with appropriate permissions for firmware variable manipulation. Incorrect permissions can prevent fwupd from updating UEFI-based firmware components.

Test basic fwupd functionality by refreshing the device database and checking for supported hardware:

sudo fwupdmgr refresh
fwupdmgr get-devices

The refresh command downloads the latest device metadata from LVFS, while get-devices displays all supported hardware components detected on your system. This initial test confirms that fwupd can communicate with both remote servers and local hardware.

Common Installation Issues and Troubleshooting

Installation and configuration problems can arise due to various system-specific factors. Understanding common issues and their solutions helps ensure successful fwupd deployment and operation.

UEFI and Secure Boot Issues

UEFI configuration problems frequently cause fwupd installation or operation difficulties. The “No valid ‘EspLocation'” error indicates that fwupd cannot locate or access the EFI System Partition required for firmware staging.

Identify the correct ESP location using multiple methods:

findmnt -t vfat
lsblk -f | grep vfat

Compare the results to identify the EFI System Partition mount point. Update the fwupd configuration file with the correct path and restart the fwupd service.

Secure Boot environments can complicate fwupd operation due to signature validation requirements. Verify Secure Boot status:

mokutil --sb-state

If Secure Boot is enabled, ensure that fwupd and related components are properly signed. The shim-x64 package provides essential Secure Boot support and should never be removed inadvertently.

VMware and other virtualization platforms may present unique challenges with UEFI firmware updates. Virtual machines often lack the hardware-specific firmware components that fwupd expects to find, resulting in limited functionality or error messages.

Package Dependency Problems

Dependency conflicts can prevent successful fwupd installation or cause system instability. The shim-x64 package represents a critical dependency that affects system boot capability.

Understanding the dependency relationship helps prevent accidental system damage:

rpm -q shim-x64 --requires

This command displays all packages that shim-x64 requires for proper operation. Never attempt to remove shim-x64 without understanding the consequences, as doing so can render the system unbootable.

Resolve broken dependencies using DNF’s repair capabilities:

sudo dnf check
sudo dnf distro-sync

These commands identify and resolve package inconsistencies that might interfere with fwupd operation.

Service and Permission Issues

Systemd service configuration problems can prevent fwupd from starting properly. Recent versions include enhanced security restrictions that may require adjustment for specific environments.

The SystemCallFilter configuration in newer fwupd versions can cause startup failures in certain environments. If you encounter “syscall filtering is configured” errors, modify the systemd service file:

sudo systemctl edit fwupd

Add the following override configuration:

[Service]
Environment="FWUPD_SYSCALL_FILTER=systemd"

This adjustment resolves compatibility issues with restrictive security policies while maintaining system security.

SELinux policies may interfere with fwupd operation in enforcing mode. Check SELinux status and audit logs:

getenforce
sudo ausearch -m AVC -ts recent

Temporary SELinux permissive mode can help identify policy conflicts:

sudo setenforce 0

Remember to re-enable SELinux enforcement after resolving policy issues.

Advanced Configuration and Usage

Advanced fwupd configuration enables sophisticated firmware management capabilities suitable for enterprise environments and specialized use cases. These configurations extend beyond basic installation to provide comprehensive firmware lifecycle management.

Configure automatic firmware updates using systemd timers for scheduled maintenance windows. Create a custom timer unit:

sudo nano /etc/systemd/system/fwupd-auto-update.timer

Define the update schedule:

[Unit]
Description=Automatic Firmware Update Timer
Requires=fwupd-auto-update.service

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

Create the corresponding service unit:

sudo nano /etc/systemd/system/fwupd-auto-update.service

Configure the update service:

[Unit]
Description=Automatic Firmware Update Service
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/fwupdmgr update --no-reboot-check

Enable the timer to activate automatic updates:

sudo systemctl enable fwupd-auto-update.timer
sudo systemctl start fwupd-auto-update.timer

Custom repository configuration allows integration with internal firmware distribution systems. Edit the daemon configuration to include additional metadata sources:

sudo nano /etc/fwupd/daemon.conf

Add custom repository URLs:

[fwupd]
RemoteUrl=https://your-internal-server.com/metadata.xml.gz

This configuration enables enterprise environments to distribute custom firmware updates through internal infrastructure while maintaining security validation.

Best Practices and Security Considerations

Implementing robust firmware update practices ensures system security while minimizing operational risks. These practices form the foundation of enterprise-grade firmware management strategies.

Establish comprehensive testing procedures before deploying firmware updates to production systems. Create isolated test environments that mirror production configurations, allowing thorough validation of firmware updates before widespread deployment.

Implement staged rollout procedures that gradually deploy firmware updates across infrastructure components. Begin with non-critical systems and progressively expand to mission-critical components after validating stability and functionality.

Maintain detailed documentation of all firmware versions and update activities. This documentation supports compliance requirements and enables rapid troubleshooting when issues arise. Use configuration management tools to automate documentation maintenance and ensure consistency across environments.

Regular backup procedures should encompass both system configurations and firmware images where possible. While firmware backups may not always be feasible, documenting current versions and maintaining recovery procedures provides essential protection against update failures.

Security validation requires verification of firmware signatures and sources before installation. Fwupd automatically validates signatures, but additional verification steps may be appropriate for high-security environments. Monitor security advisories related to firmware vulnerabilities and prioritize updates accordingly.

Verification and Testing

Comprehensive testing validates successful fwupd installation and ensures reliable operation across all supported hardware components. These verification steps confirm that the installation meets functional requirements and security standards.

Execute complete device enumeration to verify hardware detection capabilities:

fwupdmgr get-devices --show-all

This command displays detailed information about all detected devices, including those that may not support firmware updates. Review the output to ensure all expected hardware components appear in the device list.

Perform update availability checks to validate LVFS connectivity and metadata processing:

fwupdmgr refresh
fwupdmgr get-updates

The refresh command downloads current metadata from firmware repositories, while get-updates identifies available firmware updates for detected hardware. Successful execution confirms proper network connectivity and metadata processing capabilities.

Test firmware update simulation without applying actual changes:

fwupdmgr update --no-reboot-check --simulate

Simulation mode validates the complete update process without modifying firmware, providing confidence in the update mechanisms while avoiding potential risks during testing phases.

Document baseline firmware versions for all detected components:

fwupdmgr get-devices | grep -E "(Device|Version)"

This information serves as a reference point for tracking firmware update history and supporting troubleshooting activities when issues arise.

Maintenance and Updates

Ongoing maintenance ensures continued fwupd functionality and security effectiveness. Regular maintenance activities prevent degradation of firmware update capabilities and maintain system security posture.

Keep the fwupd package updated through normal system maintenance procedures:

sudo dnf update fwupd

Monitor for fwupd updates regularly, as newer versions include enhanced hardware support, security improvements, and bug fixes that affect reliability and functionality.

Refresh firmware metadata periodically to ensure access to the latest available updates:

sudo fwupdmgr refresh --force

The force flag ensures complete metadata refresh even when cached data appears current, guaranteeing access to recently published firmware updates.

Monitor log files for unusual activity or error conditions:

sudo journalctl -u fwupd --since "24 hours ago"

Regular log review identifies potential issues before they impact system functionality or security posture.

Implement log rotation policies to manage disk space consumption while retaining sufficient historical data for troubleshooting purposes. Configure logrotate for fwupd logs if not already handled by system defaults.

Schedule periodic firmware update reviews to evaluate available updates against operational requirements and security policies. Not all firmware updates require immediate installation, but regular review ensures timely deployment of critical security updates.

Congratulations! You have successfully installed Fwupd. Thanks for using this tutorial for installing Fwupd on Rocky Linux 10 system. For additional help or useful information, we recommend you check the official Fwupd website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button