diff --git a/meson_options.txt b/meson_options.txt
index 4405b401d7d3..fad928af4b62 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -66,6 +66,11 @@ option('tracing',
         value : 'auto',
         description : 'Enable tracing (based on lttng)')
 
+option('udev',
+       type : 'feature',
+       value : 'auto',
+       description : 'Enable udev support for hotplug')
+
 option('v4l2',
         type : 'boolean',
         value : false,
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index 38fbb41e7d6c..b24f82965764 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -76,7 +76,7 @@ libdl = null_dep
 if not cc.has_function('dlopen')
     libdl = cc.find_library('dl')
 endif
-libudev = dependency('libudev', required : false)
+libudev = dependency('libudev', required : get_option('udev'))
 libyaml = dependency('yaml-0.1', required : false)
 
 # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.
