分类 视频脚本 下的文章

视频点此

如果你想使用你的硬盘,格式化是必须要进行的一个步骤。格式化时,总会接触到一个选项:磁盘类型——或者叫文件系统。现如今,有一堆的文件系统可供选择,至于使用哪种,就要取决于你的操作系统和正在格式化的介质是什么了。举个例子,在我的arch上,我想格式化我的U盘,我可以选择FAT32、NTFS、EXT4等等。所以,到底要怎么选择使用的文件系统呢?

我不打算介绍原理,一来很枯燥,二来我也不懂。这里只介绍一下来源和主要的功能特性供了解即可。当然,市面上的文件系统有很多,而大多数又并不常用——或者说,当下被人们熟知的只有NTFS这个文件系统吧…因此只说一些你听着可能会听亲切的文件系统们,罕见的就不提了。

再来简单说一句,为什么需要有文件系统?文件系统的工作,就是把硬盘扇区按组结合成更大的独立单位——称为簇或者块,并建立每个文件所在的组的索引。这部分具体的可以翻看我之前说过的硬盘分区相关内容。

一、FAT家族

FAT家族是DOS和Windows系统的第一款文件系统,全称File allocation table,文件分配表——系统。它有3个主要的版本:FAT12、FAT16和FAT32. 数字增大不止意味着版本更新,可以包含的簇数量、最大文件和最大分区大小也是逐次增大的。

FAT12,按簇大小8K来计算,最大文件和最大分区容量都可以支持到32M,而4KB的簇,最大只支持到16M。

FAT16,不同的簇大小也有不同的结果。最大文件体积可能是2G,可能是4G,而分区大小最多最多可以支持到16G。但16G的情况下,簇大小被分配到了256k,内部碎片是很多的。

FAT32,相对前两个FAT版本会更为人熟知吧,毕竟现如今也在应用之中。这种FAT文件系统,最大文件4G,而理论上的最大分区可以支持到16T——相比FAT16是很惊人的提升——然而,数字变大的时候,理论和实际之间就出现了很大的偏差。对于windows系统,FAT32分区最大只能到32G,而其他的操作系统,FAT32分区最大只能到2T。可见分区容量瓶颈从文件系统短板转变成了操作系统短板了。但是,得益于FAT32几乎全平台的支持,且支持的最大分区容量足够高——当然我指的是非windows平台——这个文件系统至今也是比较流行的文件系统之一。一个很明显的例子:EFI启动的主板,启动分区一定是FAT32的——虽然16也可以。

二、NTFS

FAT32在windows上的容量短板促使微软推出了更完善,更强大的文件系统。这种文件系统也是微软家族至今在使用的文件系统:NTFS(New Technology File System)。这个文件系统于1993年推出,目的就是为了解决FAT32的限制。NTFS的提升很大,单文件大小支持到了16EB,可以说没有文件大小限制了。NTFS是一个日志文件系统,说人话就是它维护着一个磁盘操作记录,这保证了它可以在系统崩溃或意外断电之后,对文件进行复原以保证数据的完整性。相对于FAT32,NTFS还支持权限和加密功能,比如可以给一个文件只读属性,那么删除和修改等等就不能进行了。这可以更方便的保证操作系统本身不被破坏掉,因此现如今的windows会强制使用NTFS分区作为系统分区。

NTFS确实不错,但是它在非windows平台的兼容性并不理想:最简单的例子,对于macos和老版本的Linux,NTFS在默认情况下对它们来说是只读的文件系统。而对于比如mp3、mp4这种独立的媒体播放器来说,NTFS直接就不能读取了。

三、exFAT

