Dell G5 SE 5505

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Hardware table needs IDs, missing function keys table (Discuss in Talk:Dell G5 SE 5505)
Hardware PCI/USB ID Working?
GPU 1002:731f Yes
Wireless 8086:2723 Yes
Bluetooth 8087:0029 Yes
Audio 1022:15e3 Yes
Touchpad 04F3:30CB Yes
Webcam 0c45:671f Yes
Ethernet 10ec:8168 Yes

This page describes Dell G5 SE 5505 laptop.

Installation

Disable Secure Boot in your BIOS (press the F2 key on boot). Install Arch Linux as usual using UEFI installation method. You may have to use the amdgpu.runpm=0 kernel parameters if you are experiencing GPU crashes.

Firmware

There are a few ways to update the firmware on this device. Using Windows and the Dell provided tools on the support page for this laptop is certainly one of them, but that method often causes many issues. This guide will explain how to update the firmware for the Dell G5 SE 5505 within Arch.

Before we begin with instructions, make sure "UEFI Capsule Updates" is enabled in the UEFI settings. Passing firmware updates (especially UEFI or similar I/O updates) from an OS to the NVRAM (where firmware data is "physically stored" on the motherboard) is impossible to achieve otherwise.

Since we are downloading files to a storage medium with very limited storage capacity, it's important to make sure there is sufficient available space in the NVRAM partition. Often times the above referenced Dell support tools used to install capsule updates from Windows fail to function and end up filling the NVRAM with dump logs.

Navigate to the proper directory by running:

cd /sys/firmware/efi/efivars/


Make sure to remove all dump files within this directory, if any. A quick way to remove all dump logs at once is to run:

rm -rf dump-*

Now there are no dump files, we can update the system firmware by running a very useful tool: fwupd.

run fwupdmgr get-updates to pull firmware updates, then fwupdmgr update to install the updates.

At this point your device may restart. It's important to not touch anything, especially the power button/AC adapter and let the updates run their course.

Graphics

