Difference between revisions of "Pinebook Pro"

Jump to navigation Jump to search
Line 568: Line 568:


=== Post NVMe install power limiting ===
=== Post NVMe install power limiting ===
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life.
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability on battery: Some NVME may be stable with default settings when runnning on AC power but cause frequent kernel panics (system freeze with power LED blinking red/green) when running on battery. Reducing NVME power drain solves this in some cases. And reducing power used gives better battery life.
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);


Line 591: Line 591:
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br>
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br>
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/>
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/>
<br/>
On Manjaro, the best way to script a non-defaut power state for an NVME that doesn't allow saving it - and also uses APST, see below - is to create a systemd service by creating a file called i.e. nvme-throttle.service in /etc/systemd/system and make it executable.<br/>
This file would contain : <br/>
<pre>[Unit]
Description=Throttles NVME to lesss power hungry mode
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
[Service]
Type=oneshot
ExecStart=/usr/bin/nvme set-feature /dev/nvme0 -f 2 -v 1
[Install]
WantedBy=multi-user.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target</pre>
Here the value after "-v" is the maximum power state that you want your SSD to use.<br/>
<br/>
This will be executed at system startup, and every time your system exits any suspend mode that might reset the SSD to default values.<br/><br/>
Once this file is created annd made executable, you just need to : <br/>
<pre>systemctl daemon-reload
systemctl enable --now nvme-throttle.service</pre>
And that's it !
<br/>
<br/>
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre>
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre>
Information for this feature, (on a Pinebook Pro), is a work in progress.
Information for this feature, (on a Pinebook Pro), is a work in progress. It is enabled by default in latest Manjaro kernels and reported to work.
On some NVME SSDS (WD), APST is compatible with limiting NVME maximum power : APST will work and not exceed maximum power state defined using
previous method.


=== Using as data drive ===
=== Using as data drive ===