为了解决FAT文件系统的瓶颈,微软还有另一条分支线路:exFAT(extended FAT)。这种文件系统由微软在2006年推出,主要应用在U盘一类的移动存储介质上面。这种文件系统没有NTFS那么复杂,但是相对于FAT32同样有着一个很显著的优势:单文件大小最大同样支持到了16EB。而且它相对于NTFS有着更广泛的平台兼容性:对于macos,这个文件系统可以直接读写,而近些版本的安卓同样支持了这个文件系统。对于Linux,之前需要单独安装由三星开发的exFAT的驱动模块。而去年微软开放了exFAT并将其添加到了Linux内核中,预计从Linux5.7内核开始,exFAT的驱动将换成微软的代码,且将实现开箱即用,低复杂度、几乎无限大的文件体积支持,又有着广泛的兼容性,显然,这个文件系统是移动存储介质——包括SD卡的最佳选择。

四、ext家族

现在,回到Linux。1992年,针对Linux的extened file system(EXT)文件系统开始开发,并于1993年发布了ext2文件系统。这个在当时成为了很多发行版默认的文件系统。2001年,这个文件系统同样增加了日志功能,名称变更成了ext3。2008年,ext4发布,同时,这个文件系统也成为了Linux的默认文件系统。EXT4,单文件最大支持16T,分区容量支持到1EB。但是,因为是针对Linux出现的文件系统,ext家族都不能原生支持windows和macos——当然,可以通过软件实现访问,但是并不推荐。

五、苹果家族

1985年,苹果推出了自己的文件系统:HFS(Hierarchical File System)。它支持单文件2G,分区最高2T。1998年,文件系统加入了日志功能,并且对于macos10.4以后的版本来说,单文件和分区容量支持提升到了8EB,这个文件系统被命名为HFS+。2017年,苹果宣布了一个专为SSD或者其他固态存储设备设计的新文件系统APFS(Apple File System)。当然,这些文件系统都是苹果自己的产品,所以这三种文件系统均不支持微软平台和Linux平台。

六、选择

所以要怎么选择分区的文件系统呢?对于系统分区,windows7以上必须使用NTFS,Linux系统,ext4是最简单的。也可以选择其他的类型,但是可能需要自己单独增加一些内核模块以保证支持使用的文件系统。而苹果,HFS+或者APFS就无所谓了。不过APFS可能更先进一些吧?

对于U盘,如果容量低于32G,FAT32可能是更好的选择,因为它的平台兼容性是最强的。而对于32G以上容量的U盘,或者你的U盘需要存储大于4G的单个文件,那么exFAT就是一个好选择了。就我个人的经验来说,最好不要将NTFS应用到U盘的文件系统上,因为有时候会出现莫名其妙的权限问题导致U盘不可用。

对于其他分区或者移动硬盘,NTFS自然是最适合用在windows系统上面的了。而如果你需要经常在windows和mac之间交换数据的话,exFAT是一个不错的选择——加上Linux也一样。对于Linux,虽然NTFS也可以用在Linux上面,但是会出现莫名其妙的写入错误——比如说当你使用Steam Linux安装CSGO到一个NTFS的游戏库中时,你将永远得到一个“校验失败“的提示。所以,如果你的Linux有不同的分区,请让它们使用非NTFS的、Linux支持的文件系统。

视频点此

很早的时候,我曾经出过一期内容关于如何用ffmpeg保存b站的直播,但是前些日子有朋友跟我反应说现在会403了。想想也很正常,毕竟如果都那样做的话,主播就没有人气了。但是b站直播现在并没有回放功能,所以我如果想保存的话要怎么办呢?那今天给出一个可以算是两全其美的办法 既可以保存下来直播的内容,又不会影响主播真实的人气。

其实方法很简单,但是我很纳闷为什么一直就没有人会想到这个方法。总共就三个步骤。

首先在主播的直播间页面打开万能的f12。所以推荐使用chrome浏览器完成。

切换到network标签,刷新一下。

会有一个一直在请求的项目,复制这个项目的地址到地址栏,回车。

好了,弹出下载对话框了,选择一个位置保存吧。

究其原因,403是请求被拒绝,那原因可能就在于现在加入了请求来源的认证,必须是你已经登陆的用户或者说浏览器访问,所以浏览器可以下载保存。也正因此如果用迅雷之类的下载软件的话可能就不能完成这操作的了。

