2005 年开始的 macOS 主力用户,终于要换到 Linux 了

106 天前
 othercat

大家都说 Linux 的未来是 Windows ,或者是 macOS 。 大家都说 Linux 的桌面不堪用, 大家都说。。。

是的,大家也许都是对的,只是我想换主力机了。

从 macOS10.4 Tiger 用到如今 Sonoma 14.5 ,之后还会继续用 Mac 笔记本,但是不会作为主力了。 目前家里常用的 Mac 还有:

12253 次点击
所在节点    Linux
130 条回复
lolizeppelin
104 天前
/usr/lib64/dri-nonfree/iHD_drv_video.so 的 rpm 是 intel-media-driver

这个 rpm 在 rpmfusion 的一个 nofree 的资源中
https://admin.rpmfusion.org/pkgdb/package/nonfree/intel-media-driver/
othercat
104 天前
@lolizeppelin 嗯,这个 LIBVA_DRIVER_NAME=iHD 刚上手已经加入到了 ~/.config/environment.d/20-vaapi.conf
lolizeppelin
104 天前
其实不用配置 LIBVA_DRIVER_NAME...
官方默认 nofree 的优先的

官方也就做做样子而已....
FightPig
104 天前
我装的 KDE neon ,但我用的很小众的一个牌子的 16 寸电脑,除了触摸板垃圾,这个没办法,7840+可以自己加内存加硬盘,分辨率为 2.5k ,只能 1.5 倍缩放,好大 kde 对分数缩放支持还行,整体表现可以,如果不喜欢这种分辨率,可以选 14 寸的 2.8k 的电脑,2 倍缩放 1440 也可以的。
othercat
104 天前
@lolizeppelin 我个人的一些看法吧
既然选择红帽系,选择 Fedora ,肯定是把具体 Linux 发行版的特点和文化遵循下来,否则我干嘛要用 Fedora ,只是因为命令行和包管理以及权限管理不一样?
红帽系的特点就是标准化,Fedora 能够保证自己的系统一直非常快速甚至被其他 Linux 发行版用户感受到激进的做法,也源于标准化,这个标准化带来了很多思考,如:为什么这个参数默认不会被编译?为什么这个包没有被加入进来?

所以这也是在这篇文章的 Threads 里面,不少和您一样的大佬用户们的建议,我都是先仔细看看,和朋友咨询讨论,然后再考虑如何用一种更合适符合发行版规则的方式去操作。

这样操作的方式肯定会影响性能,但是如果一开始就决定性能优先,可能我不会选择 Fedora ,甚至我也不会选择 Linux 了,因为我连 Mac 上的编译都搞得定,我还怕 Linux😂?

我选择 Linux ,很多时候是在想让自己真正站在 Linuxer 的角度,享受自由世界带来的真正好处,但是很怕自己在这个自由世界,成为 hacker 或者 cracker ,因为后两者的系统虽然是独一无二, 但是那恰恰走入了我不想要的折腾之路,即可能为了一个非标准化的行为,造成了后续升级或者使用新应用产生的另外的折腾,而这种折腾,其实和 macOS/Windows ,没有本质区别。

回到您说的“官方也就做做样子而已....” 我觉得官方并没有做做样子,只是恰好大家在维护者一种标准,而我们也在使用着各种标准,而一旦想要接触一些非标准的应用或服务,又或者自己开发了一些没有那么标准的内容,可能才会发现真正发行版的特点吧。

最后,我还是个 Linuxer 初学者,如果有一些说话冒犯的,请谅解~
BeijingBaby
104 天前
开启了折腾之路~
othercat
104 天前
@FightPig 16 寸选择 2.5K 用 1.5 倍缩放,我因为目前还是定在了 wayland+gnome ,还没精力折腾桌面和 wm ,只能说根据自己手头的机器,用非整数缩放,一种是字体渲染的效果就不如 macOS 了,有轻微差距(整数倍是比 macOS 好的),另外一个是 x11 的应用,包括 Electron 的 app 的渲染表现就很糟,如我在用 Obsidian 记笔记,就特别明显。所以我就希望能够一个更高分辨率的屏幕,这样我的 UI 就可以更舒服一些。
lolizeppelin
104 天前
@othercat

