DeveloperBreeze

How to Fix NVIDIA Driver Issues on Ubuntu (Dell Vostro 3521)

If your NVIDIA GPU isn’t detected properly on Ubuntu, or nvidia-smi shows an error like "couldn't communicate with the NVIDIA driver", this guide will walk you through how to fix that.

This was tested and confirmed working on a Dell Vostro 3521 with an NVIDIA GeForce MX350 GPU.


Step 1: Detect Your GPU

Open a terminal and run:

lspci -k | grep -EA3 'VGA|3D|Display'

You’ll see something like:

00:02.0 VGA compatible controller: Intel Corporation ...
	Kernel driver in use: i915
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce MX350]
	Kernel driver in use: nouveau

This means your system has both Intel integrated graphics and an NVIDIA discrete GPU.


Step 2: Check OpenGL Renderer

Install Mesa utilities:

sudo apt install mesa-utils
glxinfo | grep "OpenGL renderer"

You’ll likely see:

OpenGL renderer string: Mesa Intel(R) Xe Graphics

This shows the system is currently using the Intel GPU for rendering — not NVIDIA.


Step 3: Check Available NVIDIA Drivers

Run:

sudo ubuntu-drivers devices

You’ll see a list like:

driver   : nvidia-driver-550 - distro non-free recommended
...
driver   : xserver-xorg-video-nouveau - distro free builtin

Make note of the recommended driver (e.g. nvidia-driver-550).


Step 4: Clean Up Old Drivers (If Any)

Let’s purge conflicting or broken drivers:

sudo apt purge 'nvidia-*'
sudo apt remove --purge xserver-xorg-video-nouveau
sudo apt autoremove

Then update:

sudo apt update

Step 5: Install the Correct NVIDIA Driver

Install the recommended version:

sudo apt install nvidia-driver-550 nvidia-prime

Step 6: Disable Secure Boot (IMPORTANT!)

If Secure Boot is enabled in BIOS, the NVIDIA kernel module may be rejected silently, even if installation succeeded.

Disable Secure Boot on Dell Vostro 3521:

  1. Reboot your system.
  2. Press F2 repeatedly to enter BIOS.
  3. Go to Boot or Security tab.
  4. Set Secure Boot to Disabled.
  5. Save and exit.

Step 7: Reboot and Verify

Now reboot:

sudo reboot

After boot, check if the driver is working:

nvidia-smi

You should see output like:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.120       Driver Version: 550.120       CUDA Version: 12.4  |
| GPU  Name        | Bus-Id | Memory-Usage | GPU-Util |
|------------------+--------+--------------+----------|
| GeForce MX350    | 01:00.0| 5MiB / 2048MiB| 0%       |
+-----------------------------------------------------------------------------+

Success! Your NVIDIA GPU is now live.


Step 8: Use NVIDIA on Demand (prime-run)

If prime-run doesn't exist, create it:

sudo nano /usr/bin/prime-run

Paste:

#!/bin/bash
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __GL_VRR_ALLOWED=0 "$@"

Save and make it executable:

sudo chmod +x /usr/bin/prime-run

Now test:

prime-run glxinfo | grep "OpenGL renderer"

You should see:

OpenGL renderer string: NVIDIA GeForce MX350 ...

Bonus: Run Apps Using NVIDIA GPU

Launch apps like this:

prime-run firefox
prime-run blender
prime-run vlc

These will run on the NVIDIA GPU only, saving power when not needed.


Common Issues

ProblemSolution
nvidia-smi failsMake sure Secure Boot is disabled.
Module won’t loadRun sudo modprobe nvidia and check dmesg.
Poor performanceUse prime-select nvidia to switch fully.

Final Notes

  • Use prime-select query to check current mode (intel, nvidia, or on-demand).
  • Switch modes:
  sudo prime-select nvidia  # Always use NVIDIA
  sudo prime-select intel   # Use Intel only
  sudo prime-select on-demand  # Default hybrid mode
  • Reboot after switching modes.

Conclusion

Getting your NVIDIA GPU working on Ubuntu (especially on hybrid laptops like the Dell Vostro 3521) can be tricky — but once you follow the right steps, it’s smooth sailing. Disabling Secure Boot and using the correct driver is key.

Related Posts

More content you might like

Tutorial

ما هو حقن التبعيات (Dependency Injection)؟

يسهل حقن التبعيات استبدال العناصر الحقيقية بمحاكاة (Mocks) أثناء الاختبارات، مما يقلل التعقيد ويزيد دقة نتائج الاختبار.

يمكن تعديل أو استبدال أي تبعية دون تغيير الكائن الرئيسي، مما يجعل الكود أسهل في التطوير على المدى الطويل.

Dec 01, 2025
Read More
Article

أفضل طرق إزالة الصدأ من العدّة والمسامير – دليل شامل منزلي واحترافي

عند التعامل مع مئات المسامير، من غير المنطقي تنظيف كل مسمار على حدة. توفر تقنية التحليل الكهربائي حلولًا عملية تسمح بتنظيف 100–300 مسمار في دفعة واحدة.

  • يتم توصيل المسامير بالقطب السالب (Cathode).
  • توضع قطعة حديد قديمة كأنود (Anode) في الجهة المقابلة.
  • يتم تمرير تيار كهربائي منخفض الجهد، فيتحول الصدأ إلى رواسب تنفصل عن السطح.

Dec 01, 2025
Read More
Tutorial

How to Stop SSH From Timing Out

This makes the server send a keep-alive packet every 60 seconds, allowing up to 3 missed replies before disconnecting.

Restart SSH:

Aug 21, 2025
Read More
Tutorial

How to Translate URLs in React (2025 Guide)

import Home from './pages/Home';
import About from './pages/About';

export const routes = (t) => [
  {
    path: `/${t('routes.home')}`,
    element: <Home />,
  },
  {
    path: `/${t('routes.about')}`,
    element: <About />,
  },
];

Update App.js:

May 04, 2025
Read More

Discussion 0

Please sign in to join the discussion.

No comments yet. Be the first to share your thoughts!