# Nvidia jetson debloating guide

**URL:** <https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606>\
**Category:** ROS General\
**Created:** [August 23, 2026, 5:38am UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606 "2026-08-23T05:38:22Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![solonovamax](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/solonovamax/32/31206_2.png) [@solonovamax](https://discourse.openrobotics.org/u/solonovamax)\
**Post date:** [August 23, 2026, 5:38am UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/1 "2026-08-23T05:38:22Z")

</div>

does anyone know of like an nvidia jetson debloating guide that exists?

I was just updating my jetson to the latest jetpack release and wanted to take a go at removing some of the massive amounts of bloat that nvidia ships with jetpack. I looked around and couldn’t find really many good guides on getting rid of some of the garbage they leave laying around

if no such guide exists, I was pretty comprehensive in documenting the steps that I took to clean things up. would anyone be interested in me writing it up into a guide and publishing it? (I’m not talking about smth paid, I mean like a free blog post)

---

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [August 23, 2026, 1:16pm UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/2 "2026-08-23T13:16:33Z")

</div>

These are a few key steps we do:

```yaml
- hosts: jetson
  tags: [jetson]
  tasks:
  - name: Prefer system OpenCV  
    ansible.builtin.copy:
      src: "{{ files }}/etc/apt/preferences.d/00-l4t-fix-opencv"
      dest: "/etc/apt/preferences.d/00-l4t-fix-opencv"
      mode: 0644
      directory_mode: 0755
      owner: root
      group: root
    become: true

  - name: Install OpenCV
    ansible.builtin.apt:
      name: "libopencv-dev"
      state: present
      allow_downgrade: True
    become: yes

  - name: Prefer system ffmpeg  
    ansible.builtin.copy:
      src: "{{ files }}/etc/apt/preferences.d/00-l4t-fix-ffmpeg"
      dest: "/etc/apt/preferences.d/00-l4t-fix-ffmpeg"
      mode: 0644
      directory_mode: 0755
      owner: root
      group: root
    become: true

  - name: Install FFMpeg
    ansible.builtin.apt:
      name: "ffmpeg"
      state: present
      allow_downgrade: True
    become: yes

```

With:

```auto
Package: ffmpeg
Pin: release o=Ubuntu
Pin-Priority: 1000

```

and

```auto
Package: libopencv-dev
Pin: release o=Ubuntu
Pin-Priority: 1000

```

being the APT pref files.

This solves the long-standing issue that NVidia chose to ship different version of OpenCV and ffmpeg than which is in the upstream Ubuntu. So when you install any binary ROS packages built on the buildfarm against the Ubuntu version, they’re very prone to fail on Jetson unless you do this.

I think GStreamer could suffer from the same problem.

Yes, of course, you’ll lose the nvidia additions to these packages. ffmpeg might actually have some that you’d want. However, NVidia OpenCV is bullshit, it is NOT built with CUDA support (yes, that’s true and jtop isn’t lying about it - or at least that was the case for JP 5 when I investigated this).

---

<div class="post-metadata">

**Author:** ![solonovamax](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/solonovamax/32/31206_2.png) [@solonovamax](https://discourse.openrobotics.org/u/solonovamax)\
**Post date:** [August 23, 2026, 6:33pm UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/3 "2026-08-23T18:33:45Z")

</div>

> [@peci1](#):
>
> This solves the long-standing issue that NVidia chose to ship different version of OpenCV and ffmpeg than which is in the upstream Ubuntu. So when you install any binary ROS packages built on the buildfarm against the Ubuntu version, they’re very prone to fail on Jetson unless you do this.

lmfao, incredible

great work nvidia

they seem to do some amazing things with jetpack, like this, marking literally every single package as manually installed, shipping an entire desktop environment for an embedded platform, etc.

also, based on the yaml, I’m assuming you’re using something to manage setting up jetsons automatically? what is it you’re using for that?

> [@peci1](#):
>
> Yes, of course, you’ll lose the nvidia additions to these packages. ffmpeg might actually have some that you’d want. However, NVidia OpenCV is bullshit, it is NOT built with CUDA support (yes, that’s true and jtop isn’t lying about it - or at least that was the case for JP 5 when I investigated this).

~~do you know what additions they have to it? is it specific patches or just compiling with different features enabled? iirc they had a tarball you could download on their website (though, annoyingly, it’s a single tarball for everything)~~  
wait nvm I just realized that’s ansible lol

---

<div class="post-metadata">

**Author:** ![MoffKalast](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/moffkalast/32/6355_2.png) [@MoffKalast](https://discourse.openrobotics.org/u/MoffKalast)\
**Post date:** [August 24, 2026, 9:08am UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/4 "2026-08-24T09:08:47Z")

</div>

> [@peci1](#):
>
> Yes, of course, you’ll lose the nvidia additions to these packages. ffmpeg might actually have some that you’d want. However, NVidia OpenCV is bullshit, it is NOT built with CUDA support (yes, that’s true and jtop isn’t lying about it - or at least that was the case for JP 5 when I investigated this).

> [@peci1](#):
>
> This solves the long-standing issue that NVidia chose to ship different version of OpenCV and ffmpeg than which is in the upstream Ubuntu.

I’ve ran into this recently as well haha, at build time everything was using nvidia’s version, and at runtime prebuilt cv\_bridge got pulled in which required the apt one and boom. My workaround at the time was to implement the little I needed cv\_bridge for manually and use nvidia’s opencv at both build and runtime.

I wasn’t really feeling good about removing their version in case something else depended on it, but if this approach works without nuking tensorrt and the rest of jetpack then it’s a great solution 👍

Btw, I don’t suppose you’ve found a way to get CUDA compiled opencv on Orins that doesn’t involve waiting 8 hours for it to compile from source? I would’ve imagined there has to be an apt source out there with prebuilt binaries but I admit I haven’t really looked after “solving” that for the time being.

---

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [August 24, 2026, 11:11am UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/5 "2026-08-24T11:11:10Z")

</div>

Nope, we don’t have CUDA-enabled OpenCV… But usually you can build a deb package and the distribute only that…

---

<div class="post-metadata">

**Author:** ![Katherine\_Scott](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/katherine_scott/32/4434_2.png) [@Katherine\_Scott](https://discourse.openrobotics.org/u/Katherine_Scott)\
**Post date:** [August 24, 2026, 4:33pm UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/6 "2026-08-24T16:33:26Z")

</div>

@peci1 This is super helpful. Thanks!

Do you think it would be helpful to reach out to OpenCV and NVIDIA to see if we could remedy this situation?

---

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [August 24, 2026, 10:31pm UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/7 "2026-08-24T22:31:39Z")

</div>

I already reached out to NVidia. No effect. [Very bad ideas about naming the opencv libraries - #5 by DaneLLL - Jetson AGX Xavier - NVIDIA Developer Forums](https://forums.developer.nvidia.com/t/very-bad-ideas-about-naming-the-opencv-libraries/228666/5)

@Katherine_Scott your reaching capabilities are probably better than mine in this area, so feel free to give it another try.

---

<div class="post-metadata">

**Author:** ![solonovamax](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/solonovamax/32/31206_2.png) [@solonovamax](https://discourse.openrobotics.org/u/solonovamax)\
**Post date:** [August 25, 2026, 3:49am UTC](https://discourse.openrobotics.org/t/nvidia-jetson-debloating-guide/57606/8 "2026-08-25T03:49:20Z")

</div>

> [@peci1](#):
>
> Nope, we don’t have CUDA-enabled OpenCV… But usually you can build a deb package and the distribute only that…

if only nvidia actually distributed the ffmpeg source instead of violating the GPL license

```plaintext
$ apt source ffmpeg
Reading package lists... Done
E: Unable to find a source package for ffmpeg

```

(and no, modifying the `/etc/apt/sources.list.d/nvidia-l4t-apt-source.list` file to make sure that `deb-src` was used for the ffmpeg repository did not fix this)

the same applies to opencv, but this isn’t a license violation

> [@peci1](#):
>
> I already reached out to NVidia. No effect. [Very bad ideas about naming the opencv libraries - #5 by DaneLLL - Jetson AGX Xavier - NVIDIA Developer Forums](https://forums.developer.nvidia.com/t/very-bad-ideas-about-naming-the-opencv-libraries/228666/5)

nvidia moment
