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 |
Posted Sep 16, 2017 3:56 UTC (Sat)
by pabs (subscriber, #43278)
[Link] (1 responses)
https://www.pine64.org/?page_id=3707
Another company that has been trying to make an ARM64 laptop:
Posted Sep 16, 2017 4:37 UTC (Sat)
by bero (subscriber, #89787)
[Link]
Vero-apparatus looks more interesting for our purposes, but seems to be based on a SoC that is all but abandoned by its maker. I hope it will become viable at some point (having multiple options is always good) - but doesn't seem to be there just yet.
Posted Sep 16, 2017 15:47 UTC (Sat)
by hook (guest, #62261)
[Link] (1 responses)
Admittedly, it is not shipping yet, but it was showcased already at FOSDEM:
and the ARM64 board is already available as well:
Posted Sep 16, 2017 17:03 UTC (Sat)
by Henning (subscriber, #37195)
[Link]
Posted Sep 17, 2017 0:28 UTC (Sun)
by rsidd (subscriber, #2582)
[Link]
Posted Sep 17, 2017 5:57 UTC (Sun)
by marcH (subscriber, #57642)
[Link] (5 responses)
This is backwards. Fanless laptops (and smartphones) are the ones burning legs and hands since they have no other way to dissipate heat. This has nothing to do with the processor architecture; there are many fanless Intel SoCs too.
Posted Sep 17, 2017 9:34 UTC (Sun)
by excors (subscriber, #95769)
[Link] (2 responses)
It seems modern SoCs are far too powerful for sustained use - it's vital to have a good thermal design and then you'll probably still have to throttle it severely. That power is great for burst performance, which helps with typical usage patterns on smartphones, but perhaps not so much for laptops. But none of them should burn the user unless the device is incompetently designed.
Posted Sep 17, 2017 17:22 UTC (Sun)
by anton (subscriber, #25547)
[Link]
Posted Sep 17, 2017 19:59 UTC (Sun)
by marcH (subscriber, #57642)
[Link]
> But none of them should burn the user unless the device is incompetently designed.
I think "burn" was meant metaphorically :-) The only thing I meant is: when there's no fan (no convection) then the only way the heat can be dissipated is through the case (conduction). The main article seems to have it backwards; maybe because it was trying to make a... "different" point about performance per watt.
You're being a bit harsh with "incompetently": it takes a lot of complex engineering to extract the most power from a SoC, especially a fanless one, while staying right at the limit before users feel uncomfortable and complain. Example:
Posted Sep 18, 2017 5:19 UTC (Mon)
by autious (guest, #114303)
[Link] (1 responses)
I'm curious how big the difference in wattage actually is, but a preliminary googling didn't give me any useful results.
Posted Sep 18, 2017 9:49 UTC (Mon)
by marcH (subscriber, #57642)
[Link]
This world is a bit more complicated than simplistic statements like this.
The ARM ThunderX has a 100W TdP. The x86 Quark D1000 can go configured as low as 1.6mW.
> dissipating the heat generated on a high-end smart phone over the surface of a laptop might be enough to stay fan less without excessive heat?
Yes, but no one is going to underpower a laptop with the TdP of a smartphone. That would be just a waste of ability to dissipate power and limit the performance for no good reason.
If low skin temperature is more important that performance then you can just reconfigure the performance settings, no need to design crippled hardware to stay cool.
Posted Sep 17, 2017 7:44 UTC (Sun)
by jani (subscriber, #74547)
[Link] (2 responses)
In this case, they're referring to MIPI Display Serial Interface, or just DSI for short.
Posted Sep 17, 2017 19:43 UTC (Sun)
by marcH (subscriber, #57642)
[Link] (1 responses)
> We don't call Display Port "VESA displays" either.
Well this wouldn't work because - unlike MIPI - VESA has done more for "displays" than just DisplayPort.
Consistency doesn't matter to branding.
"DisplayPort" managed to create a well known brand out of common nouns by merely dropping the whitespace between the two words. Again it's non-ambiguous, terse and understandable (no acronym). So well done and be it.
Posted Sep 17, 2017 22:25 UTC (Sun)
by dtalen (subscriber, #86448)
[Link]
Posted Sep 17, 2017 13:31 UTC (Sun)
by ardbiesheuvel (subscriber, #89747)
[Link] (2 responses)
Posted Sep 18, 2017 2:40 UTC (Mon)
by pabs (subscriber, #43278)
[Link] (1 responses)
Posted Sep 29, 2017 13:55 UTC (Fri)
by StefanBr (guest, #110916)
[Link]
Depending on the used processor, necessary firmware files are either not distributable at all (older processors), distributable under problematic terms, or "not yet" distributable [1].
Even if you have everything needed to start the board, you have to load some persistent binary blobs which are totally out of your control. Access privileges of e.g. the RPM are not documented.
The graphics are actually the *only* IP block which has a free driver. The audio DSP
So if the reason for *not Intel* is freedom, then you should also say *not Qualcomm*.
[1] https://github.com/96boards/documentation/wiki/DragonBoar...
Posted Sep 18, 2017 5:13 UTC (Mon)
by autious (guest, #114303)
[Link]
Posted Sep 21, 2017 13:33 UTC (Thu)
by b3nt0box (subscriber, #98698)
[Link]
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
https://www.olimex.com/Products/DIY-Laptop/
https://olimex.wordpress.com/2017/02/01/teres-i-do-it-you...
https://olimex.wordpress.com/2017/02/07/fosdem-and-teres-...
https://olimex.wordpress.com/2017/06/05/a64-olinuxino-ope...
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
The more powerful smartphone SOCs cannot sustain the performance in smartphones because they cannot dissipate the generated heat. That should be a smaller problem for laptops, which have a much bigger case for dissipating the heat. I have also seen reports of Intel-based laptops not being able to sustain the performance because of lack of heat dissipation, but my own experiments with a Lenovo E31-80 showed that it can sustain the two-core turbo of 2700MHz for at least 10 minutes.
Building an ARM64 laptop
Building an ARM64 laptop
https://software.intel.com/en-us/articles/2-in-1-tablet-m...
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
Building an ARM64 laptop
can not even be used with the undistributable binary blobs, not even to speak of a free driver.
Building an ARM64 laptop
Building an ARM64 laptop