Works out of the box, install mesa if you want to use 3D applications. If you want to use the dedicated GPU, use DRI_PRIME=1 command, where command is the command you want to launch with your dGPU (see PRIME#For open source drivers - PRIME). Wayland session works out of the box on gnome with pipewire. AMD's Smart Access Memory (or Resizable BAR) should work since kernel ≥ 5.11.4.

Screen tearing

Works out of the box for Wayland sessions.

For X11: install xf86-video-amdgpu.

Note: Arch supplies default configuration files in /usr/share/X11/xorg.conf.d/, and no extra configuration is necessary for most setups.

If no *0-amdgpu.conf is present in /etc/X11/xorg.conf.d/ folder, copy the default amdgpu.conf file from /usr/share/X11/xorg.conf.d/.

Example:

# cp /usr/share/X11/xorg.conf.d/10-amdgpu.conf /etc/X11/xorg.conf.d/

Edit the .conf file as follows:

/etc/X11/xorg.conf.d/10-amdgpu.conf
Section "OutputClass"
        Identifier "AMDgpu"
        MatchDriver "amdgpu"
        Driver "amdgpu"
        Option "TearFree" "true"
EndSection

Video Encoding / Decoding

# vainfo
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 22.0.5 for AMD RENOIR (LLVM 13.0.1, DRM 3.48, 6.0.9-060009-generic)
vainfo: Supported profile and entrypoints
     VAProfileMPEG2Simple            :	VAEntrypointVLD
     VAProfileMPEG2Main              :	VAEntrypointVLD
     VAProfileVC1Simple              :	VAEntrypointVLD
     VAProfileVC1Main                :	VAEntrypointVLD
     VAProfileVC1Advanced            :	VAEntrypointVLD
     VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
     VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
     VAProfileH264Main               :	VAEntrypointVLD
     VAProfileH264Main               :	VAEntrypointEncSlice
     VAProfileH264High               :	VAEntrypointVLD
     VAProfileH264High               :	VAEntrypointEncSlice
     VAProfileHEVCMain               :	VAEntrypointVLD
     VAProfileHEVCMain               :	VAEntrypointEncSlice
     VAProfileHEVCMain10             :	VAEntrypointVLD
     VAProfileHEVCMain10             :	VAEntrypointEncSlice
     VAProfileJPEGBaseline           :	VAEntrypointVLD
     VAProfileVP9Profile0            :	VAEntrypointVLD
     VAProfileVP9Profile2            :	VAEntrypointVLD
     VAProfileNone                   :	VAEntrypointVideoProc

Power management

CPU

acpi-cpufreq is working down to 1.40 GHz. amd_pstate fails to load with BIOS Version 1.14.0 (11/30/2022)

kernel: amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled

GPU

Battery life below two hours when amdgpu.runpm=0 is used and the dedicated GPU never turns off.

Since Kernel Version 6.0.x and BIOS Version: 1.13.0 amdgpu power management sees fewer GPU crashes.

Show power management profiles:

# cat /sys/class/drm/card?/device/pp_power_profile_mode

Enable power saving mode (as root):

# echo manual > /sys/class/drm/card0/device/power_dpm_force_performance_level
# echo "2" > /sys/class/drm/card0/device/pp_power_profile_mode

See amdgpu kernel documentation

Suspension and hibernation

Does not work. You can try to enabling its support via BIOS injection, see [1]

Temperature monitoring, Fan control

Monitoring

By default the kernel loads the k10temp module to check cpu thermals.

$ sensors
 k10temp-pci-00c3
 Adapter: PCI adapter
 Tctl:         +38.0°C  
 Tdie:         +38.0°C

To monitor GPU temp, and see fan speeds you will have to force load the dell-smm-hwmon Kernel module (see [2] for documentation), which is not loaded by default on this laptop.

# modprobe dell-smm-hwmon restricted=0 ignore_dmi=1

To make this setting persist upon reboot edit your /etc/modules-load.d/dell-smm-hwmon.conf file

dell-smm-hwmon

and your /etc/modprobe.d/dell-smm-hwmon.conf file

# This file must be at /etc/modprobe.d/
options dell-smm-hwmon restricted=0 ignore_dmi=1

You should now see a dell result in the result of sensors.

dell_smm-virtual-0
Adapter: Virtual device
Processor Fan:    0 RPM
Video Fan:        0 RPM
Other:          +37.0°C  
CPU:            +40.0°C  
Ambient:        +38.0°C  
GPU:            +38.0°C  
Other:          +37.0°C

Fan Control

An easy way to manually control fans, or to manually create custom fan curves is to use: this python script which can more accurately push the fans according to CPU and GPU temperatures. This script also restores the defunct Fn + F7 "boost" functionality by providing a command that manually activates the boost profile defined by UEFI data.

Thermal management, overclocking

CPU

The packages ryzenadj-gitAUR and ryzen-controller-binAUR (gui for ryzenadj) should work out of the box to control maximum temperature and TDP of your CPU. For instance, the following command restrict your CPU TDP to 40 Watts and maximum temperature to 70°C (perfectly safe on this laptop)

# ryzenadj -a 40000 -b 40000 -c 40000 -f 70
Warning: Do not touch anything that you do not understand, a too high TDP or temperature can permanently damage your CPU/iGPU !

see [3] and [4] for detailed instructions on how to use theses tools.

Undervolting and overclocking are not available on this laptop, zenstates-gitAUR does not seem to have any effect on zen2 processors see [5] .

Also see Improving performance for more performance tricks.

GPU

You can try to use corectrl. Also see AMDGPU#Overclocking.

Webcam

# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture

	[0]: 'MJPG' (Motion-JPEG, compressed)
		Size: Discrete 1280x720
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 960x540
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 848x480
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 640x360
			Interval: Discrete 0.033s (30.000 fps)
	[1]: 'YUYV' (YUYV 4:2:2)
		Size: Discrete 1280x720
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 640x360
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 424x240
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 320x240
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 320x180
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 160x120
			Interval: Discrete 0.033s (30.000 fps)