改用oss4声卡驱动 让linux上有天籁之音

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
shimingzhou
帖子: 257
注册时间: 2008-06-28 6:14
送出感谢: 1 次
接收感谢: 6 次

改用oss4声卡驱动 让linux上有天籁之音

#1

帖子 shimingzhou » 2015-07-29 23:54

linux系统默认的驱动是alsa,在应用程序和alsa之间还夹杂着pulseaudio这一层。虽然能发声,但声音音质就是不清澈。从2008年来一直用linux,每次都忍受不了alsa的音质,都将驱动更换到oss4。oss4的音质和alsa的音质是天壤之别,让我20块钱买的es1370古董声卡以及板载的alc889a声卡发出的声音比window下的还要好。基本上我听歌曲都是在linux下听。oss4的声音特点是清澈、无渲染味,声音很自然舒服,能将声音乐器的细节分辨得很清楚,特别是听无损音乐的时候,那是一种享受。
方法:

git clone git://git.code.sf.net/p/opensound/git
cd git
mkdir build
cd build
../configure --config-midi=YES
make
make installload-module module-oss device="/dev/dsp" sink_name=output source_name=input mmap=0
重启后ok。

为了让使用alsa的应用程序正常出声,需要编辑 /etc/asound.conf,让alsa应用程序通过oss驱动。


pcm.oss {
type oss
device /dev/dsp
}

pcm.!default {
type oss
device /dev/dsp
}

ctl.oss {
type oss
device /dev/mixer
}

ctl.!default {
type oss
device /dev/mixer
}



但是oss4驱动有个缺点,不支持休眠。我写了个脚本 文件 ,命名为: 06oss ,放在/etc/pm/sleep.d/ 目录下,并赋予执行权限。这样子能够休眠后能正常发声,但是占用声卡的程序睡眠(休眠)时会被杀死。
我经常听音乐,所以我希望混音采样率为44100。
可以用命令 vmixctl rate 44100 /dev/dsp 来设置。也可将命令放到/usr/lib/oss/soundon.user中,并赋予文件可执行权限。为了让使用alsa的应用程序也使用44100采样率,可以修改/usr/share/alsa/alsa.conf文件,将defaults.pcm.dmix.rate 48000 改为: defaults.pcm.dmix.rate 44100。


使用pulseaudio的发行版,如果想继续使用pulseaudio,需要修改/etc/pulse/default.pa的配置文件,并设置一行:
load-module module-oss device="/dev/dsp" sink_name=output source_name=input mmap=0。
onlylove
论坛版主
帖子: 4669
注册时间: 2007-01-14 16:23
送出感谢: 1 次
接收感谢: 122 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#2

帖子 onlylove » 2015-07-30 1:05

我其实就是想知道,你们怎么听出音染的……我不是玄学党 :em20
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
shimingzhou
帖子: 257
注册时间: 2008-06-28 6:14
送出感谢: 1 次
接收感谢: 6 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#3

帖子 shimingzhou » 2015-07-30 13:12

同样的设备同样的耳机和音箱,一听就区分出来了。alsa对于某些音乐的细节甚至表现不出,而oss4口水声都表现得很好。特别是用原生支持oss4的播放器,那很明显。我用重新编译启用oss4输出的audacious来播放。gstreamer增加oss4模块输出。alsa的音质明显浑浊干涩,在同样音量下,oss4明显比alsaoss4清澈,音场宽广洪亮,人声清晰,细节分辨性好。去掉pulseaudio,直接启用alsa,音质比pulseaudio好,但启用oss4后音质更好。在听无损音乐时,就能体会出来了。
shimingzhou
帖子: 257
注册时间: 2008-06-28 6:14
送出感谢: 1 次
接收感谢: 6 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#4

帖子 shimingzhou » 2015-07-30 13:25

对用systemd的用户,我写个脚本,放到/usr/lib/systemd/system-sleep目录下,也可以正常休眠,但同样需要杀死占用声卡的进程。
shimingzhou
帖子: 257
注册时间: 2008-06-28 6:14
送出感谢: 1 次
接收感谢: 6 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#5

帖子 shimingzhou » 2015-07-30 13:25

#!/bin/sh
# resume oss4 sound system
PATH=/usr/bin/:/bin:/sbin:/usr/sbin:$PATH

