Steven Toth wrote: > Hi, > > (Background) I've been writing a driver for the PrimaScan/Primax > iCam320. I'm using the sniffusb windows USB debugger to capture the > data between the host and the device. I'm tranlating that into linux > kernel speak and can control basic funcationality and get the frames > back into user space.
I hope those frames aren't compressed, or you will have a few more months of reverse-engineering to do :-) > Quick question. Can you legally use protocol decoders to reverse > engineer closed source commercial products - with an aim of produing > open source compatible drivers? I have not approached the company or > asked for any technical material/specs. Quick answer: yes. Better answer: I don't know much about UK/Europe copyright law, but U.S. copyright law only applies to a narrowly defined subset of "intellectual materials". Generally speaking, it only protects "creative expressions of ideas". Compiled binaries or source code usually falls under that category. Facts, ideas, and many other things are not protected (ideas can be patented, though). When using a sniffer, there are three types of data that you will typically encounter: - Commands: USB control transactions that set registers, start/stop image streaming, etc. Since the values being set are purely functional and don't represent any originality or creative expression, they have little or no copyright protection. If they did, nearly every Linux kernel developer would have spent time in court/jail. :-) - Firmware: This is usually compiled binary code, so it is safe to asssume that it is copyrightable. Many vendors will let you redistribute their firmware if you ask. - Tables: Some of them are probably not protected (eg. sets of register values), but some may represent creative expression (quantization tables, Huffman tables). In general, collections of factual data are not copyrightable, but their particular representation/structure/layout may be (if it is creative). This is one area in which the E.U. probably differs greatly from the U.S. (E.U. database directive, for example). I would REALLY appreciate if someone could clear this one up for me (especially re. Huffman tables). One thing in your favor is that reverse-engineering for the purpose of compatibility with an existing interface is specifically allowed under U.S. law (unless you are dealing with something that is protected under the DMCA, which you are probably not). As long as you didn't agree to some license with a clause prohibiting reverse-engineering (i.e. when you installed the Windows driver), you should be safe. Those agreements are probably not legally binding, although I admit to not knowing much about licensing or contracts. If you want to know more, I recently found some good reverse-engineering case summaries at http://www.lgu.com/publications/softcopy/index.shtml Of course, I'm not a lawyer, so don't take anything I say as proper legal advice. ;) -- Mark McClelland [EMAIL PROTECTED] PGP public key fingerprint: 317C 58AC 1B39 2AB0 AB96 EB38 0B6F 731F 3573 75CC _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel