Hello Peter,
Peter Stuge wrote:
If you can handle the cost then you could design a (read-only, e.g.
USB- attached flash memory appearing as a CD-ROM) medium *into* your hardware, which stores the source code corresponding to the object code which is in boot flash. I find that ideal.
What you suggest is very much what I was thinking when I originally considered a microSD to house the source. My thought was to attach the microSD permanently to our system in such a way that our OS could read it (not the host PC OS). Then, from our Windows Control Panel application for our device, on an About tab, say, a user could click a button and get the source for the actual image used to boot the system, which of course would include the license and all other content needed to satisfy GPL. This would completely protect the microSD from write because we would not allow any means to write to it (though, we would probably allow removal for advanced users who really wanted to get directly to the drive - and GPLv3 might even require us to allow this).
This is definitely doable, but, after some review of what we would need to do to make this work, it is more engineering work that I would really like to put into this, at least for a first-cut product. Still, this may be the only way we can move forward. Even with this, I am a bit concerned about whether this really meets the requirements of the license, but it seems very close. My main concern is about whether this kind of setup really meet the "conspicuous" requirement on presenting the license. You seem to think it would, which is encouraging. But, I remain a bit worried about the issue.
Your specific suggestion of a USB connected Flash drive setup is also possible, and probably a bit less work for us - we would just need a built-in USB to USB hub or PCIe to USB host controller to allow for our device and the Flash drive to coexist on the same cable, but most flash USB drives are too physically big to work for us (resolvable, but probably not without adding more engineering effort - the USB connector alone is almost too big, and that means we might need to go to a board-mount drive - one more complication). And, there is a bit of a mess here under Windows because the Flash drive, if not controlled by our software, would just show up in Windows as a drive every time someone plugged in our device. This is fine from the point of view of meeting GPL requirements.
But, at the least, this could be a real nuisance for users. And, it seems like it could also be quite confusing (I plugged in a measurement device and now I have a new drive. Where did that come from?).
In any case, thank you for all of your suggestions and taking the time to reply to my query in detail. I need to spend some time on the technical issues of this kind of solution, and talk with some people here to see whether we can make sense of this kind of arrangement from the point of view of our customers. If that works, then I get to see whether I can convince legal that, what we intend to do technically, actually works to meet our interpretation of our legal obligations under the license.
Ian