@
NoCash #3 举几个例子:
1 ,我想在运行 asahi linux 的 macbook air m2 上用蓝牙耳机听音乐,我的做法是安装一个 Sunshine ,然后在 macmini m4 上用 Moonlight 连接这台 macbookair ,然后蓝牙耳机连接 macmini m4 ,只不过有个问题,asahi linux 是没有硬件编码的,这会导致 Sunshine 的 cpu 占用很高,所以我就用 Codex 修改 Sunshine 的代码去掉了视频传输的功能。顺便一提 macos 是可以用命令来切换音频输出设备以及调节音量的,而且可以用 mpv 播放空音乐来确保 macos 对蓝牙耳机的占用,我这台 macmini m4 现在最主要的用途就是连接蓝牙耳机,然后好几台设备就都可以共用蓝牙耳机了。
2, 遇到了 Fedora KDE 桌面的 dolphin 文件浏览器不能在 fuse 挂载的文件系统上生成视频和图片的缩略图的问题,这是因为 dolphin 把 fuse 挂载的目录视为了远程目录,虽然可以在设置里修改在远程目录上允许生成缩略图的最大文件大小,但这样会影响用 smb 访问的远程目录,我的做法是修改 kde kio 的源码,让 fuse 挂载的目录被视为本地目录,同时不影响用 smb 访问的目录,修改好代码后我用 fedora 的标准打包流程生成了 kf6-kio-gui-6.23.0-1.fc42.x86_64.rpm 包,步骤如下:
fedpkg clone -a kf6-kio && cd kf6-kio
修改 kf6-kio.spec 把自己的 patch 加进去
fedpkg mockbuild # 用这个生成 rpm 包
3 ,用 iPXE + iSCSI 无盘启动 Linux ,这个主要是为了方便台式机的系统维护,就算 grub 都被我不小心搞挂了也不用插个 U 盘去修复,U 盘里的系统不能像 iSCSI 一样很方便的做快照,而且 U 盘会干扰键盘鼠标导致操作卡顿。搞这个时还踩了一个小坑,就是从 iPXE 官网下载的 ipxe.efi 的 marvell 驱动有 bug ,会导致插了 aqc113 网卡的设备卡在其中一个步骤,即便我是通过板载的 rtl8125 网卡进行 pxe 启动也会有影响,我的解决办法就是自己编译 ipxe ,把 marvell 驱动去掉就可以了。
4, 用虚拟机玩 3A 游戏,这个我也是踩了一些小坑的,比如我买的 5070 显卡的出厂 BIOS 有 bug ,会导致直通给虚拟机时看不到 UEFI 界面,后来用 NV 官方的工具更新显卡 BIOS 才解决。还有 Libvirt 的默认 qemu 配置是不能把 usb 端口透传给虚拟机的,必须在/etc/libvirt/qemu.conf 里取消注释 cgroup_controllers 这一行。我还遇到由于跑虚拟机的这台物理机插着的 usb 设备太多了,有一些 usb 设备会导致物理机启动非常非常慢的问题,我的做法是在启动时禁止 usb 子系统初始化(通过添加内核参数 initcall_blacklist=xhci_hcd_init 解决),启动完成后再探测 usb 设备。
5, 用 lxc 的非特权模式跑各种编译服务器,用和 distrobox 一样的 uid 映射方式,把容器内的 uid1000 映射到容器外的 uid1000, 相较于 lxc 的默认配置可以更方便的和主机共享源代码目录,另外我为了研究 pve 方便还用 lxc 的特权模式运行 pve ,避免了 fedora 和 pve 双系统来回切,在 lxc 里跑的 pve 也能正常创建和运行虚拟机,也能把 pcie 设备和 usb 直通给虚拟机。
困了,先列举这些吧。