这个优势和使用之前的ffmpeg一样,不会因为主播或自己的网络问题导致录屏卡顿。同时因为这种下载的本质就是在看直播,只不过是不发弹幕不刷礼物的看直播,所以主播的观看人数可以保证,但人气会受到影响。所以能看直播还是直接看直播吧,这是对主播最直接的支持。

相比ffmpeg,这种方法避免了命令行操作,所以使用上来讲会更简单。但是简单的同时,这种因为需要手动操作,所以不能做到ffmpeg可以实现的定时录制。

同时,和ffmpeg一样,你并不能保存弹幕。

那如果想要定时录制的话,还是需要用ffmpeg。那因为现在加入了认证,所以我们需要把认证伪装成浏览器。换句话说,需要正经的请求头。但是毕竟加上了认证,说明ffmpeg拉流确实会有利益和版权之类的问题,所以我就不再细说了,只给出一个小提示:ffmpeg加请求头的参数是-header,至于怎么用就不要再问我了。

视频点此

网课、开会、直播,总会要求有电脑摄像头。但是为这一段时间而单独购买一个摄像头不值当,就不如让手机来完成这一角色,画质还好。

一、电脑端

Archlinux通过AUR安装,其他发行版就自己找一找吧。

AUR安装DroidCam。注意编辑PKGBUILD,将headers的依赖修改为与你的内核相对应的版本。比如默认的linux内核就保持默认的linux-headers依赖,lts内核就改成linux-headers-lts,以此类推。

完成后重启,载入模块sudo modprobe v4l2loopback_dc

二、手机端

搜索安装droidcamx即可。

三、使用

现在,将电脑和手机连入同一个局域网,启动手机应用,会给出ip和端口号。启动电脑端程序,将给出的ip和端口号填入,连接。

你会发现手机端启动相机功能了。那么如何在电脑上使用它呢?

只需要打开任何一款有视频捕获功能的程序,比如OBS,新建视频捕获设备(V4L2),其中的设备选择v4l2loopback一项,确定。你会发现你的手机已经作为电脑摄像头使用了。但是你会发现,这个镜头的分辨率很低,有没有办法提高它呢?

四、提升分辨率

很简单。首先关闭所有正在使用摄像头的程序,然后停止内核模块:sudo rmmod v4l2loopback_dc

编辑/etc/modprobe.d/droidcam.conf,将其中的widthheight修改为自己想要的宽高比,保存(没有这两个参数则直接写入即可)。需要注意,免费版程序只能用4:3的分辨率,其他比例的分辨率会拉拉伸画面。

再次启用模块:sudo modprobe v4l2loopback_dc,重新打开捕获程序,分辨率就提高了。

最后,就像前一篇文章。如果你的AUR获取有问题,那么可以尝试使用我这里提供的两个源文件:icon2.pngdroidcam.tar.bz2。或者你可以直接使用我编译好的droidcam-6.7.5-4-x86_64.pkg.tar.xz安装。但由于每个人的电脑环境不同,这个不能保证可以正常使用——尤其是非lts内核的用户。

视频点此

有没有想过,当系统出现了内核级别的错误导致完全卡死时还可以自动重启,甚至还能提供一份出错时候的系统快照让你发现出错的位置?对于Windows,内核错误往往会伴随着蓝屏的出现,并提示错误代码。蓝屏的时候有部分情况可以做到自动重启,但大多数情只会卡在蓝屏界面,等待用户手工操作。对于Linux,因为内核的稳定性,出现这种层次的错误在日常应用中几乎遇不到。而一旦遇到,就直接卡死没有任何提示,这会让错误排查变得很困难。而由于驱动的缺陷,确实会有一些电脑的配置让Linux内核运行不稳定导致系统完全无响应的现象频发。所以在这种情况下,自动重启并提供错误文件就十分必要了。那有办法实现吗?有。今天就跟着我打造一个内核保姆吧。可能稍微的硬核一点儿…有些硬核…或者说…还蛮硬核的。

思路

