A script to fix the audio problems on Legion Pro 7 16IRX8H on Linux. This is a combination of solutions from this thread, with an automatic installer to eliminate manual steps.
- Apply a fix to the TAS2781 chip when pipewire is activated
- Apply the fix when awaking from suspend
Tested on Arch Linux, kernel 6.11, KDE Plasma 6.
jq and i2c-tools must be installed before applying the fix. Both are supported by mainstream package managers.
To install, simply run the following command:
curl -s https://raw.githubusercontent.com/DanielWeiner/tas2781-fix-16IRX8H/refs/heads/main/install.sh | bash -s --
Then make sure to reboot your system.
To uninstall, run:
/usr/local/bin/tas2781-fix --uninstall
To re-trigger the fix, restart the service:
systemctl --user restart tas2781-fix.service
To check if the fix was applied, run:
systemctl status tas2781-fix.service
Note that this is the status of the system-level service, which actually executes the fix.
You should see something like this:
● tas2781-fix.service - Run the tas2781-fix script when triggered Loaded: loaded (/etc/systemd/system/tas2781-fix.service; static) Active: active (exited) since Sat 2024-11-09 12:30:55 CST; 10min ago Invocation: a6d6b5bff24549c4a3fa6743420796a7 Process: 9632 ExecStart=/usr/local/bin/tas2781-fix --execute (code=exited, status=0/SUCCESS) Main PID: 9632 (code=exited, status=0/SUCCESS) Mem peak: 3.6M CPU: 110ms
This indicates that the fix ran and exited successfully.
To disable the fix, run:
systemctl --user disable tas2781-fix.service
This might be useful if you want to test that your audio works without the fix.
To enable the fix after disabling, run:
systemctl --user enable --now tas2781-fix.service