> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Uninstall overlay configurations and switch to upstream drivers

You can uninstall downstream RPM packages related to an overlay configuration and switch to upstream drivers. Instead of uninstalling each overlay separately, uninstall an entire overlay configuration to ensure that only technologies associated with the installed configuration are removed.

You can uninstall the following overlay configurations:

* Config #2
* Config #3
* Config #4

Uninstalling overlay configurations involves the following tasks:

1. Identify installed downstream packages.
2. Uninstall configuration-specific RPMs.
3. Update module blacklist configuration, where applicable.
4. Switch camera driver selection through DTBO overlays (CamX).
5. Verify successful transition to upstream drivers.

**Note**

* Camera (CamX) doesn't rely on kernel module blacklisting. Camera driver selection is managed exclusively through the DTBO overlay mechanism.
* Module blacklisting applies only to audio, graphics, and video drivers.
* The sensors overlay functionality is supported only on QCS5430 and QCS6490. Support for sensors on IQ-9075, IQ-8275, and IQ-615 EVKs isn't enabled.
* After removing RPMs and updating the blacklist or EFI variable, you must restart the device.

## **Uninstall Config #2**

Uninstalling Config #2 involves removing the following downstream drivers:

* Audio
* Graphics
* Sensors
* Video
* Camera
* Vision

To remove the RPM packages and update module blacklisting for Config #2, do the following:

1. To identify the installed downstream packages, run the following commands:

   ```bash theme={null}
   dnf list installed | grep <driver_name>
   ```

   ```bash theme={null}
   lsmod | grep <driver_name>
   ```

2. To remove configuration-specific RPMs, run the following commands:

   ```bash theme={null}
   dnf remove tinycompress -y
   dnf remove audioreach-audio-utils -y
   dnf remove audioreach-conf -y
   dnf remove audioreach-graphservices -y
   dnf remove audioreach-graphmgr -y
   dnf remove audioreach-pal -y
   dnf remove audioreach-pipewire-plugin -y
   dnf remove audioreach-kernel -y
   dnf remove kernel-module-audioreach-driver -y
   dnf remove kernel-module-iris-vpu -y
   dnf remove camx-dlkm camx-nhx -y
   dnf remove qcom-sensors-binaries -y
   dnf remove qcom-adreno kgsl-dlkm -y
   ```

   To remove the vision RPM, run the following device-specific command:

   <Tabs>
     <Tab title="QCS6490">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-thundercomm-rb3gen2-dsp -y
       ```
     </Tab>

     <Tab title="IQ-9075">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-sa8775p-ride-dsp -y
       ```
     </Tab>

     <Tab title="IQ-8275">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-qcs8300-ride-dsp -y
       ```
     </Tab>

     <Tab title="IQ-615">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-qcs615-ride-dsp -y
       ```
     </Tab>
   </Tabs>

3. To clean up any orphaned dependencies, run the following command:

   ```bash theme={null}
   dnf autoremove -y
   ```

4. To update module blacklisting, remove the blacklist configuration files associated with audio, video, and graphics drivers:

   * For audio, run the following command:

     ```bash theme={null}
     rm -f /etc/modprobe.d/asoc-blacklist.conf
     ```

   * For video, run the following command:

     ```bash theme={null}
     rm -f /etc/modprobe.d/video-blacklist.conf
     ```

   * For graphics, run the following command:

     ```bash theme={null}
     rm -f /etc/modprobe.d/adreno-blacklist.conf
     ```

   **Note**

   No blacklist updates are required for camera drivers.

5. To switch the camera driver selection through DTBO overlays, see [Clear CamX DTBO overlay selection](#clear-camx-dtbo-overlay-selection).

## **Uninstall Config #3**

Uninstalling Config #3 involves removing the following downstream drivers:

* Audio
* Video
* Camera
* Sensors
* Vision

To remove the RPM packages and update module blacklisting for Config #3, do the following:

1. To identify the installed downstream packages, run the following commands:

   ```bash theme={null}
   dnf list installed | grep <driver_name>
   ```

   ```bash theme={null}
   lsmod | grep <driver_name>
   ```

2. To remove configuration-specific RPMs, run the following commands:

   ```bash theme={null}
   dnf remove tinycompress -y
   dnf remove audioreach-audio-utils -y
   dnf remove audioreach-conf -y
   dnf remove audioreach-graphservices -y
   dnf remove audioreach-graphmgr -y
   dnf remove audioreach-pal -y
   dnf remove audioreach-pipewire-plugin -y
   dnf remove audioreach-kernel -y
   dnf remove kernel-module-audioreach-driver -y
   dnf remove kernel-module-iris-vpu -y
   dnf remove camx-dlkm camx-nhx -y
   dnf remove qcom-sensors-binaries -y
   ```

   To remove the vision RPM, run the following device-specific command:

   <Tabs>
     <Tab title="QCS6490">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-thundercomm-rb3gen2-dsp -y
       ```
     </Tab>

     <Tab title="IQ-9075">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-sa8775p-ride-dsp -y
       ```
     </Tab>

     <Tab title="IQ-8275">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-qcs8300-ride-dsp -y
       ```
     </Tab>

     <Tab title="IQ-615">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-qcs615-ride-dsp -y
       ```
     </Tab>
   </Tabs>

3. To clean up any orphaned dependencies, run the following command:

   ```bash theme={null}
   dnf autoremove -y
   ```

4. To update module blacklisting, remove the blacklist configuration files associated with audio and video drivers:

   * For audio, run the following command:

     ```bash theme={null}
     rm -f /etc/modprobe.d/asoc-blacklist.conf
     ```

   * For video, run the following command:

     ```bash theme={null}
     rm -f /etc/modprobe.d/video-blacklist.conf
     ```

   **Note**

   No blacklist updates are required for camera drivers.

5. To switch the camera driver selection through DTBO overlays, see [Clear CamX DTBO overlay selection](#clear-camx-dtbo-overlay-selection).

## **Uninstall Config #4**

Uninstalling Config #4 involves removing the following downstream drivers:

* Graphics
* Camera
* Sensors
* Vision

To remove the RPM packages and update module blacklisting for Config #4, do the following:

1. To identify the installed downstream packages, run the following commands:

   ```bash theme={null}
   dnf list installed | grep <driver_name>
   ```

   ```bash theme={null}
   lsmod | grep <driver_name>
   ```

2. To remove configuration-specific RPMs, run the following commands:

   ```bash theme={null}
   dnf remove qcom-adreno kgsl-dlkm -y
   dnf remove camx-dlkm camx-nhx -y
   dnf remove qcom-sensors-binaries -y
   ```

   To remove the vision RPM, run the following device-specific command:

   <Tabs>
     <Tab title="QCS6490">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-thundercomm-rb3gen2-dsp -y
       ```
     </Tab>

     <Tab title="IQ-9075">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-sa8775p-ride-dsp -y
       ```
     </Tab>

     <Tab title="IQ-8275">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-qcs8300-ride-dsp -y
       ```
     </Tab>

     <Tab title="IQ-615">
       ```bash theme={null}
       dnf remove libfastcvopt1 -y
       dnf remove libfastcvopt-qcs615-ride-dsp -y
       ```
     </Tab>
   </Tabs>

3. To clean up any orphaned dependencies, run the following command:

   ```bash theme={null}
   dnf autoremove -y
   ```

4. To update module blacklisting, remove the blacklist configuration file associated with the graphics drivers by running the following command:

   ```bash theme={null}
   rm -f /etc/modprobe.d/adreno-blacklist.conf
   ```

   **Note**

   No blacklist updates are required for camera drivers.

5. To switch the camera driver selection through DTBO overlays, see [Clear CamX DTBO overlay selection](#clear-camx-dtbo-overlay-selection).

## **Clear CamX DTBO overlay selection**

Camera driver selection is controlled by the DTBO overlay configuration. Hence, switching from downstream CamX to the upstream camera stack requires you to clear the CamX overlay selection. To clear the CamX DTBO overlay selection, do the following:

1. To create an empty overlay configuration file, run the following command:

   ```bash theme={null}
   echo -n " " > /var/data
   ```

2. To write the empty value to the EFI variable, run the following command:

   ```bash theme={null}
   efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /var/data
   ```

3. To verify the EFI variable status, run the following command:

   ```bash theme={null}
   efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
   ```

   A null output confirms that the downstream CamX overlay selection has been cleared.

4. To reboot the device, run the following commands:

   ```bash theme={null}
   sync
   ```

   ```bash theme={null}
   reboot
   ```

5. After reboot, the device boots to the upstream stack.

6. To verify that the transition to the upstream stack is successful, run the following command:

   ```bash theme={null}
   lsmod | grep <driver_name>
   ```
