1. 31

The cloudflare qualcomm vs intel comparison caught my eye and renewed my interest in ARM outside of mobile. I’m thinking of getting an ARM laptop, but I’d love to hear any experiences and insights y’all have, especially with running Linux or BSD on ARM.

  1.  

  2. 11

    I used a Samsung ARM Chromebook for about three years, Arch Linux ARM. It taught me that there are two facets to support:

    1. Can other people help you with your device
    2. Can you fix your own device

    Generally #1 is lower when you use less popular platforms, and I was prepared for that. As someone who is used to fixing everything from hardware (scopes, solder and rosin inhalation) to software (they were sending ARPs how fast?) I was also prepared for #2.

    Or so I thought.

    Whatever you do: do NOT get a device that demands a signed bootloader. The bootloader on this device was forgetful, easily corrupted, rude (“You’re not running Chrome OS! Please press space twice so I can wipe everything!”) and most of all: not replaceable. Only Google had the keys, and I had to live with it.

    Initially I had a second stage of u-boot installed that I had control over. This was brilliant. The Arch Linux ARM install instructions for this device used to have this as part of the recommended setup. That changed at a later point – a story that involves a post-install script for a newer kernel package dd’ing over my root partition.

    I was stuck on a very old kernel version provided in the ALARM repos, I believe the one the original ChromeOS shipped with. This caused me many dramas, including making systemd flat out refuse to boot my device. “You don’t have cgroups support? Pah! I’m on strike. You didn’t need your computer to boot anyway, did you?”.

    I have a couple of stories written up about my experiences:

    A quick summary of the fun side of things used to live in my /etc/issue:

    Welcome to Clusterlizard, chamber \\l.  Please praise your selected deity(s)
    
    Summary of interesting failure stories since December 2013:
     - 'debug' on kernel command line -> systemd becomes very verbose -> random race conditions due to text output -> crash
     - filesystem death on SSD by power-cycling too rapidly whilst debugging other issues
     - btrfs failure from trying to compile firefox ("ran out of inodes" even though btrfs does not use inodes)
     - systemd update -> required kernel support for xattrs on folders -> refused to boot
     - empty Chinese take-away containers + bag + laptop -> cracked the screen
     - systemd update -> prevented kernel from loading userspace wifi firmware
     - occasional bootloader corruption, fails to work until battled into a soft-reset after many attempts
     - upgraded many packages, write-cache filled memory, OOM -> system hung, filesystem left inconsistent 
     - updated kernel -> post-install script dd'd bootloader over my root filesystem 
     - updated kernel -> shorter wifi scan argument list support -> can't connect to wifi at uni, too many networks
    
    Misc self-inflicted
     - removed systemd-sysvcompat
     - custom init system: spawned gettys with wrong arguments -> no logins
     - repeat episodes of systemd firmware issues
    
    Happy birthday Clusterlizard! (2014 and 2015 and 2016)
    

    Having many things go wrong with systemd whilst on a remote Greek village mountainside lead me to write my own init. But that’s another story.

    What finally forced me to stop using the laptop was a failure of the inbuilt storage coupled with bugs in the evil bootloader. The onboard flash storage (MMC) became very slow over time (down to ~2MB/s write toward the end), but this wasn’t my major concern. What really hurt was when the the laptop started hardlocking when I did heavy disk I/O, such as updating.

    Updating became a dangerous game. I’d try to workaround the problem by constantly interrupting the process and forcing disk sync, but this was tedious and slow. Worst of all: when the laptop locked up during updating I would find many of my system libraries left zero bytes long.

    After about the third or fourth time that I had this happen I decided I needed some change.

    Unfortunately this device had no internal connectors for replacement storage. The internal MMC was soldered directly onto the motherboard (BGA packages, not easily replaceable). But I thought I could use an SD card or USB stick instead.

    USB and SD boot were how I originally installed (and repeatedly fixed) the ALARM installation. But now, out of the blue, the signed bootloader had decided that USB and SD card booting were verboten. “Hmm”, I thought, “perhaps those configuration bits had flipped?”. Not only that, but the configuration region had become write-locked. I have no clue why, the bootloader was still in the “developer” mode, and I tried many things to resolve it.

    I found it hard to stop using my Arm laptop. I still occasionally get it out for the smell, it brings back many memories of many places. It has been the lightest and longest lasting laptop I have ever owned. It had many physical construction issues, was held together with hot glue, and the performance was non-existant in the graphics department. But it was different, it was something I could afford, and it was fun.

    RIP clusterlizard, 2016

    Epilogue: I now use an 11.6” refurbished DELL Latitude 3150. It suffers phantom stuck keys, screen backlight stability issues and I had to warranty the battery a month after buying it. It’s heavier, has a smaller keyboard (complete with a keyboard bezel!) and doesn’t smell anywhere as iconic as my ARM laptop did.

    But when it breaks, I have many more options to fix it.

    1. 1

      btrfs failure from trying to compile firefox (“ran out of inodes” even though btrfs does not use inodes)

      This is very likely a generic error code being converted by a function in the VFS to something which doesn’t make sense for btrfs. Despite being an abstraction layer, VFS still expects a pseudo-ext-style implementation. This is evident in error messages and especially api design. See for example how statfx(2) has fields for free inodes, or “unreserved” blocks, even though those are not working statistics for many filesystems.

      1. 1

        I think you’re more ranting about Chromebooks than ARM as a processor architecture. I have an Intel Chromebook and probably the same bootloader.

      2. 7

        I’ve been using a Samsung ARM Chromebook (1st generation) as my daily driver for the past 4 years. It’s a lowend, underpowered machine with nothing to write home about, but it can support a full Arch Linux ARM installation, run a web browser just fine, and have an adequate number of terminals. I love it. The battery life hasn’t changed at all since I bought it, it’s still consistently getting >7 hours. I have other friends with ARM laptops from other manufacturers, the battery life story is one I hear consistently.

        1. [Comment removed by author]

          1. 6

            dz, I wrote up a blog post about this: http://blog.jamesluck.com/installing-real-linux-on-arm-chromebook I completely replaced ChromeOS with Archlinux ARM on the internal SSD. The gist of the process is that you make a live USB, boot to that, and then follow the same procedure for making the bootable USB onto the SSD. You just have to untar the root filesystem, edit /etc/fstab, and correct the networking config!

            1. 1

              If it’s anything like my Samsung ARM Chromebook, you can boot a different os off external storage (i.e. an SD card), or possibly replace Chrome OS on the internal solid-state storage.

              1. 1

                You can replace ChromeOS. Here’s the Arch wiki on the 1st gen Samsung ARM Chromebook and the Samsung Chromebook Plus.

            2. 7

              I have a Novena and absolutely love it.

              A friend of mine has a pinebook he quite enjoys, but I have less experience there.

              I also have a piTop – cannot recommend it, but it does work.

              1. 3

                I was interested in getting one of those. Aside from FPGA stuff, how good is it at things like video, browsing, and wifi?

                1. 1

                  I’m not running the latest etnaviv yet, so video is a bit low-performance at times, but I expect that to improve when I get fully accelerated drivers installed.

                  Browsing, wifi, all the basics work quite well.

                  1. 1

                    Ah thanks. Well, the vids arent typically confidential or anything. I could just do video on another box.

                2. 1

                  The Novena looks a little too adventurous to be my daily driver. I hate to say it, but I don’t have as much time to tinker as I used to. I’m definitely looking into the Pinebook now though.

                  1. 1

                    Note that the Novena was made with a specific audience in mind: people who want to use or develop FPGA bitstreams. It also advertised people supplying their own mouse and keyboard like reported here:

                    https://www.pcworld.com/article/2139383/meet-novena-the-pricey-pc-thats-open-source-inside-and-out.html

                    So, it’s straight-up targeted at tinkerers that want to mess with hardware development. You’re right to avoid it if you want good out-of-the-box experience. That said, the original supplier or a 3rd party might sell versions that do work out of the box software and all. I’m not sure since I haven’t looked at it since its Kickstarter. Someone usually shows up doing that, though.

                3. 6

                  Not sure how responsive this is to the specific q, but I have an ARM Samsung Chromebook Plus. Initially I used developer mode and crouton, which provides an Ubuntu userspace in a chroot hitting Chrome OS’s Linux kernel, but more recently I use a setup like Kenn White describes, where you’re not in dev mode and you use Termux, an Android app that provides a terminal and apt-based distro inside the app’s sandbox. (Termux has a surprising number of apt packages covered and you can build and run executables in there, etc. You can also just use it on any Android phone or tablet.) In both cases I just use terminal stuff, though Crouton does support running an X session. You can apparently boot Linux on the Chromebook Plus full-stop; I don’t know about compatibility, etc. Amazon’s offering it for $350 now.

                  I’ve long been more indifferent to CPU speed than a lot of folks (used netbooks, etc.), but for what it’s worth I find the Chromebook Plus handles my needs fine. The chip is the RK3399, with two out-of-order and four in-order ARMv8 cores and an ARM Mali GPU. I even futz with Go on it, and did previously on an even slower ARM Chromebook (Acer Chromebook 13). The most noticeable downsides seemed more seem to be memory-related: it has 4GB RAM but…Chrome. If I have too much open the whole thing stalls a bit while it tries (I think) compressing RAM and then stopping processes. Also, there’s a low level of general glitchiness: sometimes I’ll open it up and it’ll boot fresh when it should be resuming from sleep. I had to do some tweaking to do what I wanted inside Chrome OS’s bounds, notably to connect to work’s VPN (had to make a special JSON file and the OS doesn’t readily give useful diagnostics if you get anything wrong), but it’s just a matter of round tuits.

                  From the ARM vs. Intel angle, Samsung actually made a Chromebook Pro with the low-power but large-core Core m3. Reviewers seemed to agree the Pro was faster, and I think I saw it was like 2x on JavaScript benchmarks, but Engadget wasn’t fond of its battery life and The Verge complained its Android app support was limited.

                  1. 3

                    Since we’re talking about the Plus, a few notes on my experience. I have an HP chromebook with an m3 as well, for comparison. None of the distinguishing features of the Plus were positives. Chrome touch support is just meh, and the keyboard was annoyingly gimped by very small backspace, etc. Touchpad was noticeably worse. Android support was basically useless for me.

                    More on topic, the ARM cpu was capable enough, but the system wasn’t practically lighter or longer lasting than the m3 system. It was cheaper, perhaps 50% so, but that’s still only a difference of a few hundred dollars. (I mean, that’s not nothing, but if this is a machine you’ll be using for hours per day over several years… Price isn’t everything.)

                    (I would not pick the Samsung Pro, either. Not a great form factor imo.)

                    More generally, if you don’t have ideological reasons to pick arm, the intel m3 is a pretty remarkable cpu.

                  2. 6

                    I own an Acer Chromebook 13 with a nVidia Tegra K1 SoC. I written up my experiences here: https://hawski.com/reviews/#acer-chromebook-13

                    To sum it up: 13 hours of battery was and is amazing. I charge it every 2-3 days. But video drivers suck and it will probably never be fixed. Also after it will be EOL-ed I suppose that I will not be able to install full Linux on it. Maybe it’s more that it’s nVidia than ARM, but I will probably not risk next laptop with an ARM.

                    Other SoCs have it better from what I’ve heard. However AFAIK there are no good open source GPU drivers for ARM SoCs. Same issue as in phones. That’s why next time I would want to get something with x86.

                    But lately I think that maybe it’s better to have good desktop (maybe some mini-itx) and a cheap chromebook with android apps to access it on the go. Also I feel that I would be more productive limiting my screen time - reading more books, making paper notes, but that’s a separate issue.

                    1. 4

                      I use quite a number of SoPines and Pine64s running Armbian everyday for work. Hardware support has been great (including the HDMI and XFCE desktop), so I’d recommend that combination.

                      I haven’t used their Pinebook yet, but I assume it’s equally good.

                      1. 3

                        Does the SoC have open source GPU drivers? I’ve seen on the Pine A64 page that it runs mainline kernel, but I’m not sure if that includes the GPU driver.

                        EDIT:

                        I found it in their FAQ. It has Mali 400 MP2 GPU. So I guess it’s not horrible, but not good either.

                        1. 3

                          For open GPU you need etnaviv at this point, so i.MX6 or similar

                        2. 2

                          Good to know. I assume this is with the legacy 3.10 kernel, not mainline. Reading up on the situation, I don’t see a reason to believe Allwinner will continue to support the hardware or update the supported kernel. I don’t know how I feel about that. On the other hand, even the Pinebook barely costs anything compared to the various Chromebooks. The 2gb RAM maximum and low resolution eliminate it as a daily driver for me, but at that price I might just get one for the hell of it.

                          1. 2

                            Yes, we’re using the 3.10 kernel.

                            1. 2

                              There is documentation for Allwinner SoC (at least H3) available to all, but chapter describing configuration of HDMI output even when listed in index, is missing. Documentation for graphics chip is the same sad story.

                          2. 4

                            I’m thinking of getting an ARM laptop

                            The ARM laptop landscape is likely about to shift significantly in the next 6-12 months.

                            https://www.theverge.com/2017/5/31/15711334/microsoft-windows-10-arm-qualcomm-pcs-asus-hp-lenovo

                            With the snapdragon plus Win 10 as a platform, it will IMO normalize the technology so that the solutions for “ARM laptop” will be much less unique. Although I suppose that depends on whether it’s successful enough to deliver a second generation. If so, I predict Qualcomm won’t be the only vendor. Then again, if these laptops have locked bootloaders it won’t help your ultimate goal of linux or BSD on ARM. I hope it’s not the case.

                            1. 1

                              Wow. The Snapdragon 835 seems like the desktop match to Qualcomm’s new server chips. Higher clock frequency, 4k display support, and dual channel LPDDR4x RAM. With 8gb LPDDR4x modules, that implies these laptops could have at least 16gb RAM.

                              Definitely worth waiting to see how this plays out.

                            2. 3

                              Can’t say that I do, but I have experience with lowend, cheap ARM boards which turned out to be a pain in the ass since upstream support is non-existent. The Allwinner boards can due to community written drivers and u-boot support run Linux, but GPU and a mainline kernel is a still a no go. Although there is one company still working hard on creating an open source laptop (which you can actually buy) https://olimex.wordpress.com/tag/laptop/.

                              An interesting alternative would be a T Bao Tbook, which is an Intel based laptop and relatively cheap and since it’s Intel hardware you can use their mainline gpu driver.