Skip to content

Hardware Detection

Hardware Detection or better known as chwd enables us to power a variety of hardware by installing the necessary packages and drivers for the running system. This includes systems running NVIDIA’s graphics cards, T2 Macbooks and handheld devices such as Steam Deck and ROG Ally.

chwd is typically ran during installation time to provide the necessary packages for the system. However, it is also possible to use it post-install.

chwd supports installing and configuring necessary drivers and packages so that the system can work at optimal conditions.

Terminal window
❯ sudo chwd -a

An alternative to the above method is to install each specific profile.

List all available profiles
❯ chwd --list-all
────────────────────┬──────────╮
│ Name ┆ Priority │
╞════════════════════╪══════════╡
│ nouveau ┆ 18 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-390xx ┆ 16 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms-470xx ┆ 14 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-dkms ┆ 12 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-open-dkms ┆ 10 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ macbook-t2 ┆ 9 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ phoenix-legion-go ┆ 6 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ phoenix-rog-ally ┆ 6 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ steam-deck-galileo ┆ 6 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ steam-deck-jupiter ┆ 6 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ virtualmachine ┆ 5 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ amd ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ intel ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ fallback ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ broadcom-wl ┆ 1 │
Installing a chwd profile
❯ sudo chwd -i amd
> Installing amd ...
> Successfully installed amd

Consult the help output of chwd for command syntax and other usage.

Terminal window
❯ chwd --help
Usage: chwd [OPTIONS]
Options:
-i, --install <profile> Install profile
-r, --remove <profile> Remove profile
-d, --detail Show detailed info for listings
-f, --force Force reinstall
--list-installed List installed kernels
--list List available profiles for all devices
--list-all List all profiles
-a, --autoconfigure [<classid>] Autoconfigure
--ai_sdk Toggle AI SDK profiles
--pmcachedir <PMCACHEDIR> [default: /var/cache/pacman/pkg]
--pmconfig <PMCONFIG> [default: /etc/pacman.conf]
--pmroot <PMROOT> [default: /]
-h, --help Print help
-V, --version Print version