OK, I have to insert my two cents in this conversation. When I was adding the PinePhone component list to the PINE64 wiki, I observed a couple things about its design and the goals of PINE64.
There is some truth to everything that everyone has said. What we are arguing about is a matter of degree and what is the meaning of a term like “software freedom”. Frankly, both of these companies promote FOSS and the community and are contributing to mobile Linux, but their focus is different and they have very different strategies for how to operate.
Purism is aligned with the FSF and is closer to the “free software” line of thinking, which means it promotes user rights to software freedom and it publishes articles on its web site that promote those values. It is willing to go to extreme lengths to use only free software, but the other part of its mission is to make free software usable and convenient for normal users, which means using modern hardware.
PINE64 is focusing on providing hardware to the FOSS communities at an economical price, and it is willing to compromise on the free software part if it can’t find hardware which is economical or doesn’t yet have good free software support. When PINE64 designed the PinePhone, it was expected that its A64 processor would need a proprietary graphics driver for the Mali-400 MP2 GPU and it selected a Realtek WiFi/BT chip that needed proprietary firmware stored in the /lib/firmware
directory. It was only in April 2019 that the free Lima driver was added to Mesa (which was 6 months after the PinePhone was announced) and it became possible to run the PinePhone without proprietary drivers.
In contrast, Purism looked at the same problem, and decided that it would take the painful path of trying to get the i.MX 8M Quad supported in mainline Linux because its GPU could run on a free driver and it would add an SPI NOR Flash chip to store the proprietary Synopsys DDR PHY timing blob. Purism also paid Redpine Signals to alter its firmware so it didn’t need to be stored in /lib/firmware.
This willingness to take extreme measures to use free software is in line with Purism’s history:
- Petitioning Intel to get rid of the ME.
- The first company to sell PCs with the ME disabled and the only one (AFAIK) to neutralize it by replacing 90% of the code with zeros.
- The first company to sell new laptops that weren’t Chromebooks with Coreboot preinstalled.
- The second company (after Libiquity) to create a 100% free software distro and getting it certified by the FSF.
- Third company (after OpenMoko and Golden Delicious) to release free/open source schematics for a mobile phone.
- First company to seek Respects Your Freedom certification for a mobile phone (and the second to make an RYF computer after RaptorRC if you consider the Librem 5 to be a computer)
- Continuing to use the crappy Atheros ath9k WiFi/BT card in the Librem 13/14/15/Mini despite its many problems because it was the only 802.11n that didn’t need proprietary blobs.
In other words, Purism does have a stronger history of promoting software freedom than PINE64. However, I think PINE64 has been evolving. It used to be much closer to the “open source” line of thinking, which emphasizes the practical benefits of a open development methodology where code is shared and collectively developed by the community. This pragmatic stance is reflected in the fact that PINE64 selects hardware which runs on free/open source firmware and drivers when it is convenient to use and can be obtained economically.
PINE64 used to call itself an “open source company” and the PINE64 home page used to have this motto at the top:
And it used to have this description at the bottom of the home page:
The Allwinner A64 SoC, which is the brains of the PinePhone, runs mainline Linux, uses mainline ATF and u-boot and there are open source drivers for all main SoC components.
The PINE64 web site has been redesigned for mobile devices and it now uses “FOSS” instead of “open source” to describe itself:
Our vision
Our goal is to push the envelope and deliver Arm and RISC-V devices that you want to use and develop for. To this end, we actively work with the development community and champion end-user initiatives. Rather than applying business to a FOSS setting, we allow FOSS principles to guide our business.
In addition, I see PINE64 undertaking projects to get free software drivers and firmware for hardware. It is addressing the WiFi/BT problem by creating the “Nutcracker Challenge” which sent 1000 Buffalo BL602 dev boards to people who want to work on developing FOSS drivers/firmware:
So, what is the challenge then? To achieve blob-free BL602 for the open source community so that we all can enjoy blob-free FOSS Bluetooth and WiFi on PINE64 devices.
Another thing is that PINE64’s way of creating hardware for the community to work on actually is helping us get a better driver and even FOSS firmware for the Quectel cellular modem, which I find to be frankly amazing.
From the February update:
We are currently working on three different fronts modem-wise: 1) porting the mainline (kernel.org) kernel; 2) open-sourcing the userspace and; 3) improving the way incoming calls and texts are handled while the phone is suspended.
The modem can now boot version 5.11 of the Linux kernel with minimal functionality (serial, USB and NAND). Konrad has been working hard on all the low level drivers that are needed (PMIC, clocks etc) so the rest of the devices inside the SoC can start. There’s still a lot of work to do, since the SoC has never seen an official release from Qualcomm ever since kernel 3.18.x, so even if some pieces can be adapted from other mainlined Qualcomm models, there’s a lot of code that needs to be written from scratch. Work is being done by Konrad to send his existing patches upstream, so that they can get merged and so that he can further continue the work.
VoLTE blobless audio calls will be possible in the future. Original Twitter post By Biktor
On the present factory firmware, there are about 150 closed source binaries and libraries that make the modem work. Biktor is working on replacing all of them with 3 open source alternatives that will hopefully get 90% of the required functionality. At this point we can initialize the modem, establish data connections and make both CS (normal) and VoLTE calls without any binaries, although sometimes audio fails, and call reception doesn’t work yet. Stay tuned for more information about the open sourced userspace in near future.
Dylan has been tackling one of the biggest complaints concerning the modem, namely the slow recovery from suspend and its USB resets, making the PinePhone lose incoming calls and texts when using ModemManager (since it cannot reconnect to the modem fast enough after suspend). These patches, currently in a testing stage, should make the PinePhone wake up and start ringing on the first dial tone when there’s an incoming call or text, as well as fix intermittent USB resets that show up when resuming from suspend.
The Pinephone has replaced the Nexus 5 to become the device used by the Plasma Mobile developers to do their development work, and it has allowed the project to dump libhybris and the Android drivers. The PinePhone also convinced UBports to add support for Linux drivers to Ubuntu Touch. So in these ways, PINE64 is advancing software freedom.
As I see it, Purism and PINE64 need each other. 70% of PinePhone users are using the Phosh mobile environment developed by Purism, and 3 of the 5 PinePhone Community Editions (postmarketOS, Manjaro and Mobian) had Phosh preinstalled, so the success of the PinePhone has depended on Purism’s dev work. At the same time, Purism needs the PinePhone because it is providing users, new developers and distro packagers for Phosh. Mobian and postmarketOS now participate in the development of Phosh and Phosh has been widely packaged in Linux distros (Arch, Manjaro, Debian->Ubuntu->Mint, Fedora, openSUSE, NIX and postmarketOS) because of the PinePhone. Because most of the people using the PinePhone and PineTab are running Phosh, they are catching the bugs early, so that Librem 5 users can avoid them.
It is likely that the Librem 5 will use the Megapixels camera app, which was developed for the PinePhone by Martijn Braam, a postmarketOS developer. There is also the possibility that the Librem 5 will be able to the Quectel EC25-G modem in the future, due to all the development that the PinePhone community has put into its FOSS driver and firmware. The Plasma Mobile port and the Ubuntu Touch port for the Librem 5 will be better, because the developers had the PinePhone which stimulated them to work on their systems using Linux drivers rather than Android drivers.
Both companies are helping each other, so we should be happy for the existence of both companies. Having looked carefully at both, I decided to order the Librem 5 over the PinePhone, because I think Phosh has the best chance of taking mobile Linux into the mainstream and I want to help pay for its development. I also see supporting the i.MX 8M platform as the best shot at getting more RYF devices in the near future. I used to think that the RS9116 would solve our 802.11n woes, but it is now looking like it isn’t much better than the ath9k, but Purism is reportedly trying to find us another blob-free WiFi/BT solution that will be even better.
However, I have to say that the way that PINE64 is putting out a Rockchip RK3566 SBC and a RISC-V SBC probably is going to stimulate a lot of FOSS dev work for that hardware in the future. I see the RK35xx processors as the best chips for making mobile Linux devices that can appeal to the mainstream and the RISC-V is the eventual path for a fully free CPU, so we need PINE64 to provide the hardware to get the community working on supporting those architectures.
Both Purism and PINE64 have exceeded my expectations. I never expected Purism to make a mobile environment as good as Phosh and to work so well with the GNOME, Mobian and postmarketOS communities. I also never expected the community to solve so many of the driver issues with the PinePhone. It honestly has restored my faith in community-based development to support hardware, because before the PinePhone, I never saw it actually work well in practice, which is why I was skeptical about the PinePhone. The work being done by megous and the driver and firmware work on the Quectel modem show that my assumptions were wrong.
I still think that mobile Linux will never go mainstream without some company paying for a large portion of the dev work on the mobile environment. I expected the lack of progress that we have seen at UBports, LuneOS, Maemo Leste, Nemo Mobile, etc, but it looks like KDE Plasma Mobile is going to prove that community-based development with almost no corporate support actually can work–it is just going to be slower than Phosh’s development, so I expect that Plasma Mobile will have less appeal for mainstream users.