If there had been any decent chips on the market in August 2017, I would agree with you, but Purism only had rotten choices for the SoC if it wanted to have hardware kill switches:
- Rockchip RK3399: 28nm; good CPU (2x 1.8GHz Cortex-A72, 4x 1.4GHz Cortex-A53); good GPU/VPU; sucks too much energy for a phone, but may be able to make it work with underclocking and big battery (like 6000 mAh); needs blobs to boot; needed proprietary Mali graphics driver in 2017; might be able to eliminate the boot blobs and proprietary graphics driver with lots of dev work; no Vulkan; video encoding limited to 1080p@30.
- Amlogic S912: 28nm; CPU (8x 1.6GHz Cortex-A53) is less powerful than the RK3399, but same problems and worse mainline Linux support.
- Broadcom BCM2837: 28nm; weak CPU (4x 1.2GHz Cortex-A53); OK GPU and VPU; FOSS driver for VideoCore graphics, but blobs needed to operate; Broadcom isn’t interested in working with small-scale device manufacturers, so this chip isn’t an option.
- Allwinner A64: 40nm; weak CPU (4x 1.2GHz Cortex-A53), GPU and VPU from 2015; not great energy efficiency but can work in a phone; needed proprietary Mali graphics driver in 2017, but might be able to eliminate it with lots of dev work; Allwinner violates the GPL and has no communication with the FOSS community.
- NXP i.MX 6Quad: 40nm; very outdated CPU (4x Cortex-A9 MP, 32-bit) from 2012 with weak performance, but can run on 100% FOSS, well documented chip, good forum, and good relations with the FOSS community.
- future NXP i.MX 8M Quad: 28nm; good GPU and VPU; weak CPU (4x 1.5GHz Cortex-A53), but 30%-50% better CPU performance than the A64; can run on 100% FOSS except for a Synapsys DDR timing blob; NXP promises to work to add support for mainline Linux and provide good documentation and answer questions on its forum, but its a new chip so risky.
Notice how all the available chips are using outdated planar process nodes. The only ones with decent CPU performance suck too much energy for a phone. On paper, the i.MX 8M Quad looked better than all the others, so I understand why Purism chose it, but it has caused massive delays. NXP has never fixed the silicon bugs in power management. NXP has taken years to add support to mainline Linux and there still is no suspend to RAM in the mainline driver. Purism ended having to do a lot of kernel work to support the chip and do commits to mainline Linux to get good video out. The documentation for the MIPI-CSI2 camera interfaces sucked and there weren’t other companies with good camera implementations that could Purism to copy, which forced Purism to do lots of painful trail and error to figure it out.
Yes, Purism probably could have delivered a Linux phone in early 2019 if it had used the Allwinner A64 processor (like the PinePhone), but the reason why the Librem 5 made headlines in August 2017 and generated so many pre-orders was its promise to run on 100% free software. If Purism had promised to produce a Linux phone with a proprietary graphics driver, people would have asked “why not just stick with the Nexus 5, since it has a better processor?” Remember that the Lima GPU driver for the Mali400-MP2 in the A64 wasn’t released in Mesa until April 2019. The positive reception and community support for the PinePhone would have been very different if it hadn’t been able to run on the free Lima driver.
If Purism had delivered the Librem 5 with the i.MX 6Quad, it would have been able to market it as running on 100% free software, but its performance would have sucked, and it wouldn’t have been a phone that a lot of people would have wanted to use. People talk about the interface lag in the PinePhone with the A64, but it would have been much worse with the i.MX 6Quad. Also a lot of distros are dropping support for 32-bit processors, so the goal in the crowdfunder of making a phone that will eventually be supported by many distros would have been dropped.
Purism probably would had been able to deliver the phone in 2019 if it had used Ubuntu Touch, instead of creating Phosh. However, Purism would have to spend massive resources trying to maintain alone a mountain of siloed code in Ubuntu Touch. In my opinion, Ubuntu Touch can only work if a bigger company like Canonical picks it up and promises to maintain it, but Purism frankly doesn’t have the resources to maintain it. In 2017 it wasn’t clear whether Canonical was going to to maintain Mir, so it would have been a huge risk for Purism. Also Purism would have had to put in a lot of work upfront to add support for Linux drivers (instead of using Android drivers through libhybris) and updating the code to work with a recent version of Qt that is still supported by the Qt Group.
Plasma Mobile would have required a ton of dev work to get ready for market, and then Purism would have all the problems with oFono and Halium and a separate mobile stack. With Plasma Mobile, Purism couldn’t count on any corporate support (except a few developers from Blue Systems and a little maintenance work on oFono and Halium by Jolla). It is easy to see why Purism wanted to use a standard desktop stack and ModemManager, and work in a system which gets developers from Red Hat, SUSE, Canonical and Google. (See the link in my previous post for all the advantages of Phosh.)
If Purism had released the Librem 5 with Ubuntu Touch or Plasma Mobile, it wouldn’t have been able to promise lifetime software updates (due to the maintenance costs) and it couldn’t be able to promise portability to all the major Linux distros which were key goals of the crowdfunding campaign. (UT and PM have since worked to get packaged in the major distros, but it wasn’t clear that they would do that in 2017.) With either Ubuntu Touch or Plasma Mobile, Purism would have poured a ton of dev work into them and been locked into supporting one of them for a long time.
Plasma Mobile won’t cost nearly as much to maintain as UT, but Purism would probably have suffered the same delays as Purism has encountered with Phosh, because Plasma Mobile is just now becoming usable. Maybe Purism could have hurried its development a little bit, but it wouldn’t have improved the timeline much with Plasma Mobile, compared to developing Phosh.
Think about what would have happened if Purism had released the Librem 5 v1 with Ubuntu Touch and then announced that it was dropping all support for UT because it is a maintenance nightmare and started to work on a new Phosh interface for Librem 5 v2. What you are advocating in using an incremental approach would have generated tons of outrage and pissed off many customers. People who bought the Librem v1 would be mad as hell because Purism wasn’t supporting their phone any more and people would publicly question whether they should buy v2.
It is easy to criticize Purism for not delivering on time, but most of the criticism that I have read doesn’t honestly deal with these issues and truly evaluate the tradeoffs. We need to examine what were the real options on the table and think about whether they would have been any better than ones that Purism chose.