. /usr/lib64/pm-utils/functions
#. "${PM_FUNCTIONS}" || . "${FUNCTIONS}"
case "$1" in
post)
#if alsa driver in use, we just leave
OSSMODULES=`/sbin/lsmod |grep ^oss|cut -d' ' -f1 |sed '{:q;N;s/\n/ /g;t q}'`

if [ "A$OSSMODULES" != "A" ] ; then
/usr/lib/oss/scripts/killprocs.sh
rmmod $OSSMODULES
/usr/lib/oss/scripts/killprocs.sh
rmmod $OSSMODULES
modprobe -a $OSSMODULES
fi
service oss restart
savemixer -L
#重新设置音量
#/usr/bin/osssetup
echo
;;
pre)
#service pulseaudio stop
#service esd stop
OSSMODULES=`/sbin/lsmod |grep ^oss|cut -d' ' -f1 |sed '{:q;N;s/\n/ /g;t q}'`
if [ "A$OSSMODULES" != "A" ] ; then
/usr/sbin/savemixer
/usr/lib/oss/scripts/killprocs.sh
service oss stop
/usr/lib/oss/scripts/killprocs.sh
rmmod -a $OSSMODULES
rmmod -a $OSSMODULES
rmmod -a $OSSMODULES
fi
echo
;;
*) exit $NA
;;
esac
头像
百草谷居士
帖子: 3152
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 27 次
接收感谢: 36 次
联系:

Re: 改用oss4声卡驱动 让linux上有天籁之音

#6

帖子 百草谷居士 » 2015-07-30 14:49

看起来好复杂的样子,能不能直接使用apt从软件源中安装oss4驱动。我看有oss4-base,oss4-dev,oss4-gtk,oss4-dkms,oss4-source等软件包。
Ubuntu 19.04
米聊群:Ubuntu交流群,ID:50326269。注册米聊用户后可以搜索加入,即时通讯,沟通更快捷
头像
nyfair
帖子: 1065
注册时间: 2007-12-07 12:49
系统: winnux10
来自: Tree New Bee
送出感谢: 2 次
接收感谢: 13 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#7

帖子 nyfair » 2015-07-31 12:22

这贴必须顶,详情看我签名
本人在此论坛仅负责吐槽,问题急需解决请支付宝转账5毛至{我的id@qq.com},将会竭诚为您服务

linux常见多媒体问题处理指南

1. 视频播放有问题->卸载gstreamer
2. 音频播放有问题->卸载pulseaudio
3. 远程播放有问题->卸载avahi
4. 系统全都有问题->卸载systemd,远离Lennart这傻逼让你从此轻松自在

⇩自由网络⇩
https://github.com/nyfair/freeweb
shimingzhou
帖子: 257
注册时间: 2008-06-28 6:14
送出感谢: 1 次
接收感谢: 6 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#8

帖子 shimingzhou » 2015-07-31 14:54

百草谷居士 写了:看起来好复杂的样子,能不能直接使用apt从软件源中安装oss4驱动。我看有oss4-base,oss4-dev,oss4-gtk,oss4-dkms,oss4-source等软件包。
可以。不过不知道系统自带的oss4能不能正常编译内核模块。
lord007
帖子: 555
注册时间: 2009-07-13 21:54
送出感谢: 11 次
接收感谢: 10 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#9

帖子 lord007 » 2015-07-31 20:51

还有这事?为什么各大发行版没用oss呢?
------------------
http://www.opensound.com/forum/viewtopic.php?t=5191
上次由 lord007 在 2015-07-31 21:34,总共编辑 1 次。
南无阿弥陀佛
头像
duguyipiao
帖子: 157
注册时间: 2011-09-13 10:31
送出感谢: 1 次
接收感谢: 18 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#10

帖子 duguyipiao » 2015-07-31 20:57

WARNING:Canonical/Ubuntu has chosen to disable OSS support in their kernels and ignore any bugs filed against OSS4 packages. If you're considering using OSS4, you should probably use another Linux distro like Arch Linux. This page remains for historical/reference reasons.
https://help.ubuntu.com/community/OpenSound
lord007
帖子: 555
注册时间: 2009-07-13 21:54
送出感谢: 11 次
接收感谢: 10 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#11

帖子 lord007 » 2015-07-31 21:48