就像最近报道的美国“末日计划”,一旦主领导人遭遇不测,则北方司令部司令可临时替代总统,直到新的领导人产生。这种内核也一样。在正常的内核里边嵌入另一个崩溃拯救内核待命。一旦正常的内核卡死,则自动启动拯救内核,在这个内核下导出当前崩溃的系统环境并重启回正常的内核。还挺好理解的吧?

方法

理解了思路就可以开始制作了。注意,我是Arch系统。对于RedHat和Debian分支,只可做参考。因为部分操作在其他发行版不适用,部分操作不需要像Arch这么麻烦。

再来约定两个内核的名字吧:正常使用的内核叫主内核,崩溃时启动的内核就叫拯救内核。

1、准备需要的软件包

asp   //获取内核源文件的工具
base-devel  //编译依赖包
pacman-contrib  //更新MD5工具
kexec-tools  //将拯救内核注入到主内核的工具
makedumpfile  //精简快照文件体积,通过AUR安装

安装好这些软件包,就可以正式开始了。

2、获取内核源码

因为这个内核需要我们自己编译出来,所以它并不会跟随源的更新而更新,因此我推荐用长期支持内核作为模板进行编译,并且除非出现异常,否则就一直用就可以了。为了方便,可以通过官方的内核模板来制作这个内核。这里假设在~/build/文件夹下执行下面的指令。

asp update linux-lts
asp export linux-lts

3、修改模板

与一般的内核不同,拯救内核需要修改一些参数以开启错误快照功能。编辑~/build/linux-lts/config,修改下述参数并保存。

CONFIG_DEBUG_INFO=y
CONFIG_CRASH_DUMP=y
CONFIG_PROC_VMCORE=y

再编辑相同文件夹下的PKGBUILD,修改下述内容并保存。

pkgbase=你自定义一个包名以区分一般的内核。比如叫linux-dump

4、更新MD5并开始编译

现在终端进入~/build/linux-lts,输入命令updpkgsums完成更新,再输入makepkg -s --skippgpcheck开始编译。

你可能会发现,这其实就类似手工安装AUR的过程。所以在这一步进行的时候,如果发现下载内核源码相关文件的过程太慢,可以参考我以前说过的内容,通过事先下载的方法来解决。

而且因为是编译内核,所以这个过程消耗的时间并不短,具体时间就看你的电脑配置了,一般应该差不多一个小时的时间吧。

5、安装自定义内核

漫长的等待之后,你会在~/build/linux-lts下面发现两个.tar.xz文件。现在你要做的,就是使用pacman -U 两个文件名来安装上编译好的内核。

由于没有做优化,所以这个内核的fallback文件会很大导致EFI分区可能不够进而提示错误。但无需担心,主要的内容已经安装完成,我们可以进入/boot将fallback删除掉。

内核安装完成。如果你想确定一下是否已经安装成功,可以直接更新grub文件,然后选择这个自定义内核启动,或者如果你会临时修改grub启动项参数的话,可以直接修改来临时测试一下,因为一般用不到这个内核做引导。

然后,去往~/build/linux-lts/src/唯一的那个文件夹/下,将vmlinux拷贝出来备用——如果你想做内核Debug而不单单只是做崩溃重启来用的话。

6、添加内存参数

虽然崩溃内核在主内核崩溃时才启动,但还是需要实现为其分配内存空间以保证它可以随时拥有足够内存来启动,因此需要在主内核增加参数来空出一部分内存。这也意味着这部分内存在主内核中就不能被使用了。编辑/etc/default/grub,修改如下参数并保存:

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet crashkernel=256M@16M"

crashkernel部分是新增的,意思为从内存的16M地址位置开始,向后空出256M的内存区域。

之后,使用grub-mkconfig来更新grub文件。

现在重启电脑,浏览/proc/iomem文件,如果有一行为Crash kernel,则证明主内核已经为拯救内核分配了空闲空间,修改成功了。

7、制作服务

到此就已经完成了大部分困难的工作了,接下来只需要制作两个服务,让拯救内核自动部署,卡死时自动导出错误快照并重启即可。

先来制作自动导出快照和重启的服务。将下述内容保存为/etc/systemd/system/kdump-save.service

