Linux Audio Solution for Virtual Machines
SoundFixer automates the installation and configuration of a modern audio stack (PipeWire) on Linux virtual machines. It resolves common audio issues—echo, no sound, glitches—often encountered in VM environments.
- Installs and configures PipeWire as the default audio server
- Installs essential audio client libraries and the GUI control panel (
pavucontrol) - Disables PulseAudio to prevent conflicts
- Enables and starts PipeWire services (
pipewire,pipewire-pulse,wireplumber) - Provides colored output and progress indicators
- Logs all actions to
~/SoundFixer.log
- Debian/Ubuntu-based distribution (tested on Ubuntu, Debian)
sudoprivileges- Terminal emulator (TTY detection for interactive mode)
wget https://github.com/SoufianoDev/Linux_SoundFixer/raw/refs/heads/main/releases/soundfixer.deb
sudo apt install ./soundfixer.deb
soundfixerwget https://github.com/SoufianoDev/Linux_SoundFixer/raw/refs/heads/main/releases/soundfixer-1.0-2.noarch.rpm
sudo dnf install ./soundfixer-1.0-2.noarch.rpm
soundfixerwget https://github.com/SoufianoDev/Linux_SoundFixer/raw/refs/heads/main/releases/soundfixer-1.0.tgz
tar xzf soundfixer-1.0.tgz
sudo cp -r usr/ /usr/
/usr/bin/soundfixerwget https://raw.githubusercontent.com/SoufianoDev/Linux_SoundFixer/refs/heads/main/main/SoundFixer.sh
chmod +x SoundFixer.sh
./SoundFixer.shmkdir -p ~/.local/bin/linux-soundfixer \
&& cd ~/.local/bin/linux-soundfixer \
&& curl -sLO https://raw.githubusercontent.com/SoufianoDev/Linux_SoundFixer/refs/heads/main/main/SoundFixer.sh \
&& chmod +x SoundFixer.sh \
&& ./SoundFixer.shgit clone https://github.com/SoufianoDev/Linux_SoundFixer.git
cd Linux_SoundFixer/main/
chmod +x SoundFixer.sh
./SoundFixer.shAfter installation, you can run SoundFixer from anywhere:
~/.local/bin/linux-soundfixer/SoundFixer.shOr add
~/.local/bin/linux-soundfixerto yourPATH:echo 'export PATH="$HOME/.local/bin/linux-soundfixer:$PATH"' >> ~/.bashrc source ~/.bashrc
-
Interactive mode:
~/.local/bin/linux-soundfixer/SoundFixer.sh -
Automated/background mode (no TTY):
bash ~/.local/bin/linux-soundfixer/SoundFixer.shIn non-TTY environments, the script runs silently and logs to
~/SoundFixer.log.
All output (stdout and stderr) is appended to:
~/SoundFixer.log
If errors occur, the log file is preserved for troubleshooting.
- Log file location: Modify the
LOGFILEvariable inSoundFixer.sh. - Packages: Edit the
install_audio_fix()function to add or remove packages. - GitHub prompt: Control interactive GitHub page opening via the
SHOW_GITHUBvariable.
Contributions welcome! Fork the repo, create a feature branch, commit, push, and open a PR. See Contributor Covenant for code of conduct.
This project is licensed under the MIT License.
Script by Soufiano Dev
