The device you are trying to access doesn't exist, or the drivers for this device aren't loaded. This can occur if you refer to a file in /dev that has no driver loaded for it, or when loading a driver if no hardware exists.
Note the following quote from open(2) in the Errors section:
It is also quite common to see this under linux if you try to load a device driver and the driver can't find the corresponding hardware (for example, you've given the driver the wrong options).
This message can also be given when a process has a file handle open for a removable device (such as a USB or SCSI) which is then removed... further use of the file handle should result in this error message.
Compare ENOMEDIUM