[Unit]
Description=Create dump after kernel crash
DefaultDependencies=no
Wants=local-fs.target
After=local-fs.target

[Service]
Type=idle
ExecStart=/bin/sh -c 'mkdir -p /var/crash/ && /usr/bin/makedumpfile -c -d 31 /proc/vmcore "/var/crash/crashdump-$$(date +%%F-%%T)"'
ExecStopPost=/usr/bin/systemctl reboot
UMask=0077
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit

通过这个服务,可以实现每当主内核出现错误,拯救内核启动时,将当前的环境快照保存到/var/crash/下,命名为crash-dump-日期时间,然后重启系统。

千万不要在主内核启动这个服务。否则你会陷入无限重启,无法自拔。

然后制作自动加载拯救内核的服务。将下述内容保存为/etc/systemd/system/kdump.service

[Unit]
Description=Load dump capture kernel
After=local-fs.target

[Service]
ExecStart=/usr/bin/kexec -p [/boot/vmlinuz-linux-dump] --initrd=[/boot/initramfs-linux-kdump.img] --append="root=[root-device] systemd.unit=kdump-save.service irqpoll maxcpus=1 reset_devices"
Type=oneshot

[Install]
WantedBy=multi-user.target

其中:

  • [/boot/vmlinuz-linux-dump] 为你的拯救内核vmlinuz文件的文件名,一般是在boot目录,但名称是你自己定的
  • [/boot/initramfs-linux-kdump.img] 同理
  • [root-device] 为你的/挂载点设备
  • 真正编写时,将上述的三个位置换成自己的,并且不需要中括号

然后,通过systemctl enable kdump实现启动时自动部署拯救内核。

现在,重启你的电脑,查看/sys/kernel/kexec_crash_loaded文件,如果显示1,则证明拯救内核已经加载,双内核保障系统就建设完成了。

8、测试

接下来就是激动人心的测试环节。但正常使用的系统稳的一批,因此我们可以手工让内核出错,从而触发这个拯救机制来测试。但为了看效果,推荐进入到tty界面测试,图形界面只会在卡死一段时间后自动重启而看不到任何过程。

  1. 登录tty界面
  2. 提权到超级用户sudo su
  3. 手工输入一个错误的系统调用,使内核崩溃echo c > /proc/sysrq-trigger

好了,现在你已经手工让内核崩溃掉了。你会发现,在崩溃的一瞬间,拯救内核开始启动,并将错误内容导出,然后将你的电脑重启了。

至此,一个双内核加持的系统便制作完成了。不知你看没看出来,无论是各种载入状态的判断,还是让内核崩溃,都体现了一切皆文件的精髓:不管干什么,其本质都是在读写文本文件。而且你应该还可以发现,除了导出错误之外,因为可以自动重启,所以它还能为服务器做到错误自动恢复的功能。但到底要如何用好这个第二内核,就看你自己了。


如果你有耐心看到了这里,或者说你真的从视频跳到这里了,那么恭喜你,这里有5.4.28长期支持版本的编译文件,你可以直接下载而无需等待AUR从外网下载了。

地址:https://pan.baidu.com/s/1O8tkjjAKB-93clV1_Wm_JQ

提取码:6gfb

视频点此

如果你想在手机和电脑之间互传文件,你会怎么做?

电脑端查看手机的短信、电话、应用通知等,你会怎么做?

反之,手机查看电脑端通知,你会怎么做?

如果你躺在床上用电脑看剧,都要准备什么东西放在身边?

只需要一个程序就够了。

KDE Connect是KDE桌面环境的一个配套小插件,但与其说是一个电脑手机同步的工具,我更偏向于将其描述为一个促使电脑手机完全融合操作的小程序。接下来具体看看如何安装和使用。

一、安装

电脑端,只需要安装kdeconnect即可。Win、OS X也兼容。如果你是完全安装状态的KDE桌面,那么这个插件应该默认就是安装好的。而且可能只有KDE桌面支持全部功能。

手机端,下载KDE Connect工具并安装。仅支持安卓,你可以通过play商店安装。同时,之后使用的时候可能需要你允许一些权限,按照提示操作即可。

