Building an ARM64 laptop
He started by addressing the question of why one would want to build an ARM64 laptop in the first place. The ARM architecture is known for low power use — a useful feature in a laptop in its own right — but there is more to the ARM story than that; the ARM64 chips are fast and can beat single-core Intel Core-M processors on some benchmarks. An ARM64 laptop may not be good for fast kernel builds, but it can do what most people need, and it can do the kernel builds too in the end. ARM processors need no fans, meaning that the resulting laptop is lighter and will not burn the user's legs. There is little or no malware targeting ARM64 systems, for now at least.
Some of the motivations for this device may not resonate for people outside of the ARM ecosystem; Rosenkränzer talked about the ability to do native ARM64 builds rather than cross-compiling on an Intel system, for example. This system is also good for testing ARM64 hardware in the desktop setting — something that isn't really happening. An advantage that many users will appreciate, instead, is the potential to build a more open system. ARM64-based systems don't need any "secret BIOS" or mysterious management engines. That potential isn't fully realized yet, though, because a binary-only bootloader is still needed.
Given that there is value in an ARM64 laptop, he asked, why is nobody doing
it? He didn't really answer the question, but did note that there are a
couple of Chromebooks based on ARM64 chips. They are a good start, but
Chromebooks are not a good substitute for a general-purpose desktop
system. Their storage is limited, there is no SATA port, the keyboard is
minimal, and the 12-inch screen is small. The pi-top is an interesting system, great for
embedded use, but is also not well suited to desktop use.
It would be nice to avoid building an entire laptop from scratch, so the idea of replacing the insides of an x86-based system with an ARM64 board has some appeal. It can be done, he said, but this method doesn't scale. There is also the problem that no two laptops are the same inside, so this solution would be tied to a specific laptop model.
In the end, they went back to the pi-top, which does have some advantages. It's not bolted shut, so it's easy to modify. The display is connected via HDMI, and the touchpad is a USB device, meaning that they can be plugged into a different board with relatively little trouble. So could the Raspberry Pi processor in the pi-top be replaced with something more powerful? The answer is "yes", with the proviso that the power supply must be modified to be able to drive a more power-hungry processor. They used a Mediatek X20 board to build a proof-of-concept laptop. It works, but it still lacks adequate storage and has too little RAM.
To do this right, he said, requires a board with a fast ARM64 processor, at least an A72. Naturally, it should have a GPU that does not require binary-only drivers, so no Mali or PowerVR graphics. It needs a SATA or M.2 port so it can provide a decent amount of storage, and enough USB ports that some of them can be made available to the user. Lots of RAM is needed, HDMI output would be nice. And, of course, the board providing all of this needs to be affordable.
Such a board is not really available at the moment. The 96Boards systems are short on storage options. Only the DragonBoard 410c has open graphics, but lacks RAM and has an underpowered (for this task) CPU. The Tegra boards are more capable, but they are expensive and he does not trust NVIDIA to keep them open. The Banana Pi and ODROID boards lack performance. The i.MX8 might be interesting, he said; it has a Vivante GPU that can be driven by the free etnaviv driver, but it's not yet available.
An alternative might be to use a networking board; the MacchiatoBIN has some appeal, for example. It has a quad A72 processor, DDR4 DIMM memory, three SATA connectors, and a PCIe port that can be used for a graphics card. Unfortunately, that PCIe port lacks an aperture large enough to run a proper graphics adapter, so it won't work either.
Finally, though, they found the OpenQ 820. It has a four-core CPU, an Adreno 530 GPU that is "mostly supported" by the freedreno driver, 3GB of RAM, 32GB of UFS storage to hold the operating system, and two PCIe slots. Naturally, there is a snag: it only runs Android and doesn't support "real" Linux. But, Rosenkränzer said, they don't plan to use any of the Android binary-only drivers, so perhaps it could be made to work.
Getting there took a bit of effort. The bootloader for this system wants Android sparse filesystem images; fortunately, the Android Open Source Project has the tools needed to create those. In particular, its make_ext4fs tool can be made to do the job after a few patches are applied; the modified version can be found on GitHub. With that work done, they have an ARM64-based laptop that can boot and run. After fixing a few freedreno bugs, they have KDE running on it, and all of the operating-system packages have been ported. Battery support is still missing, so the laptop must stay plugged in, but that support is almost ready.
As always, there is more to be done. They would like to get away from using the pi-top HDMI interface; if they switched to MIPI the system would use less power, provide higher resolution, and have the HDMI port available for external connections. The problem is that MIPI displays only come in small sizes for now. They would also like to have a better case; the board doesn't quite fit in the pi-top case. Manufacturers are not cooperating, though; they want million-unit volume before they put any effort into it.
The cost of the system is about $600; there are hopes that it can be lowered in the future. Rosenkränzer also hopes that future boards will work better for this application, though he couldn't talk about any specific possibilities on the horizon. He concluded by saying that it's always likely to be some work to make a system. Nobody is trying to build commercial ARM64-based laptops, so it is unlikely that any boards oriented toward that use will appear in the market.
[Thanks to the Linux Foundation, LWN's travel sponsor, for supporting your
editor's travel to the Open Source Summit.]
| Index entries for this article | |
|---|---|
| Conference | Open Source Summit North America/2017 |
