Even if Cisco's firmware blob consisted entirely of compiled open source code, if it was all BSD licensed you'd still be no better off.
Even if Cisco's firmware blob consisted entirely of compiled open source code, if it was all BSD licensed you'd still be no better off.
And it's not like BSD licenses lack ways of encouraging contribution back either.
I just don't see the choice between these licenses as important as quality of software and pace of development in ensuring customer freedom.
I assume that you mean officially GPL'd, not secretly incorporated by Cisco (although this type of abuse also gets detected.) GPLv3 forbids tivoization, so GP would definitely be better off with a router running GPL'd software. With BSD there is nothing preventing the hardware vendor from locking the software away from users.
Otherwise you could never effectively use any GPL v3 software in embedded devices unless you add additional update paths.
But for encouraging contribution, if a company goes "rogue", the BSD has no real teeth to force them to give anything back.
I largely agree with your last point though. Good old fashioned competition should normally be enough to ensure the user gets a good deal (providing regulators are doing their job and there are no cartels or monopolies).
Consider PostgreSQL for example. Several of the main contributors also release proprietary versions. But they contribute to lower the costs of code maintenance.
We're not talking about what's good for the developer here, we're talking about what's good for the user.
On a consumer linksys router for example, this is a very simple process.
Do OpenWRT and the like even use GNU userspace tools? I would assume they use Busybox.