Review of Librem15 v2

It has now been a few months since I received my Librem15 and I think it is time to write a review of it (it is actually long overdue).

The first impression is very positive: a quite large laptop that is also quite light (for its size), good build quality and a nice, pure aluminum casing (no colorful stickers all over the place). The screen is bright and offers a good quality. It is also great to see the hardware switches that allow cutting off the wifi or the camera/mic. A welcomed improvement would be to add labels to these switches (as well as On/Off markings). All the ports are properly marked, the switches should be too! A final touch to this feeling of robustness, would be to add a support under the vents on the back of the laptop: when grabbing a closed laptop by its back, the casing moves a little bit because the vents located exactly there are not supported on the inside. Nothing problematic, but this would make a better feeling. After a little bit of use, one see a few shortcomings to the build quality: one key on my keyboard does not fit perfectly through its hole and one USB port has a slight angle compared to the casing (so it quite hard to insert a usb stick).

When turning the laptop on, the boot time is very short (I have an SSD version). The boot through PureOS is very smooth and looks very professional. One drawback: the battery life is very average. I quickly installed Debian Stretch and after some tweaking (both in the Bios and with updated software), I manage to get a some improvements (10%? 15%?). These updated version are also quite important for performance reasons (latest Mesa, DRI, kernel, ffmpeg, …) for the GPU (now recompressing videos is very fast).

If we have a look at the software side, the bad news start to pile up… First, forget about coreboot. There is currently no coreboot running on this machine, although this is in development. Moreover, I found some default bios options quite bad: although this is a computer aimed at FOSS enthusiasts and security paranoids, Intel’s AMT is turned on by default. And although I ordered mine with an SSD, it was configured as a hard drive in the bios. By fine-tuning the bios, I was able to save more than 1 W in normal use. Second, the SSD… I was assuming that Puri.sm had carefully, lovingly selected all components to be the best choice for Linux. But the SSD (sold at a premium price) is an entry level SSD that is NOT supported by Linux. Yes, you can use it with Linux but it is often described on forums as the worst possible choice for Linux and its firmware can only be updated from Windows! If it would not be a Samsung 850 EVO but PRO, Samsung Magician for Linux would support it. To this day, I still don’t understand why puri.sm chose this ssd. If I would have known, I would have ordered one without ssd in order to add a Linux-friendly ssd myself. Because of this ssd, my laptop can not suspend as it fails to properly wake up from suspend (this did not work from PureOS either). After lots of googling, this comes from the ssd. The most common advice is “update its firmware” which would require to install Windows (which I don’t have and don’t want to have)…

I also realized after receiving mine that although there is a bluetooth module, there is no driver for it. Yes, in the specs you see bluetooth but you need a proprietary driver in order to use it (no open source driver yet).

And the touchpad… Under PureOS, things work well. The driver has been mostly open-sourced, but this consists of bits and pieces floating around. A project on github collected all these pieces and made a (partial) dkms module. A driver has also been integrated into the mainline kernel before being disabled because it was breaking the automatic detection of others touchpads. The truth is, the maker of this touchpad doesn’t work with the community, doesn’t provide any documentation at all and there is not even a proper way to identify the device (many fields are left as “to be filed by OEM”). Moreover, it is a so-called “transitional device”, ie it is not a true multi-touch and will never play nicely as a multi-touch device. For now, I still have to try to merge the dkms and mainline drivers and see if I can load this manually at each boot (since I can also not suspend…)

So, to wrap it up: the hardware is nice, it is a pleasant laptop but there are huge gaps between what it promises (with a heafty price tag) and what it delivers in term of openess / FLOSS. No bluetooth, no coreboot, wrong ssd, no suspend, half broken touchpad. I think that puri.sm should refocus its efforts and invest less in PureOS (who needs one more Linux distribution??) and more on making sure that at least all its hardware works properly with Linux.

2 Likes

Hi, I have a Librem 15 v2 on hand as well. I’ll answer with what I know about:

I found some default bios options quite bad: although this is a computer aimed at FOSS enthusiasts and security paranoids, Intel’s AMT is turned on by default.

That’s very interesting… I suppose the setting for it might be there in the BIOS (I hadn’t noticed, but then the BIOS has so many options I didn’t find the courage to tinker with them) but it wouldn’t do anything. After all AMT can’t work if you don’t have all the pieces of the puzzle, and the CPU + hardware combination takes out the pieces of that puzzle. And, in any case, the BIOS will be replaced by coreboot eventually.

although I ordered mine with an SSD, it was configured as a hard drive in the bios. By fine-tuning the bios, I was able to save more than 1 W in normal use.

That’s an interesting finding… you should contribute it there (but please check how it interacts with the tricks I had already listed)?

One drawback: the battery life is very average.

Depends what you mean by average, and how you use the computer. In my case I can easily last over 8 hours (well, at least according to the battery charge percentages) with my tweaks and “not running a web browser or some other CPU hog”.

Because of this ssd, my laptop can not suspend as it fails to properly wake up from suspend (this did not work from PureOS either).

Huh, that’s odd, because it worked fine for me. No tweaking required at all (and I pretty much never shutdown a computer, always suspend/resume).

And the touchpad… Under PureOS, things work well. The driver has been mostly open-sourced, but this consists of bits and pieces floating around. A project on github collected all these pieces and made a (partial) dkms module. A driver has also been integrated into the mainline kernel before being disabled because it was breaking the automatic detection of others touchpads. The truth is, the maker of this touchpad doesn’t work with the community, doesn’t provide any documentation at all and there is not even a proper way to identify the device (many fields are left as “to be filed by OEM”).

If you know someone who is good at reverse-engineering and drivers development, I’m sure Purism would love to get that solved. The problem is available resources (time, hands). In the back of my mind I’ve been thinking that Youness could be working on that particular problem, but he’s working on the coreboot port first, then the Intel ME second… which are quite a bit more urgent, I’m sure we’ll agree! Afterwards then he could be working on specific drivers like the “BYD” touchpad.

First, forget about coreboot. There is currently no coreboot running on this machine, although this is in development.

Your statement seems a bit contradictory here: you acknowledge that the coreboot work is ongoing as we speak, but say “forget about coreboot”. Sure it does not run coreboot right now, but in the future it should, as an update available for download. Fingers crossed.

Globally, this goes back to your conclusion where you say, “the hardware is nice, it is a pleasant laptop but there are huge gaps between what it promises (with a heafty price tag) and what it delivers in term of openess / FLOSS.”

That’s the thing. It’s work in progress. It’s hard enough to make and ship hardware at all, so getting everything “100% right all the same time” from day zero is a really really tough expectation for a newborn company on a shoestring budget. Hey, even Elon Musk’s crazy ambitious projects for Tesla are taking over a decade to materialize (the model S didn’t begin shipping until 9 years after founding the company!)… Just putting things in perspective :wink:

Hi Jeff!

Thanks for your reply! Please, don’t take me wrong: I don’t want to minimize the work that you’ve done. But there are some shortcomings and I think that it’s better to not ignore them (also so it might highlight some of the issues that should have high priority).

First, with coreboot: what I say is not contradictory, but as a developer myself, I tend to only trust what I see (I’ve just finished Yesterday something that had been “in progress” for the last 2 years, so I know what “in progress” means). For the sake of honesty, it is important to mention that Puri.sm is doing something about it, but who knows if it will be available in 1 month or in 3 years!

