One could also imagine radically different IP laws concerning firmware or even software.
One could also imagine radically different IP laws concerning firmware or even software.
Moreover, there exist devices with fully open source firmware, so if anybody wanted one to copy, they don't need yours. They only need yours to use it with your hardware.
These devices have a chip in them that needs drivers and firmware. That's software. In particular it's the software that interfaces with the operating system. But the software is specific to a given version of the Linux kernel. When a new kernel comes out, you often have to update the software, for which you need the source code. So when the vendor stops doing this without publishing the code, nobody else can cost effectively do it either, and you can no longer use the hardware with recent versions of the kernel. But older kernel versions have known security vulnerabilities in them, so you can't use those either.
The ask is not that they provide free factories for everyone to make their own hardware, it's that they release the source code for this software in particular. Anybody could then copy the software, but it's only useful in combination with their hardware. A competitor in China can't use the same drivers with some other chip, that chip would need different drivers. That's what drivers are. So the only people who want this code are the people who paid the hardware vendor for their product and want to continue using it.
The hardware vendor, by contrast, doesn't want to give it to them, not because they fear some competitor using it but because then the customer would be able to keep using the hardware they paid for instead of having to buy a new one. Which is unreasonable enough to prohibit.
Well, it would also allow compatible hardware to be manufactured. E.g. "IBM compatible".
And it also has no meaning in this context. What is "compatible" with a WiFi chip or a storage controller? They're all already compatible with each other. The driver is the thing that converts from the device-specific operations to the APIs provided by the kernel. The kernel APIs are already public and anyone can implement them for their own hardware.