feat: Add RyzenAdj to desktop images (#1179)

* feat: Ship ryzenadj on desktop images

Signed-off-by: RJ Trujillo <eyecantcu@pm.me>

* fix(framework/amd): Allow MMIO access in userspace for RyzenAdj

Signed-off-by: RJ Trujillo <eyecantcu@pm.me>

* fix(framework/amd): Load Ryzen SMU on startup for RyzenAdj

Signed-off-by: RJ Trujillo <eyecantcu@pm.me>

* chore(README): Note RyzenAdj support for AMD Framework Laptops

Signed-off-by: RJ Trujillo <eyecantcu@pm.me>

---------

Signed-off-by: RJ Trujillo <eyecantcu@pm.me>
This commit is contained in:
RJ Trujillo 2024-05-26 12:48:10 -06:00 committed by GitHub
parent f64fb7bfcc
commit 91ae917343
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 18 additions and 7 deletions

View File

@ -290,6 +290,7 @@ RUN rpm-ostree install \
compsize \
input-remapper \
system76-scheduler \
ryzenadj \
powertop \
i2c-tools \
udica \
@ -694,7 +695,6 @@ RUN rpm-ostree install \
vpower \
ds-inhibit \
steam_notif_daemon \
ryzenadj \
sdgyrodsu \
ibus-pinyin \
ibus-table-chinese-cangjie \

View File

@ -129,7 +129,7 @@ Variant designed for usage as an alternative to SteamOS on the Steam Deck, and f
- Applies SteamOS's kernel parameters.
- Color calibrated display profiles for matte and reflective Steam Deck screens included.
- Default-disabled power-user features, including:
- Service for low-risk undervolting of the Steam Deck via [RyzenAdj](https://github.com/FlyGoat/RyzenAdj) and [Ryzen SMU](https://gitlab.com/leogx9r/ryzen_smu), see `ryzenadj.service` and `/etc/default/ryzenadj`.
- Service for low-risk undervolting of the Steam Deck as well as AMD Framework Laptops via [RyzenAdj](https://github.com/FlyGoat/RyzenAdj) and [Ryzen SMU](https://gitlab.com/leogx9r/ryzen_smu), see `ryzenadj.service` and `/etc/default/ryzenadj`.
- Service for limiting the max charge level of the battery, see `batterylimit.service` and `/etc/default/batterylimit`. <sup><sub>(Works even when the device is off)</sub></sup>
- Built in support for display overclocking. For example, add `GAMESCOPE_OVERRIDE_REFRESH_RATE=40,70` to `/etc/environment`.
- 32GB RAM mod your Steam Deck? Enjoy double the maximum VRAM amount, automatically applied. <sup><sub>(Can you share your soldering skills?)</sub></sup>

View File

@ -7,7 +7,7 @@ IMAGE_FLAVOR=$(jq -r '."image-flavor"' < $IMAGE_INFO)
FEDORA_VERSION=$(jq -r '."fedora-version"' < $IMAGE_INFO)
# SCRIPT VERSION
HWS_VER=40
HWS_VER=41
HWS_VER_FILE="/etc/bazzite/hws_version"
HWS_VER_RAN=$(cat $HWS_VER_FILE)
@ -59,7 +59,12 @@ if [[ $IMAGE_NAME =~ "deck" && ":AOKZOE A1 AR07:" =~ ":$SYS_ID:" ]]; then
fi
if [[ ":Framework:" =~ ":$VEN_ID:" ]]; then
if [[ "GenuineIntel" == "$CPU_VENDOR" ]]; then
if [[ "AuthenticAMD" == "$CPU_VENDOR" ]]; then
if [[ ! $KARGS =~ "iomem" ]]; then
echo "AMD Framework Laptop detected, adding needed kargs for ryzenadj"
NEEDED_KARGS+=("--append-if-missing=iomem=relaxed")
fi
elif [[ "GenuineIntel" == "$CPU_VENDOR" ]]; then
if [[ ! $KARGS =~ "hid_sensor_hub" ]]; then
echo "Intel Framework Laptop detected, applying needed keyboard fix"
NEEDED_KARGS+=("--append-if-missing=module_blacklist=hid_sensor_hub");
@ -177,10 +182,16 @@ else
echo "No minimum-free ZRAM changes needed"
fi
# FRAMEWORK 13 AMD FIXES
# FRAMEWORK AMD FIXES
if [[ ":Framework:" =~ ":$VEN_ID:" ]]; then
if [[ $SYS_ID == "Laptop ("* ]]; then
if [[ "AuthenticAMD" == "$CPU_VENDOR" ]]; then
if [[ "AuthenticAMD" == "$CPU_VENDOR" ]]; then
# Load Ryzen SMU on AMD Framework Laptops
if ! [[ -f "/etc/modules-load.d/ryzen_smu.conf" ]]; then
mkdir -p "/etc/modules-load.d"
printf "# Load ryzen_smu driver upon startup\nryzen_smu\n" >> "/etc/modules-load.d/ryzen_smu.conf"
fi
# Framework 13 AMD fixes
if [[ $SYS_ID == "Laptop ("* ]]; then
if [[ ! -f /etc/modprobe.d/alsa.conf ]]; then
echo 'Fixing 3.5mm jack'
sudo tee /etc/modprobe.d/alsa.conf <<< "options snd-hda-intel index=1,0 model=auto,dell-headset-multi"