Now with the touchpad: I think this should be considered a high priority issue. Using the proper driver makes it much more pleasant than as a ps2 mouse. But from what I have seen on the lkml, most of the problem has to do with the improper (lack of) identification of the device (see this thread: https://patchwork.kernel.org/patch/9204273/). Then it would be necessary to make sure that the proper DMI fields are filed and then convince the maintainers that your fields would be used for the automatic detection (and hope that a firmware upgrade could “fix” the current laptops). This is currently what has led the maintainers to disable the driver in the kernel… It also seems that the current mainline driver only implements single touch.

On the SSD front, I have never been able to suspend (even just after unpacking the laptop). It could be that a few specific firmware releases are making trouble (I found some other people complaining of similar issues after some extensive googling). The problem is, I won’t be able to upgrade the firmware… One solution would be to convince Samsung to support the 850 EVO in Samsung Magician (but I doubt anything like that would ever happen), or assemble new laptops with 850 PRO and look for a solution for those who have an EVO (maybe a custom firmware updater with Samsung? Or an “upgrade service” where users could send their ssds to be upgraded. It only requires you to have a Windows computer for performing the upgrades).

For the BIOS settings, the basic idea was to turn off everything that is not in use and turn on all power saving features. On issue is that the “restore factory settings” does not work: luckily I saved my settings before this “restore”, because it almost bricked the laptop (it could not boot anymore and 80% of the screen was filled with various colored lines. I had to reload my bios settings mostly blindly in order to restore the laptop to a functioning state). Of course, going through all the items took a while… (and quite some googling to figure out what all these abbreviations mean).

About battery usage, for very light usage (basically, only a text editor, Kate), after ~5 hours I still had ~20% battery left. This is definitely great compared to the previous generation of CPUs, but on the low end compared to some systems boasting 10 hours nowadays (but again, most of the drain comes form the screen. I don’t think that I’ve seen any of the 15" laptops with 10+ hours of battery life).

From a user’s point of view (well, at least from mine!), the priorities should be to make the current hardware work properly with Linux (so touchpad, suspend / ssd firmware upgrade, bluetooth) and then move forward with the cleanup of binary blobs in firmware (coreboot, Intel’s ME).

First, with coreboot: what I say is not contradictory, but as a developer myself, I tend to only trust what I see (I’ve just finished Yesterday something that had been “in progress” for the last 2 years, so I know what “in progress” means). For the sake of honesty, it is important to mention that Puri.sm is doing something about it, but who knows if it will be available in 1 month or in 3 years!

If anything, today’s 3rd coreboot status update would be an indication that this will be much closer to “1 month” than “3 years” :slight_smile: Talking about the Librem 13 v1 of course; then it needs to be done for the Librem 15 and for future models as well… I’ll happily give up my Librem 15 for the cause if needed.

There’s also the coreboot conference coming up this summer, which should be a great opportunity to continue moving things forward if not already all done by then.

On the SSD front, I have never been able to suspend (even just after unpacking the laptop). It could be that a few specific firmware releases are making trouble (I found some other people complaining of similar issues after some extensive googling). The problem is, I won’t be able to upgrade the firmware… One solution would be to convince Samsung to support the 850 EVO in Samsung Magician (but I doubt anything like that would ever happen), or assemble new laptops with 850 PRO and look for a solution for those who have an EVO (maybe a custom firmware updater with Samsung? Or an “upgrade service” where users could send their ssds to be upgraded. It only requires you to have a Windows computer for performing the upgrades).

I don’t remember seeing others reporting this issue here, so maybe you just got unlucky… For the sake of completeness, could you try removing your possibly faulty M.2 SSD and using your Librem with a regular SATA SSD/HDD and see if it can suspend and resume correctly?

If the M.2 SSD is determined to be the problem, maybe support @ puri.sm could do something for you there… send 'em a mail about that?

Jeff, could you please mention that librem have bluetooth in the specifications (and has an proprietary driver)?
And it will be nice to mention somewhere that the update firmware via linux by that provided in librem models ssd is impossible.
Thanks!

Maybe in the future but for now I really don’t think it’s a good idea to advertise the presence of the Bluetooth hardware (heck, I didn’t even know it was there), because there is no Free driver available for it… so if you list it on the product’s page, the next thing that will happen is people complaining (as above) that it doesn’t work or that it’s non-free.

Regarding firmware upgrade of SSDs, I don’t know, after seeing the latest coreboot work with the crazy techniques that can be used and the things that can be achieved, I do not believe anything is “impossible” in the long term, someone could probably reverse engineer that. The website does not make any claims that the SSD firmware is currently easily flashable nor freed, the big “freedom roadmap” page actually mentions (and that graphic has been there since early days, as far as I can tell) that after FSF RYF certification happens the next step would be “Drive Firmware Freed”. So that’s a plan for the future…

One more thing, can you please put a link to github (https://github.com/purism) to this block https://a.pomf.cat/ffwuut.png ?

Hi Mathias, thanks for the review. Always interested to find out perspectives of other Librem users. Thanks.

No bluetooth,

Yup, when I’m using other Linux distro, I had to use a Bluetooth dongle instead. I’m using bluetooth quite a lot nowadays; headphone, speaker, mouse, etc.

no coreboot,

Takes some time I guess.

I personally appreciate Purism’s efforts on these, such as https://puri.sm/posts/todds-librem-13-with-coreboot-and-a-neutralized-me/

Finally somebody is willing to take the pain.

But I understand if people have different expectations.

wrong ssd, no suspend,

I have same SSD (Samsung EVO) and I can suspend just fine ? With all Linux distros so far. Sorry, no idea about this problem.

half broken touchpad

Yes, if I want touchpad, then I had to use PureOS. Otherwise, I just plugged my bluetooth mouse. Of course on a very mobile situations, it’s not always convenient to use external mouse. So yeah, it’d be great if the touchpad could work on any distros.

cheers, HS

Coreboot is a work-in-progress. Even with a limited man power, we recently finished Coreboot for first hardware revision of Librem 13. Librem 15 v2 might be the next one to port, stay close to our news for more news.

1 Like
wrong ssd, no suspend,

Sorry, my previous response was rather wrong.

I just booted again into PureOS - and my Librem laptop would fail to restore from suspend after about 5 suspend.

After about 5 times suspend - restore cycle ; Librem / PureOS Alpha would froze.

I have no idea about the cause, I’ve tried looking into various logfiles. No clue whatsoever.

===
Now I remember why I dual-booted into Debian stretch. This never happened in Debian stretch.

This issue is quite disruptive to my workflow ; so I stopped booting into PureOS.

FYI.

cheers, HS

@sufehmi
I definitely understand and value the Coreboot efforts. I understand this is (very) ambitious but in terms of expectations, it is that in order to be ahead of the “libre” pack, this is quite a must (otherwise, any other Linux-friendly vendor offers the exact same degree of openness).

Regarding the suspend/resume, I’ve just tried disconnecting the SSD and booting from a USB stick. I still have the same problem: it goes into suspend but does a full reboot instead of just waking up (the LEDs are still showing that it is active while in suspend).

And finally, regarding the touchpad: this looks like low hanging fruits to me. The driver is there, it works, it is just a matter of making sure the touchpads are properly identified by the kernel (or as a quick hack, provide the proper start option to force loading this driver at boot).

I think name1 meant “currently” (in February). Since not all prospective buyers will have seen the roadmap but usually look at the feature list, and would like to know that freeing is a WIP. Although even nonfree firmware that can be kept up-to-date by the end-user with the OS on the laptop they bought would be better than the situation as it was in February.

I’ve explored the issue of the laptop not resuming from suspend (instead rebooting) by using PM_TRACE (see https://wiki.ubuntu.com/DebuggingKernelSuspend). This option is some kind of a hack (but a very useful one), so it is NOT enabled in the default Debian kernel (I don’t know if other distributions enable it by default). After suspending and restarting, I had the following lines, showing where resume went wrong:
Magic number: 9:928:176
acpi device:39: hash matches
acpi device:0c: hash matches

This means (as far as I understand it) that resume does not go wrong because of a physical device (so it is NOT the SSD’s fault) but because of ACPI. Then I kind of stuck as I have no clue how to identify which method / device matches these acpi devices (my guess is that by turning off the proper setting in the bios, resume would work).

My 2 cents update,
Mathias

I appreciate that. Most people have no idea how many sh!tstorms we have to deal with on all fronts (support, public relations, operations, R&D, finances, partnerships) every single week to make things work, with surprises at every step of the way. Like in many other projects, there’s a huge amount of invisible work being done just to keep people happy, so if anyone is impressed, that’s typically because we’ve been busting our asses to go beyond “just keeping people happy”.

Regarding your request to have everything “up in front” on product pages (rather than on technical reference pages or the “roadmap”) for the Bluetooth or SSDs or whatever: there is such a thing as “too much information” when in comes to front-facing pages. We’ve heard frequent feedback from non-geeks that amounted to “Sounds like a great project! So… when will you create a product that normal people like me can use?” which is of course surprising and funny the 1st, 2nd and 3rd time you hear it… but as such reactions continue to occur, you realize that it’s not just a few isolated cases, and that you must keep things simple for the greater public—geeks such as you and I will always dig further anyway.


@bavay: thanks for starting to investigate the suspend/resume issue! I presume that’s using the original AMI BIOS, in which case maybe it’s related to the DSDT tables being wrong (just a wild guess)? In any case, if you can’t make it work by tweaking with the existing BIOS, I think the ideal approach will be to solve the problem as part of the coreboot porting process. Just gotta be patient, as the port for this particular model has to wait for the rest of @kakaroto’s mountain of tasks to shrink a bit (unless someone here wants to dive into the deep end of the pool and help speed up that port).

1 Like

How sad :cry: But it sounds like you are working on the balance of inform-but-not-overwhelm, so I appreciate that.

Hello!

Any new regarding Coreboot on Librem15 v2? On my side, I can confirm that the suspend/resume issue comes from the dsdt tables. Disassembling the tables and trying to compile them fails (with 2 errors, after fixing the first error more errors come and a few hundreds of warnings)…

Mathias

this is fixed w/ 15v3 :slight_smile:

2 Likes