If you don't have a physical copy of the device, the driver doesn't work either. Very similarly to the way it would act if you don't have the firmware. The problem is that we have to distribute the firmware when it's a BLOB.
Glenn Maynard wrote:
If the driver has to be able to open the file and read the blob so it can send it to the device, there's a clear relationship and dependency between the driver and the blob: if you don't have a copy of the blob, the driver doesn't work. (Spewing out "hardware error, firmware not loaded" doesn't count to me as "working".) The difference is simple: if running a device requires that a driver have access to a piece of data, the user must have access to that data (and so its copyright restrictions kick in; I might not be allowed to give it to you, even if the company that made the device no longer exists). If the device merely stores that software on the device itself, that isn't the case. If the user must be subjected to non-free restrictions to use a piece of software (such as a driver), it belongs in contrib; that's what contrib was created for. (The fact that this is a result of hardware implementation decisions is irrelevant.)