分类 Linux 下的文章

为什么我必须要用AAC

因为我发现我新买的1MORE ComFoBuds Pro耳机最多支持AAC(手机AAC编码连接一切正常),而PC连接使用SBC×编码的时候要么音质不佳要么音质凑合了有卡顿中断问题。瞬间无比怀念我的KMOUK KM-HTW008 这玩意就没出过类似问题,而且降噪也很好,甚至感觉万魔的这个深度降噪不如他,也就风噪万魔强点。可惜,我买了俩,这俩KMOUK都丢了,一个丢在支教路上,第二个丢在家里。(初步怀疑第二个是放在桌子上的时候家里老爷子神智不清醒的时候当垃圾扔了,就剩下耳机充电仓😭,当时我这个难受啊...)
总之,我不得不使用AAC提高我的耳机使用体验。

参考文章:

高级音频分配配置文件(A2DP)AAC 在debian12上不可用 ——Debian Wiki

通过偷共享库的方式让 Debian 在使用 pipewire-pulse 连接蓝牙听歌时使用 AAC 编码传输音频流

为什么偷文件

AAC codec
The AAC codec is unavailable in Debian 12 bookworm.
In the case of PipeWire its support (see the 1021370 request) requires libfdk-aac2, however a decision has not made if this package may be moved from the non-free to the main section (see 981285). The only workaround is to build the AAC Bluetooth plugin from sources.

按照官方说明,唯一的解决办法是自己编译libfdk-aac2 。但是编译过程可能存在一些困难,而其他发行版大多已经内置了(就很难受,你Apt-X都支持了居然到现在还没折腾清楚AAC的许可问题。)在技术水准没那么高,明知道可以偷的情况下没必要自己编译。偷对版本就行,否则就和原帖博主挂出来憨皮一样把自己PC 搞炸。

Debian12 快速偷文件指南

如果你确定自己使用Debian12,
直接下载libspa-codec-bluez5-aac_0.3.65-4~glasgall1_amd64.tar.xz
解压得到libspa-codec-bluez5-aac.so,
sudo cp libspa-codec-bluez5-aac.so /usr/lib/x86_64-linux-gnu/spa-0.2/bluez5/
重启PC即可一步到位.

后记

AAC确实可以用了,但是卡顿问题有一定缓解,但是没有完全解决!这肯定就不只是编码的缘故了,百分之百是有干扰。
我的使用环境是:Thinkpad E14 Gen3 (AMD R5 5600U) WIFI和蓝牙使用RTL8852AE 驱动是rtw89 2024年1月18日的版本。 使用一块WIFI4 的4G WIFI棒子对PC和手机提供网络访问(插在1+ 100W A+C双口充电器上)。 这就极有可能构成一定干扰。
PC关了WIFI后本地音乐蓝牙播放就没干扰了,棒子直接插PC上走RDNIS给PC提供网络,手机WIFI连接棒子,问题暂时解决。

环境公示

宿主机J3160 上模拟堡垒机跑反代和虚拟机 网络桥接模式宽带联通IPv6公网
通过测试确定任何网络支持ipv6的用户可正常使用。

照本宣科

仓库有文档不需要我教
我高估了国内开发者的水平,实践证明90%的在职从业者水平解决问题的能力并不像他们的学历一样比我高。
如果你很有自信,有能力补全官方PPA安装后造成的一大堆依赖和配置文件缺失问题,你可以尝试不使用docker直接安装。
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
docker部署后注意写对PUBLIC_URL,端口无所谓,但要和后续反代对照。
NAT后部署的必须填写JVB_ADVERTISE_IPS
其他参数非必要即默认,不要看什么CSDN之类的烂文章乱改乱加。

- 阅读剩余部分 -

使用场景

现在我有了一部安卓设备,我需要使用它在任何时候登录我的服务器,而我的服务器仅支持使用公钥访问
目前我暂时不清楚有哪些应用支持使用GPG密钥替代密码认证登录SSH,所以直接使用Termux模拟的Linux Shell环境就了最佳选择。

安装依赖

pkg update && pkg upgrade
pkg install gnupg openssh util-linux

- 阅读剩余部分 -

上一篇文章记录了如何使用GnuPG生成SSH密钥对代替密码登录服务器,既然是为了安全和方便,是时候禁用密码登录让你的服务器彻底免遭各国脚本小子的攻击了!

禁用密码登录提高安全性

现在你已经可以使用安装了GPG私钥的PC无密码登录服务器了,先登录服务器
编辑 SSH 配置文件:
打开 SSH 配置文件以进行编辑。

sudo nano /etc/ssh/sshd_config

找到并修改配置项:

- 阅读剩余部分 -

第二次了,发生在我的Thinkpad E14 Gen3 (20YE01CD)上。

 1986  du -h --max-depth=1 /home/xfox
 1987  du -h --max-depth=1 /home/xfox/.config
 1988  du -h --max-depth=1 /home/xfox/.config/clash-verge/logs/

一通查询,发现了问题所在。你没看错是被日志挤满的,
出现了大量类似如下条目的日志。
31mERRO[2024-01-18T22:52:08.679274456+08:00(☁️
CFWarp-C) connect to server: connect failed: dial udp 188.114.96.128:1074: connect: network is unreachable
31mERRO[2024-01-18T22:52:08.67928208+08:00(☁️
CFWarp-B) connect to server: connect failed: dial udp 188.114.98.122:1074: connect: network is unreachable

看看写入了多少(毕竟零下的温度散热风扇都转起来了)

xfox@ThinkPadE14Gen3:~$ du -h --max-depth=1 /home/xfox/.config/clash-verge/logs/
30G     /home/xfox/.config/clash-verge/logs/

好,写的很多,下次不要再写了。😠
这件事情提醒我们没事别老开着日志记录。

为啥我要自己编译?

因为Debian官方仓库的版本有些旧了。而且我不喜欢也不想大量使用臃肿的FlatPak或者Snap包。

官方文档

https://github.com/obsproject/obs-studio/wiki/Build-Instructions-For-Linux

自用版本

Github Release
编译参数Release有写明,如有需要留言说明。
我编译的包依赖Qt6,今后也不打算支持旧版Qt5。

sudo apt install qt6-base-dev qt6-base-private-dev libqt6svg6-dev qt6-wayland qt6-image-formats-plugins

持续更新

看心情,我想起来就去拉个最新版本的更新一下,想不起来就不管。
如果你发现有什么重大更新发布了但是我没跟进编译,可以留言我能看见。

问题设备主要参数

PC:Thinkpad E14Gen3 (AMD R5 5600U) 蓝牙与网卡集成在RTL8852AE上。
耳机:KMOUK KM-HTW008 (洛达1562A 蓝牙5.2 支持编码:SBC/ACC)。
操作系统:Linux ThinkPadE14Gen3 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux

问题特征:

链接耳机能扫描到,但是链接失败,失败后正常出现在配对列表。报错:br-connection-profile-unavailable
另外,我当前使用的PulseAudio有非常致命的声音延迟问题,导致我在CSGO里屡屡被队友当成了聋子。😠

参考文章:

bluetooth-br-connection-profile-unavailable-issue-on-upgrade-to-xubuntu-23-04
https://wiki.debian.org/BluetoothUser/a2dp
https://wiki.debian.org/PipeWire#Bluetooth

- 阅读剩余部分 -