本帖最后由 小偷 于 17-4-7 18:10 编辑
一切的开端:Linux音频系统的调教
调教方法我是对wiki的翻译与搬运整理。论坛没有代码框,不能整理美观了,请到我的博客看看。:D
原文在我的博客
http://lado.me/2017/4/6/configure-the-linux-audio-system
关注Linux+音乐,大家一起撩骚吧。
以下命令默认用户名为 tee,需要自行替代为自己的用户名。
为了避免命令的差异,假设你的系统跟我以及大部分人使用的一样,都是使用systemd,都支持cpu调节成最大效能效能。
强烈建议所有的文件操作,都把原文件进行备份。
假如你遇到了问题,在最上方的About页面的邮箱联系我进行交流吧!
把自己添加到audio用户组tee是我的用户名
sudo usermod -aG audio tee
增加threadirqs到内核参数sudo vim /etc/default/grub
在配置文件找到GRUB_CMDLINE_LINUX_DEFAULT,添加threadirqs参数,下面是例子。
GRUB_CMDLINE_LINUX_DEFAULT="quiet threadirqs"
重新生成grub.cfg文件
grub-mkconfig -o /boot/grub/grub.cfg
CPU调频到最大效能使用cpupower工具把governors设置为performance,即最大效能。
安装cpupower
- Arch Linuxsudo pacman -S cpupower
- Ubuntusudo apt-get install linux-tools-common linux-tools-$(uname -r)
修改cpupower配置文件,添加或修改governor这一行
sudo vim /etc/default/cpupowergovernor='performance'
最后启用cpupower的service
sudo systemctl enable cpupower
提高文件系统性能noatime选项能提高文件系统的性能
sudo vim /etc/fstab
把noatime添加到options列,范例里/dev/sda2是我的根目录,/dev/sda4是我的home目录。
# # /etc/fstab: static file system information## <file system> <dir> <type> <options> <dump> <pass># /dev/sda2UUID=45da8912-3dbc-4793-bff6-d28f868e35d8 / ext4 rw,relatime,data=ordered,noatime 0 1# /dev/sda4UUID=16436bfd-5b02-4da8-85ec-03c7ab7f0976 /home ext4 rw,relatime,data=ordered,noatime 0 2
增加最新请求的RTC中断频率默认频率是64hz。先使用su命令,进入管理员权限才能操作。
echo 2048 > /sys/class/rtc/rtc0/max_user_freqecho 2048 > /proc/sys/dev/hpet/max-user-freq
修改交换分区频率与inotify交换分区频率是由swappiness定义的,默认是60,修改为10,在硬盘写入之前,系统会等待更久一些。
还有一个inotify用来发现app请求的文件修改,如果有大量的音频数据在操作,这个inotify需要调更高。
这两个设置都可以设置在做/etc/sysctl.d/99-sysctl.conf
sudo vim /etc/sysctl.d/99-sysctl.confvm.swappiness = 10fs.inotify.max_user_watches = 524288
安装Linux-rt内核(可选)注意!这个是可选的,lowlatency的内核也能获得较低的延迟。有的nVidia或AMD/ATI显卡驱动在rt内核会不工作。
如果你了解到你的显卡在rt内核上工作良好,或想一尝新鲜,继续吧。我的Intel显卡工作很良好。
- Arch Linuxyaourt linux-rt
- Ubuntusudo apt-get install linux-realtime linux-headers-realtime
更新grub配置
sudo grub-mkconfig -o /boot/grub/grub.cfg
其他的可选项使用Quickscan脚本检查设置这个脚本是perl语言写成的,需要先安装perl。如果没有git也需先安装git。
- Arch Linuxsudo pacman -S perl git
- Ubuntusudo apt-get install perl git-all
获取脚本并运行
git clone git://github.com/raboof/realtimeconfigquickscan.gitcd realtimeconfigquickscanperl ./realTimeConfigQuickScan.pl
在运行结果中看有没有not good的,如果只有RT内核检测是not good,你也不需要RT内核,就完满成功啦!
参考一下我的检测结果:
== GUI-enabled checks ==Checking if you are root... no - goodChecking filesystem 'noatime' parameter... 4.10.6 kernel - good(relatime is default since 2.6.30)Checking CPU Governors... CPU 0: 'performance' CPU 1: 'performance' CPU 2: 'performance' CPU 3: 'performance' - goodChecking swappiness... 10 - goodChecking for resource-intensive background processes... none found - goodChecking checking sysctl inotify max_user_watches... >= 524288 - goodChecking access to the high precision event timer... readable - goodChecking access to the real-time clock... readable - goodChecking whether you're in the 'audio' group... yes - goodChecking for multiple 'audio' groups... no - goodChecking the ability to prioritize processes with chrt... yes - goodChecking kernel support for high resolution timers... found - goodKernel with Real-Time Preemption... not found - not goodKernel without real-time capabilities foundFor more information, see
http://wiki.linuxaudio.org/wiki/ ... time_kernelChecking if kernel system timer is high-resolution... found - goodChecking kernel support for tickless timer... found - good== Other checks ==Checking filesystem types... ok.ok.
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x