diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
index f2e055de..f2d943d1 100644
--- a/src/libcamera/device_enumerator.cpp
+++ b/src/libcamera/device_enumerator.cpp
@@ -100,9 +100,13 @@ bool DeviceMatch::match(const MediaDevice *device) const
 		bool found = false;
 
 		for (const MediaEntity *entity : device->entities()) {
-			if (name == entity->name()) {
+			if (name == entity->name() && !entity->deviceNode().empty()) {
 				found = true;
 				break;
+			} else if (name == entity->name()) {
+				LOG(DeviceEnumerator, Debug)
+					<< "Skip " << entity->name()
+					<< ": no device node";
 			}
 		}
 
