在 Fedora 16 下,我在这台 Lenovo T520 上听不到任何声音。 alsamixer 中的所有内容均为 100%(pulsaudio 和 card)。我在笔记本电脑上安装了 Windows 7,以检查 Windows 上是否存在同样的问题,但事实并非如此。
有谁知道如何处理这个问题?我已经被这个问题困扰了快一年了,但现在随着东海岸的热浪,我必须开足马力运行空调,但开空调时我听不到任何声音。
大胆地说,我只需混合音量就可以从扬声器中获得高音量。有没有办法在 PulseAudio 和 alsa 之间运行软件放大器来调高音量,或者可以在 alsactl.conf 中执行某些操作以使卡在较低点标准化音量等级?由于这款笔记本电脑在 Linux 用户中很常见,我希望有人能提出一个解决方案。
答案1
我过去曾这样做过,并且在提高音量方面取得了相当大的成功。唯一的问题是,如果您将其调低,则必须返回扬声器图标下的系统首选项,将其调回 150%。
但是,通过以下步骤,从重新启动到重新启动应保持“粘性”。
调高音量
如果您右键单击扬声器小程序并选择声音首选项,您将打开此对话框。
确认并保存更改
将音量一直调到 150%。一旦打开,您就可以关闭该对话框。如果您进入 shell 并键入命令,amixer
您可以确认这一点:
$ amixer
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 98304 [150%] [on]
Front Right: Playback 98304 [150%] [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch cswitch-joined penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 65536
Front Left: Capture 65536 [100%] [off]
Front Right: Capture 65536 [100%] [off]
如果您随后运行此命令,则可以保存此状态,以便下次重新启动系统时,它将成为默认状态。
# saves settings
$ sudo alsactl store
# confirm file's created
$ ls -l /etc/asound.state
-rw-r--r-- 1 root root 4761 Oct 5 16:54 /etc/asound.state
与 amixer 相关的其他东西
您也可以使用该命令amixer
来更改音量。
100%
$ amixer sset Master 100% | grep Front
Playback channels: Front Left - Front Right
Front Left: Playback 65536 [100%] [on]
Front Right: Playback 65536 [100%] [on]
150%
$ amixer sset Master 150% | grep Front
Playback channels: Front Left - Front Right
Front Left: Playback 65536 [100%] [on]
Front Right: Playback 65536 [100%] [on]
笔记:然而,此方法不允许您达到 100% 以上。
沉默的
$ amixer sset Master muted | grep Front
Playback channels: Front Left - Front Right
Front Left: Playback 65536 [100%] [off]
Front Right: Playback 65536 [100%] [off]
取消静音
$ amixer sset Master unmuted | grep Front
Playback channels: Front Left - Front Right
Front Left: Playback 65536 [100%] [on]
Front Right: Playback 65536 [100%] [on]
答案2
据我所知,你可以使用软卷ALSA 插件并设置max_dB
价值。一些方向:
pcm.!default {
type plug
slave.pcm "softvol"
}
pcm.softvol {
type softvol
slave {
pcm "hw:0,0"
# pcm "dmix" or this or the like.
}
control {
name "PreAmp"
card 0
}
min_dB -5.0
max_dB 30.0 # 50.0 is max
resolution 16
}
或许有一些提示也在这里。然后重新加载 alsa,播放例如speaker-test -c2 -twav
以使其加载,然后在 alsamixer 中调整放大器。
如果想关闭 PulseAudio,请记得停用autospawn
。
echo autospawn=no >> ~/.pulse/client.conf
或者在全局中取消注释client.conf
(在/etc/pulse/
等等)。 (也看到一些替换daemon-binary
为/bin/true
。)
然而,使用 pactl 等可能会更可取。
从命令行说:
pactl set-sink-volume 0 65536 # 100%
pactl set-sink-volume 0 98304 # 150%
pactl set-sink-volume 0 131072 # 200%
| |
| +----- Based on volume steps
+------- Sink number
要列出并识别接收器,请说:
pactl list sinks
pacmd list-sinks # a bit more verbose, and list "volume steps"
一如既往,man
并且pacmd -h
。pactl -h
要将默认音量设置为 150%,请编辑./pulse/default.pa
并添加以下行:
set-sink-volume 0 98304
|
+-- (Use full name if one e.g. have multiple USB-soundcards.)
为了方便起见,添加别名或简短脚本以在需要时设置此值。
要重新启动 PA pulseaudio -k
,请说 和pulseaudio --start
。
另一种选择是研究插件,例如 LADSPA 和SHW在阿尔萨斯或者脉冲音频。
编辑:
好的。来思考一下。这可能是合适的。(不知道我第一次是怎么逃脱的。)
- 在
default.pa
添加一个脉冲音频模块来自设备驱动程序。 - 重新启动脉冲音频。
- 打开声音设置并设置音量原来的水槽例如150%。 (或者通过命令行执行此操作或
default.pa
如上所述进行预设。) - 选择新模块/接收器作为声音输出设备。
使用时这将为您提供 150% 和 100%普通的音量计。
示例 – 使用module-remap-sink
:
做不是正如文档所说,取消注释。
在default.pa
:
.ifexists module-remap-sink.so
# Using remap-sink as dummy, not doing any re-mapping.
load-module module-remap-sink sink_name=VolDummy master=0 sink_properties=device.description=CrankThaVolume
.fail
.endif
# Set it as default:
set-default-sink VolDummy
然后重新启动 Pulse Audio 以注册新模块。
发行:
$ pactl list modules # Should show "Usage counter: 1" for the module in question.
$ pactl list sinks
应该显示一个新水槽。您仍然可以调高音量掌握通过使用命令行和/或向default.pa
.
答案3
从命令行运行 alsamixer 时,请务必使用开关运行,--view all
以确保您正在查看所有可用的混音器控件。
alsamixer -V all
另外,在 alsamixer 中按 F6 并检查列出的每个设备的设置。
答案4
我在 Fedora 18 中曾经遇到过类似的问题。原来 Google 的“pepperbox”Flash API 在声音方面存在一些严重问题,我通过进入 /home//.config/google-chrome 并杀死 PepperFlash,然后重新安装来解决它Adobe 的 Flash 插件。