Difficulties of getting an open WiFi card

I have Redpine module of course, and i wont go into details, but i strong blame to open-source for all these problems.

I really hate the opensource.

I blame the insane patent system and a laissez faire attitude from governments that has allowed the tech industry to over consolidate. No company dares to just take the spec and produce a new WiFi/Bluetooth or cellular modem chip, because they know that they will be sued out of existence for patent violations. There is a limited number of companies that have the patent portfolio and resources to protect themselves, and can countersue in patent litigation. What this does is keeps all newcomers out of the industry, while the big companies have bought up the little companies.

MediaTek acquired Inprocomm in 2005, Analog Devices’ Cellular Radio division in 2007 and RaLink in 2011. Intel acquired Envara in 2004, Infineon in 2010 and Lantiq in 2015, and then sold the Infineon cellular division to Apple in 2019. Microchip acquired ZeroG in 2010, Roving Networks IN 2012 and SMSC in 2012. Atheros acquired ZyDAS in 2006 and then Atheros got bought by Qualcomm in 2011. Qualcomm also acquired Airgo in 2006 and Wilocity in 2014. Synaptics acquired Conexant in 2017. Philips acquired Systemonic in 2003 and then spun off NXP, which then acquired Marvell’s WiFi/Bluetooth division in 2019. Atmel acquired Ozmo Devices in 2012 and Newport Media in 2014. Imagination acquired HelloSoft in 2010.

What this means is there are almost no small companies left that can produce wireless tech and the ones that can produce it have to hide the details of their implementation as much a possible to protect themselves from patent litigation. We got lucky that Android ended up dominating mobile devices and Linux dominates the embedded market, because that pressured the WiFi/Bluetooth and cellular modem makers to release FOSS drivers. However, these chips have their own operating systems and processors which is all hidden in the firmware, and it is insanely hard to reverse engineer that, so I think that the goal has to be keeping the blobs out of the drivers, and making sure that the proprietary firmware can be legally distributed.

For example, Purism publicly distributes the firmware for the RS9116 and Broadcom BCM43752 (for the SparkLAN board), but it can’t put the Broadmobi BM818 firmware on a public download site, because it contains the Qualcomm MDM9607 modem, and Qualcomm prohibits third party distribution of its firmware.

3 Likes

I really sad that NXP buy’ed’ Freescale. :crying_cat: NXP killed Freescale PowerPC Line, Freescale PowerPC was the only Power Desktop line. This is why i dont want I.MX9 socs, because it more generic and closed soc and ship tons opensource firmware blob on userland.
So Raptor Engeneering is developing a own PowerPC line for Desktop. There are more sad things for powerpc because arm-bottleneck.

Linux/Android ship closed driver by default. Librem 5 ship camera samsung android linux driver, but i guess this driver it come from Linux-android-community or opensource android vendors like sony or maybe samsung.

Yeah, this is why ath10k is BLOBI, however as far i now there is a reversing-engennering open firmware for ath10k, sadly i do not get time to testing.

If my fancy cockroach brain isnt failing me there is a lot of WLAN controller that is not need BLOB on userland, however this controller is not on evil-linux mainline. Apparently it is a decision by Linux to purchase blob for linux driver which it is full shame and security holes for end user.

I not use this term because is a route for blobi and vendor control.

So opensource firmware blob in userland is worse because vendors manager the controller without the users consent via Linux, and not only that it also makes the OS non-libre and adds complexity to the system, as needed a initramfs and more.
But the Linux BLOBs in userland is useless because the driver upload the blob to controller, so it making it clear that the sole function of Linux and the BLOB is to control the inept user and computer.

It is a clear signal that opensource arrived on Purism.

If you look at the many videos of Linus Torvalds, it shows that Linus Torvals is an egoist and does not care on anything for User but Linux.

To me Linux is so weak, because a wrong bit on userland this destroys the whole system.

Others downsides of Linux is that you cannot have different VPNs for each application there is a lot more Linux disadvantages things.

Also Linux is Handshake with vendors.

So i NOT NOT fan for Linus Torvalds but RMS

Please use these terms accurately. We are talking about how to deal with proprietary blobs, not open source software.

The reality is that reverse engineering the proprietary firmware for WiFi/BT is extremely hard, and nobody is doing it for any chip which is currently on the market, so the only real thing being discussed here is whether that proprietary firmware is being stored in the LInux file system or not, and whether that blob can legally be distributed.

Purism is one of the very few hardware companies which has been willing to publicly ally itself with the FSF, and I see no evidence that the company has backed away from that position. The problem is that there is not a single WiFi/Bluetooth currently on the market that doesn’t require proprietary firmware, and nobody will buy a phone without WiFi and Bluetooth.

RANT about the free software vs open source software debate

In the vast majority of cases, “free software” and “open source software” refer to the same code. Historically, the FSF and OSI disagreed about whether to include the Artistic License 1.0 and the Apple Public Source License 1.x, but both of those licenses were revised, so that they are now approved by the FSF. Only in the case of the Sybase Open Watcom Public License, Reciprocal Public License 1.5 and NASA Open Source Agreement, is there a disagreement between the FSF and OSI about whether to include those license or not. The amount of code covered by those three licenses is miniscule–probably something like 0.1% of all FOSS code.

There are philosophical differences between the two camps, but both camps are against proprietary software. Linus Torvalds publicly gave the middle finger to Nvidia for refusing to provide documentation about its GPU’s to the community, so that FOSS drivers could be created. The reality is that the majority of companies which have published FOSS code (or provided documentation to the community so that FOSS code could be created) have used the arguments of the open source camp to justify their actions. If your goal is to be able to use free software whenever possible, you have to acknowledge that the OSI has a better track record than the FSF at convincing companies. On the other hand, the open source crowd needs to acknowledge that the viral nature of the GPL has also been a very important factor in forcing companies to release their source code.

I say “FOSS” because I don’t think it is productive to argue about the philosophical differences between the two camps. Most people on a forum like this have already made up their mind which arguments they find to be convincing, so all you are doing is alienating people who should be your allies. The goal should be to convince as many people as possible to switch to FOSS, and some people are convinced by the free software arguments and some people are convinced by the open source arguments. We should be prepared to use both sets of arguments depending on who we are talking to. Philosophically, I am closer to the free software camp, but I spent 10 years working in a software company that published most of its source code under the AGPL, and it wasn’t the arguments of the FSF that convinced the management of the company. If your goal is to win, it makes no strategic sense to constantly trash “open source,” because we need to convince the management of tech companies to publish their source code, and it is hard to make a business case just using the arguments of the FSF.

Every single FOSS driver for WiFi/Bluetooth chips currently on the market was developed by the company who makes the chips. We depend on the WiFi/BT companies for their FOSS drivers. I remember what was the state of WiFi in Linux before Realtek, Atheros, Intel, Marvell, Ralink, etc. started releasing FOSS drivers. There is not a single 802.11n chip whose FOSS driver was reverse engineered by the community, so don’t pretend that we don’t need the code and/or documentation from these companies.

1 Like

When I write “keeping the blobs out of the drivers”, that obviously includes not allowing drivers that call blobs in the userspace. Neither the Redpine nor the SparkLan (Broadcom) boards require blobs in the driver or the userspace, so that is not what is being debated here.

The question is whether Purism made the right decision to switch the WiFi/BT M.2 board. Do you prefer to use the Redpine WiFi/BT that occasionally doesn’t load and forces you to reboot and often drops Bluetooth audio or do you prefer the SparkLAN WiFi/BT that doesn’t have those problems and has 4 times better throughput, but it requires that initramfs pulls the proprietary firmware out of a NOR Flash chip at boot and places it in a temporary /lib/firmware directory stored in the RAM? All the other available options would require the same initramfs workaround as SparkLAN, so which of those two options do you prefer?

General OpenSource deal loading linux-firmware-blob on userland, then FreeSoftware do not, FreeSoftware it is not OpenSource.

Please do not think that FreeSoftware is OpenSource, because it is not. I know you can think that opensource is freesoftware because GPL is on OSI and FSF, but it is only superficial compatibility, but deep-down it is not the same, and there is a huge difference. So this is why i strong separate both terms.

Again OpenSource dealed firmware-blob on userland. Its strange that you dont know that.

I think that vendors make controller without NAND just to not save the blob on the controller, just to better control the user and controller., then you know the OpenSource is has been well known for lacking ethics and selling theirs used-user to the highest bidder vendors. Major Example: Firefox Audacity, Mapbox, MySQL, Ubuntu, Fedora, Jolla, Mobian, PMOS, SteamOS, UbuntuTouch

I don’t see either “open source” or “free” as being at all relevant to the WiFi card. Neither card has open source or free firmware. The firmware for either card is blackbox and proprietary. The firmware is everything that noone here wants but TINA (There Is No Alternative).

For both cards, the firmware is stored in flash storage.

The only difference is where that flash storage is. For the Redpine, the flash storage is on the card itself. For the SparkLAN, the flash storage is on a separate flash chip and the Librem 5 has to expedite getting it from the separate flash chip to the RAM of the card (and that involves going through the RAM of the CPU, as I understand it).

1 Like

Into opensource rules a blackbox or proprietary it can be called Opensource. Also Opensource is who is manager the blackboxes on the OS.

Purism forced the Sparklan blackbox to L5 SPI, the problem here is that the blackbox go to down to gnu system then go up to sparklan ram controller, so this behavior violates FreeSoftware rules because the blob touched gnu.
By default the Sparklan blackbox home is on userland.

Other full-shame from Purism is that also storing the Redpine blackbox into SPI when the controller do not need it if healthy.

Redpine is rare because it can be used opensource or freesoftware.

I love it Redpine WLAN, sadly is working on legacy mode on L5. :cry:

I don’t think that is correct. A new Librem 5 with a Redpine WiFi card should work just fine even when the firmware is neither on the disk (eMMC) nor in the flash.

In fact, my Librem 5, being an older phone, doesn’t even have a firmware jail.

Yes but there is no more new L5 Redpine.

same like me, but if Jail is enabled it ship Redpine blob for no reason.

1 Like

Carlos, I looked into the brcmfmac driver which is used by the SparkLAN board. It is 100% FOSS and it does not contain any proprietary blobs in the driver, nor does it place any blobs in userspace.

When the Librem 5 boots, it uses initramfs to make a temporary file system in the RAM that contains the proprietary firmware blob. The librem5-mount-fw-jail script mounts the NOR Flash chip (at /dev/mtdblock1) and then uses an overlay file system to add it to the temporary /lib/firmware directory in the RAM, so that the SparkLAN WiFi/BT finds it during boot and will load the firmware.

If you are talking about the rules for a distro to be endorsed by the FSF, the proprietary Broadcom firmware isn’t included in the distro files. If you are talking about the RYF rules, one can argue that it falls under the secondary embedded processor exception, since the secondary Cortex-M4 core is doing the booting, and the execution of the firmware is done by the WiFi/BT processor. I think it is a debateable point.

I know the sparklan driver is open, i about sparklan firmware which it is closed-source-and-userland-home.

As you can see the BLOB is touching GNU, Making Gnu a Slave from Master blob.

Yes i know, but Purism is making available the sparklan firmware evil-blob via GNU System, that is detestable and superevil, because Purism is deceiving the user but also its deceiving GNU System and FSF Rules.

Yes the only way to resolve all this issues is that Purism supercompress ALL the firmware blob to SPI without use GNU, then use Zephyr RTOS to manager all the BLOBs to controllers.

Then i will happy to use SPARKLAN WLAN Module on my Librem 5.