「已解决」登录后没有声音(Kali Linux)

  CREATED BY JENKINSBOT

问题描述

系统启动后,登录root帐号后,系统没有声音(Firefox里没有声音)。

操作系统为Kali GNU/Linux Rolling

可能原因一:服务未启动

未找到。可能是因为PulseAudio服务未启动

解决办法

执行下面的命令,安装PulseAudio,并启动服务:

# apt-get install pulseaudio pulseaudio-utils

# systemctl –user enable pulseaudio

# systemctl –user start pulseaudio

# systemctl –user status pulseaudio

然后重启Firefox。

可能原因二:静音

另外一个可能的原因是:静音。下面是我遇到的情况,我用的是ALSA驱动。

我也是从PASysTray(pasystray -d)的调试日志中看出端倪的:

(pasystray:1766): pasystray-DEBUG: 12:38:16.431: volume:37696 muted

(PASysTray是一个声音控制程序,能够显示在系统托盘中)。

解决办法

执行amixer命令来关闭静音:

# amixer set Master unmute

或者执行:

# amixer set Master toggle

来切换静音的开关状态。顺便,如果想要静音,可以执行:

# amixer set Master mute

命令。

可能原因三:当前为root用户,导致服务无法启动

09/05/2018 前不久系统又没有声音了。今天打算处理一下。

执行systemctl –user status pulseaudio查看服务时,输出了如下信息:

● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Wed 2018-09-05 06:39:07 CST; 5min ago
           └─ ConditionUser=!root was not met

查看/usr/lib/systemd/user/pulseaudio.service文件后,该文件中存在如下一行:

ConditionUser=!root

该单元对当前用户进行了检查。由于我以root用户登录,不满足非root用户的条件,因此无法启动。

解决

通过执行/usr/bin/pulseaudio -D可以启动PulseAudio服务。因此,可以考虑设置PulseAudio为自启动(XDG AutoStart、systemd)。

我选择使用XDG AutoStart来进行自启动。通过向/root/.config/autostart/pulseaudio.desktop中添加如下内容来实现自启动:

[Desktop Entry]
Version=1.0
Name=PulseAudio Sound System
Comment=Start the PulseAudio Sound System
Exec=/usr/bin/pulseaudio -D
Terminal=false
Type=Application
Categories=
GenericName=
X-GNOME-Autostart-Phase=Initialization
X-KDE-autostart-phase=1

最后重启系统,系统启动时会执行该项(当然,前提是你的系统已经安装配置了XDG)。如果你不想重启就执行/usr/bin/pulseaudio -D手动启动即可。

参考文献

No sound after login – Kali 2016.2
How do you mute from the command line?
How to make PulseAudio run once at boot for all your users
Pulseaudio on root usermode
How to Enable Audio Device in Kali Linux