接下来,手机和电脑连入同一个局域网中,并启动各自的程序,手机端便可以看见电脑端的入口了。第一次启动会申请配对,电脑端同意即可。

至此,手机和电脑便关联起来了。

二、功能

它有很多功能可供使用,我最常用的就是文件互传。手机传电脑,只需要点击文件传输,然后选择文件发送,很快电脑端便会弹出已保存的通知,你只需要去往你的家目录的下载文件夹查收即可。电脑端传输则更为方便,文件管管理器打开到需要的文件,右键-通过KDE Connect 发送到,文件便被发送过去了。

另一个——或者说另一对常用的功能就是远程输入和多媒体控制。手机端点击远程输入,你的手机就变身成为电脑的触摸板了。如果需要输入内容,则只需点击右上的键盘图标,这时你的手机又会变成电脑的键盘。这里需要注意一下,中文是输入不了的,所以如果需要输入中文的话,需要利用电脑的输入法,也就是手机输入英文字母,从而触发电脑上面的中文输入法输入中文。

我会更多的使用触摸板这个功能,这样我就可以赖在床上遥控电脑放片子或者播音乐了。不过放音乐的话,还有更方便的多媒体控制功能。一旦开始播放音乐,便可以切换到多媒体控制标签。在这里,你可以进行上下曲切换、暂停播放、快进快退以及音量调整控制。其中,暂停播放和音量控制同样可以用在视频软件,或者正在放视频的Chrome中。对于音量调节,分成了两部分。上面有下拉列表的一项是分应用调节。比如你同时打开了网易云和Chrome,那么通过上面的音量调整,你就可以分别对这两个应用的音量进行调节。相对应的,下面的音量便对应了全局音量。

我感觉同样很有使用价值的功能就是剪切版共享。只需要在电脑和手机端打开剪贴板同步功能后,就可以随意的复制粘贴了——无论是电脑复制手机粘贴,还是手机复制电脑粘贴。

KDE Connect还有一些其他功能。比如手机端的Slide Show,点开只有两个按钮。通过这个功能可以控制幻灯片的播放。又比如手机端的执行命令,你可以一键执行事先在电脑端设置的命令。举个例子:经过下列操作之后,我就可以一键关机。

  • 电脑端右键托盘图表 - KDE Connect设置
  • 点击已连接的设备,右侧列表点击执行命令的设置按钮,弹出窗口
  • 名称随意,比如关机,右侧输入关机命令poweroff,确定

现在,进入手机端的执行命令,就可以看到一个名为关机的项目,点击,你的电脑就被关闭了。

通过这个命令,我们可以快速启动一些命令,从而免去了远程控制鼠标看不清屏幕的尴尬。比如打开网易云音乐(netease-cloud-music),打开Youtube(google-chrome-stable https://www.youtube.com/)等等。总之命令就是你在终端启动程序时候需要输入的内容。

还有很多的可交互项目,手机端可以点击右上角 - 插件设置,电脑端可以在设置页面查看。

总之,KDE Connect这个工具,麻雀虽小,五脏俱全。根据你自己的需要进行配置,让你的手机和电脑根据你自己的要求进行协作,便捷生活,成为你真正的生产力提升助手。

视频点此

“Linux不能玩游戏!”

就我真想给你一巴掌……

哦,如果你只是玩儿腾讯游戏,那就把这一巴掌打回来吧还是……

今天就简单的来聊聊Gaming on Linux.

其实我经常会提到一句话:

你对Linux的认识还停留在十年前。

游戏就是一个很明显的例子。就连我往期内容也有人说不能玩游戏。如果你也是这么认为的,那推荐去看看Steam Play的那期内容,你会对这个问题有一个新的认识。

不过,还有一些不在Steam内的游戏,有没有办法玩耍呢?

有。而且还能让你在一个平台管理你所有平台的游戏。这就是Lutris。接下来主要介绍一下它的安装过程。

先来参照 https://github.com/lutris/lutris/wiki/Installing-drivers将显卡驱动的包补全。这地方就显示出来pop OS作为游戏系统的优势了:它把显卡的相关包都实现做了配置,你大可跳过显卡这一步。

接下来安装Lutris和相关包。因为是开源程序,所以直接通过源来一键安装即可:

pacman -S dxvk wine-staging lutris
  • dxvk: DX到vulkan的翻译层
  • wine-staging:有些发行版叫winehq-staging。而且有些发行版不包含这个包,需要去winehq官网对照步骤增加源

安装好这些之后,再前往https://github.com/lutris/lutris/wiki/Wine-Dependencies安装剩余的一些可选依赖。到此,lutris就可以正常运作了。不过,还有一些额外的配置,虽然配不配两可,但配置之后可以提升百分之二三十的性能。来看看。

  • 安装gamemode:Debian源里边会存在,arch分支则通过aur安装。包名就叫gamemode
  • 查找库文件路径:无论通过文件管理器还是命令,只要找到libgamemodeauto.so.0,将完整路径复制备用。
    查找文件的命令find /usr -name 'libgamemode*'
  • 现在,打开Lutris,点击左上图标- Preferences,切换到System Options,在Enviroment variables增加一项

    • Key = LD_PRELOAD
    • Value = 前面复制的路径

到此,gamemode配置完成。如果你还想进一步优化性能,可以参考https://github.com/lutris/lutris/wiki/Performance-Tweaks的最后两节,在上述位置中增加变量。

在上述全局配置完毕后,如果想再进一步提升性能,则可以选择tkg版本的wine,这个系列的wine启用了ESync,对性能的提升同样不容小觑。但若发挥ESync的效果,需要对系统内核进行一下调整。

  • 通过命令ulimit -Hn可以查看当前系统是否已经启用ESync。只要返回的数值不小于524288,那么就无需继续配置了。(systemd 240以后的版本默认是启用的)否则继续操作
  • 编辑/etc/systemd/system.conf,在结尾增加DefaultLimitNOFILE=524288
  • 编辑/etc/systemd/user.conf,在结尾增加DefaultLimitNOFILE=524288
  • 重启,再通过命令ulimit -Hn验证,应该就完成了

还有一些其他的配置,如果你想的话,可以去https://github.com/lutris/lutris/wiki/阅读。

到此,一个系统显卡双调优的、几乎支持全平台的游戏主机产生了。在lutris里,你可以导入你的Steam列表、GOG列表、甚至是你的KDE内置小游戏都可以被导入其中。自然,你也可以通过这个软件安装一些Steam平台以外的Windows游戏。安装也很简单:

  • 前往lutris官网
  • 切换到Games标签页
  • 搜索你想安装的游戏,进入其页面
  • 点击Install

然后,什么都不用管了,lutris会自动配置、下载、安装。

借这个机会,再来说两个关于显卡的问题。

第一、显卡加速组件。

更多的会是opencl和cuda这两种。如果你是英伟达显卡,那么cuda不会像win的驱动那样随安装包附带,需要另行安装。而cuda对驱动版本有对应关系,所以如果你需要cuda,那最好就不要从英伟达官网下载驱动,直接通过源来安装即可(以archlinux为例):pacman -S nvidia cuda

opencl同样如此。但因为AMD和Intel的驱动均为开源驱动(或者说是不需要闭源驱动。因为开源性能更强),驱动版本和opencl包总是同步更新的所以这两个平台无需考虑版本对应问题,直接通过源来安装即可:

pacman -S opencl-headers
pacman -S opencl-mesa lib32-opencl-mesa

至于英伟达,与cuda一样,不要手工从官网下载驱动安装,因为这样一来驱动版本可能会跟不上opencl的版本造成版本不对应。所以一切组件均通过源安装即可:pacman -S opencl-nvidia lib32-opencl-nvidia # 这里假设nvidia驱动已经从源安装

第二、英伟达驱动更新后,库连接被打破

如果你是从源里边安装的驱动,一般不会出现这种问题。但出现这种问题也无需担心,只需要通过ln -s手工建立软连接即可。