我怀疑你都没自己打包过 rpm,我说的所有东西都按官方标准做的,标准 rpm 包

我说的做做样子是指官方早预留好了非 free 的部分,就等用户自己放开

官方 ffmpeg 的 src.rpm 包里预留了让你编译非 free 包的配置,官方没设置--enable-libvpl 因为不能确定你用的是什么显卡,配置也预留了开--enable-libvpl 的参数,自己编译一个 ffmpeg 的 rpm 完全符合红帽标准
othercat
104 天前
@lolizeppelin 我自己给一些金融保险业做的安全运维项目,就是给很多不同的 Linux 服务器自己修改源代码打 rpm ,以上。
othercat
104 天前
@lolizeppelin oneVPL 的相关信息我还在学习,针对这个参数,我并没有说使用是对或者错的,我只是觉得需要弄明白这些为什么没有作为默认参数,当然最后结论很可能也是您所说的:“因为不能确定你用的是什么显卡”,只是我需要自己弄明白才可能会去做修改。
也许对您来说很简单的事情,对我来说可能还是需要仔细学习研究,毕竟您已经用 Linux 这么久了,不是么~
lolizeppelin
104 天前
@othercat

那你还说那么一堆做啥

官方不能在包里打有版权的东西,我自己编译打进去有啥不符合标准了....
官方包里都吧参数给预留好了,就等你自己编译了......这不就是做做样子避免法律问题么
lolizeppelin
104 天前
@othercat
很简单阿,这个参数已加上去,会增加 intel gup 相关依赖,你要是用 n 卡,装 ffmpeg 也依赖一堆 intel 显卡的包不就很多余了
othercat
104 天前
@lolizeppelin 我觉得这是两件事:
RPM Fusion 是官方人员维护的,这个的确如您所说“官方不能在包里打有版权的东西”,但是至少是有标准文档说明的。
但是 ffmpeg 编译默认不加入--enable-libvpl ,我还在寻求官方文档的支撑,如果您有看到也可以发给我。
前者可以认为是做样子避免法律,后者,只能说我还是需要持续学习。
lolizeppelin
104 天前
你要文档也不要去 fedora 找,在 ffmpeg 的文档里找

https://trac.ffmpeg.org/wiki/Hardware/QuickSync
othercat
104 天前
@lolizeppelin 好的,多谢,我会仔细看看再来回复~
就目前和朋友了解到的知识,也顺便贴在这里~

```
就以编码这个功能来说,显卡端提供了名为 quick sync 的编码器,然后 intel 提供了 media sdk 和 oneVPL 两组 sdk ,上层应用可以选择使用其中任意一种来调用 quick sync 功能。
所以,从用户端来说,你只会使用 ffmpeg ,或者基于 ffmpeg 的应用,但你不需要关心 ffmpeg 是通过哪个 sdk 调用 quick sync 功能的
从用户的角度上说,没有哪个 sdk 更好一点的说法,因为用户不和 sdk 打交道。当然对于我或者 ffmpeg 的维护者来说,oneVPL 确实更好用一些,api 更好用。
```
FightPig
104 天前
@othercat kde 下的话,分数倍还行,当然整数最好,不过没办法,我选择这个本主要是因为可以自己扩内存和硬盘,红米的也看过,不能自己加内存后来放弃了。其实 thinkpad 14+或者 16+也不错
othercat
104 天前
@bianjp 我的问题应该是硬件太新,虽然有 firmware ,也加载了:

[ 5.103687] sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 4
[ 5.144950] sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[ 5.144953] sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
[ 5.144954] sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/mtl
[ 5.144955] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-hda-generic-4ch.tplg
[ 5.173803] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.9.0.1

但是应该是 firmware 不匹配