shimingzhou 写了:
百草谷居士 写了:看起来好复杂的样子,能不能直接使用apt从软件源中安装oss4驱动。我看有oss4-base,oss4-dev,oss4-gtk,oss4-dkms,oss4-source等软件包。
可以。不过不知道系统自带的oss4能不能正常编译内核模块。
系统自带的还是比较新的,OSS v4.2 build 2010
https://launchpad.net/ubuntu/vivid/+sou ... +changelog
不知道系统自带的装好后,还要不要配置这么多?
南无阿弥陀佛
onlylove
论坛版主
帖子: 4669
注册时间: 2007-01-14 16:23
送出感谢: 1 次
接收感谢: 122 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#12

帖子 onlylove » 2015-07-31 22:17

lord007 写了:还有这事?为什么各大发行版没用oss呢?
------------------
http://www.opensound.com/forum/viewtopic.php?t=5191
这是历史问题,oss是很早的时候被剥离的,因为,据说那时候OSS要玩闭源,然后后来才有了alsa
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
shimingzhou
帖子: 257
注册时间: 2008-06-28 6:14
送出感谢: 1 次
接收感谢: 6 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#13

帖子 shimingzhou » 2015-07-31 22:26

lord007 写了:
shimingzhou 写了:
百草谷居士 写了:看起来好复杂的样子,能不能直接使用apt从软件源中安装oss4驱动。我看有oss4-base,oss4-dev,oss4-gtk,oss4-dkms,oss4-source等软件包。
可以。不过不知道系统自带的oss4能不能正常编译内核模块。
系统自带的还是比较新的,OSS v4.2 build 2010
https://launchpad.net/ubuntu/vivid/+sou ... +changelog
不知道系统自带的装好后,还要不要配置这么多?
还是要配置一下的,估计可以看网络oss4 配置的arch 文档。写得很详细。
lord007
帖子: 555
注册时间: 2009-07-13 21:54
送出感谢: 11 次
接收感谢: 10 次

Re: 改用oss4声卡驱动 让linux上有天籁之音

#14

帖子 lord007 » 2015-07-31 23:09

搜到教学区有个详细介绍贴:教程:在 Ubuntu 上换用 OSS4 声音系统
不过帖子较老,有些步骤都做不了了。比如装完 gstreamer0.10-plugins-bad,没有 gstreamer-properties 命令可以运行
------------------------------------------------
在 ubuntu-gnome 15.04 上折腾完了。大致步骤如下: :em11

1. 安装 oss4-base oss4-dkms oss4-gtk pm-utils
2. 音频配置如楼主
3. 加入 audio 用户组
4. 睡眠支持,略做修改:
$ cat /lib/systemd/system-sleep/06oss4.sh
#!/bin/sh
# resume oss4 sound system
PATH=/usr/bin/:/bin:/sbin:/usr/sbin:$PATH

# need package "pm-utils"
. /usr/lib/pm-utils/functions
#. "${PM_FUNCTIONS}" || . "${FUNCTIONS}"
killprocs() {
fuser -k /dev/mixer* /dev/dsp* /dev/sequencer /dev/midi* 2>/dev/null
}

case "$1" in
post)
#if alsa driver in use, we just leave
OSSMODULES=`/sbin/lsmod |grep ^oss|cut -d' ' -f1 |sed '{:q;N;s/\n/ /g;t q}'`

if [ "A$OSSMODULES" != "A" ] ; then
killprocs
rmmod $OSSMODULES
killprocs
rmmod $OSSMODULES
modprobe -a $OSSMODULES
fi
service oss4-base restart
#重新设置音量
savemixer -L
;;
pre)
OSSMODULES=`/sbin/lsmod |grep ^oss|cut -d' ' -f1 |sed '{:q;N;s/\n/ /g;t q}'`
if [ "A$OSSMODULES" != "A" ] ; then
/usr/sbin/savemixer
killprocs
service oss4-base stop
killprocs
rmmod -a $OSSMODULES
rmmod -a $OSSMODULES
rmmod -a $OSSMODULES
fi
echo
;;
*) exit $NA
;;
esac
上次由 lord007 在 2015-08-01 9:49,总共编辑 2 次。
南无阿弥陀佛
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: 改用oss4声卡驱动 让linux上有天籁之音

#15

帖子 jarryson » 2015-08-01 1:18

下意识看了看发帖日期。。。结果还是最近的。

很早见过类似的帖子惹
回复

回到 “软件推荐”