Since chwd (new installation) recently detects specific Intel CPUs for better power saving, is there a way to get this benefit for existing installation?

The new CachyOS update said that chwd “detects specific Intel CPUs for better power saving”, but this seems to be only for newly-installed system.

What is the list of the Intel CPUs and how do I see the list (or if mine is supported)? And how do I get this power saving thing in my existing system without reinstalling?

Asking this because I’m using Intel Core 5 210H, and wanna improve my battery life if possible

chwd is a scripted utility.

If its been updated and you have it installed .. it now has the new functionality.

Run it again.

Oh, so I assume simply sudo chwd -a is sufficient here?

But how do I verify whether my Intel CPU has/supports this new power saving thing, after running that command?

It should pick it up ie:

chwd --list-all                                                                                   ─╯
> All PCI profiles:

╭─────────────────────────┬──────────╮
│ Name                    ┆ Priority │
╞═════════════════════════╪══════════╡
│ nouveau                 ┆ 18       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-470xx.prime ┆ 15       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-470xx       ┆ 14       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-580xx.prime ┆ 13       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-580xx       ┆ 12       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-open-dkms.prime  ┆ 11       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-open-dkms        ┆ 10       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ macbook-t2              ┆ 9        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ qemu                    ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ virtualbox              ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ vmware                  ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ intel-lpmd              ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ amd                     ┆ 4        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ intel                   ┆ 4        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ fallback                ┆ 3        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld.intel-msi-claw ┆ 2        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld.rog-ally       ┆ 2        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld.steam-deck     ┆ 2        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld                ┆ 1        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ broadcom-wl             ┆ 1        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ marvell-wifi            ┆ 1        │
╰─────────────────────────┴──────────╯

> All USB profiles:

╭────────┬──────────╮
│ Name   ┆ Priority │
╞════════╪══════════╡
│ fprint ┆ 5        │
╰────────┴──────────╯

Thais is on a AMD CPU not intel though.

For My Intel:

sudo chwd -a                                                                                                    ─╯
> Skipping already installed profile 'intel' for device: 0000:00:02.0 (0300:8086:9b41) VGA compatible controller Intel Corporation CometLake-U GT2 [UHD Graphics]
> Using profile 'fprint' for device: 1-9 (ff:06cb:00bd)  Synaptics, Inc. Prometheus MIS Touch Fingerprint Reader
> Installing fprint ...
:: Synchronizing package databases...
 cachyos-v3 is up to date
 cachyos-core-v3 is up to date
 cachyos-extra-v3 is up to date
 cachyos is up to date
 core is up to date
 extra is up to date
 multilib is up to date
resolving dependencies...
looking for conflicting packages...

Package (3)                 New Version  Net Change  Download Size

cachyos-extra-v3/libfprint  1.94.10-1.1    1.82 MiB       0.42 MiB
cachyos-extra-v3/libgusb    0.4.9-2.1      0.36 MiB       0.07 MiB
cachyos-extra-v3/fprintd    1.94.5-2.1     0.94 MiB       0.16 MiB

Total Download Size:   0.64 MiB
Total Installed Size:  3.12 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 libgusb-0.4.9-2.1-x86_64_v3                70.9 KiB   111 KiB/s 00:01 [----------------------------------------] 100%
 fprintd-1.94.5-2.1-x86_64_v3              161.3 KiB   217 KiB/s 00:01 [----------------------------------------] 100%
 libfprint-1.94.10-1.1-x86_64_v3           427.3 KiB   494 KiB/s 00:01 [----------------------------------------] 100%
 Total (3/3)                               659.6 KiB   662 KiB/s 00:01 [----------------------------------------] 100%
(3/3) checking keys in keyring                                         [----------------------------------------] 100%
(3/3) checking package integrity                                       [----------------------------------------] 100%
(3/3) loading package files                                            [----------------------------------------] 100%
(3/3) checking for file conflicts                                      [----------------------------------------] 100%
:: Running pre-transaction hooks...
(1/1) Performing snapper pre snapshots for the following configurations...
==> root: 66
:: Processing package changes...
(1/3) installing libgusb                                               [----------------------------------------] 100%
(2/3) installing libfprint                                             [----------------------------------------] 100%
(3/3) installing fprintd                                               [----------------------------------------] 100%
:: Running post-transaction hooks...
(1/6) Updating udev hardware database...
(2/6) Reloading system manager configuration...
(3/6) Reloading device manager configuration...
(4/6) Arming ConditionNeedsUpdate...
(5/6) Reloading system bus configuration...
(6/6) Performing snapper post snapshots for the following configurations...
==> root: 67
The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=,
Also=, or Alias= settings in the [Install] section, and DefaultInstance= for
template units). This means they are not meant to be enabled or disabled using systemctl.
 
Possible reasons for having these kinds of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/, .requires/, or .upholds/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.
> Successfully installed fprint
╭─░▒▓    ~/Cytadela  on   main ? ▓▒░─────────────────────────────────░▒▓ ✔  took 4s   at 02:54:40 PM  ▓▒░─╮
╰─ sudo chwd --list-all                                                                                            ─╯
> All PCI profiles:

╭─────────────────────────┬──────────╮
│ Name                    ┆ Priority │
╞═════════════════════════╪══════════╡
│ nouveau                 ┆ 18       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-470xx.prime ┆ 15       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-470xx       ┆ 14       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-580xx.prime ┆ 13       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-580xx       ┆ 12       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-open-dkms.prime  ┆ 11       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-open-dkms        ┆ 10       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ macbook-t2              ┆ 9        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ qemu                    ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ virtualbox              ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ vmware                  ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ intel-lpmd              ┆ 5        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ amd                     ┆ 4        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ intel                   ┆ 4        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ fallback                ┆ 3        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld.intel-msi-claw ┆ 2        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld.rog-ally       ┆ 2        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld.steam-deck     ┆ 2        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ handheld                ┆ 1        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ broadcom-wl             ┆ 1        │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ marvell-wifi            ┆ 1        │
╰─────────────────────────┴──────────╯

> All USB profiles:

╭────────┬──────────╮
│ Name   ┆ Priority │
╞════════╪══════════╡
│ fprint ┆ 5        │
╰────────┴──────────╯

Why are the PCI profiles on the AMD and Intel the exact same here? Also Nouveau being higher priority than Nvidia’s official driver? Isn’t Nouveau slower tho?

Sorry, I don’t really understand how it works

If you run chwd without arguments you’ll see what’s your current configuration. If you have a newer nvidia card default is going to be either 10 or 11 depending on your CPU (if you have iGPU or not), at least I think so. On my desktop I always disable iGPU, so I can’t say with 100% that prime profile is always used when iGPU is detected, something else could be used as the deciding factor (e.g. laptop vs desktop could make sense.)

Also, I am not sure how effectively can chwd recognize the architecture of the GPU, and pick one of the older drivers like 580 (IMO, this one would make sense as default in most cases) or 470 for pre 10 series cards. So, you might need to manually select 470xx or 580xx profiles if you have 10 series or older.