[ 12.705960] sof-audio-pci-intel-mtl 0000:00:1f.3: no matching blob for sample rate: 48000 sample width: 32 channels: 4
[ 12.705968] sof-audio-pci-intel-mtl 0000:00:1f.3: failed to prepare widget dai-copier.DMIC.dmic01.capture
[ 12.705970] sof-audio-pci-intel-mtl 0000:00:1f.3: Failed to prepare connected widgets
[ 12.705973] sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed widget list set up for pcm 6 dir 1
[ 12.705975] sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:1f.3: -22
[ 12.706074] sof-audio-pci-intel-mtl 0000:00:1f.3: no matching blob for sample rate: 48000 sample width: 32 channels: 4

我目前用小尾巴可以正常用麦克风和声音,考虑到 sof 更新大概就能解决,所以我就临时加了一个参数作为一个 workaround 来解决这个问题了,接下来就是等 sof 更新 sof-mtl.ri 了

sudo grubby --update-kernel=DEFAULT --args="snd-intel-dspcfg.dsp_driver=1"
bjfane
104 天前
感觉起来,可能是不差钱或者是就收藏价值,早期的 mac ,再换新的时候可以回血。 哈哈
othercat
104 天前
@lolizeppelin 经过和朋友一起研究,总结了一些信息:

1. 类似微软的 DirectX ,Linux 使用 VAAPI 标准用于让应用和游戏开发者方便开发,而显卡驱动则让不同显卡符合 VAAPI 标准即可。不过 mesa 目前主要只有 Intel 和 AMD 的支持。

2. Intel Quick Sync Video 则是 Intel 显卡的硬件功能指标,并且根据 Intel 硬件的发展,提供了不同的 media stack 项目,如 oneVPL ,iHD driver ,MediaSDK ,Libva ,intel-vaapi-driver 等,不同的项目只是针对不同的硬件或者硬件范围进行设计。在 Linux 可以用到所有的项目,但是 Windows 默认 Intel 图形驱动只有 MediaSDK 支持。
3. Runtime 方面,Quick Sync 支持 VAAPI / libvpl / libmfx 不同的运行时,其中 libvpl 是 libmfx 的承接。

上面 2 和 3 可以参考此文章 https://www.intel.com/content/www/us/en/developer/articles/technical/onevpl-in-ffmpeg-for-great-streaming-on-intel-gpus.html

4. 目前我使用 RPM Fusion 的推荐安装,默认使用的 ffmpeg 已经加入了 --enable-libvpl 参数且没有 --enable-libmfx 参数,因此不需要额外重新编译 ffmpeg 了。
5. ffmpeg 的代码宏会进行 oneVPL 的支持,如果调用 ffmpeg 强制指定 oneVPL 作为后端 media stack 支撑,则 ffmpeg 会去寻找对应的 Runtime ,其 Runtime 在默认系统会是 oneVPL-intel-gpu 这个包,不过通过系统升级会更新为 intel-vpl-gpu-rt 这个包,在之前 dispatcher 和 runtime 是分开的,现在 dispatcher 和 runtime 合并了,因此只需要用后者即可。
6. 通过 https://trac.ffmpeg.org/wiki/Hardware/QuickSync 这个页面后面的一些确认和核实,并且我实际使用如下命令转码,通过 intel_gpu_top 发现 GPU 编解码运作正常。
ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf 'vpp_qsv=framerate=60,scale_qsv=w=1920:h=1080' -c:v av1_qsv output.mp4

结论:
如今走标准推荐流程 https://rpmfusion.org/Howto/Multimedia 不用特别去考虑 ffmpeg 具体的编译了:RPM Fusion 的 ffmpeg 版本已经预先加入 oneVPL 后端支持,而 Fedora 40 也有对应的调用路径,所以没什么额外需要做的了。
nianlifeixing
104 天前
我是因为用过 amd 的 cpu(4800h) + win ,有一段时间蓝屏问题实在解决不了了,对 amd+win 失去了期望,后来转战 mac 了,至少稳定,软件不行至少可以用虚拟机,mac 机器的稳定性还是很 ok 的,几个月不关机都没啥问题,win 不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX