US telecom watchdog forces TP-Link to allow open firmware
The FCC has settled with TP-Link for $200,000 because several of the company’s Wi-Fi routers violated US radio frequency rules; they could transmit with higher power than allowed. In addition, TP-Link must allow open source firmware.
The two cases are apparently unrelated, but the Federal Communications Commission’s demand to allow open source firmware on TP-Link routers was part of the company’s negotiations with the commission, Ars Technica writes. The measure will not impose any further penalties on TP-Link for violating the rules on maximum transmission power within the 2.4GHz band.
After new frequency rules around the 5GHz band, TP-Link no longer allowed third parties to install custom firmware. The rules were announced by the FCC in early March. Blocking other people’s software is the easiest way for router makers to comply with the new rules. This led many to believe that installing proprietary software on a router would no longer be allowed, which the FCC said was a misinterpretation. The FCC’s goal was simply to block hardware builders’ ability to modify frequency bands.
That is why the committee explicitly states in its requirement that ‘it has long been a policy to provide opportunities for innovation with new ways of using technology’. As part of that, TP-Link has agreed to find ways to allow users to install third-party software while not violating the frequency rules.
TP-Link was not breaking any rules by blocking third-party software, so technically it was just looking for the ‘easy way’. In the firmware of some routers of the brand, it was possible to increase the transmission power on the 2.4 GHz band by changing the country code. The company was fined for this.
There are several ways to ensure that a router with third-party firmware still complies with the rules. This can be done, for example, by running OpenWrt in a virtual machine that is isolated from the radio control. This is what Imagination Technologies is working on while Linksys stores the rf parameters in a different memory location so that it is separate from the rest of the firmware.