症状 我频繁遇到 Pipewire 音频框架突然停止运行的情况: 问题通常出现在我的笔记本电脑连接/断开电源的时候,此时我的电脑会因为切换性能模式卡顿一小段时间; systemctl --user status pipewire.service 只能看到 Pipewire 进程被 SIGKILL 信号终止,没有其它有用的日志信息; coredumpctl 和 dmesg 里也找不到 Coredump 内存转储事件的记录。 原因 Pipewire 进程运行时具有实时优先级,其调度需求被最优先满足,以便及时处理音频数据,避免音频卡顿。Pipewire 提高进程优先级是通过它的 libpipewire-module-rt 模块请求系统中以 root 权限运行的 RTKit (Realtime Kit)服务,然后 RTKit 以特权修改进程优先级来达成的。 但是,如果一个具有实时优先级的进程出了 Bug,进入了死循环,那么它会占用所有的 CPU 资源。系统上绝大部分其它进程(包括但不限于 SSH 服务端,Xorg,还有你的 Shell)由于优先级更低,就无法得到任何 CPU 时间片,无法处理任何任务,...
修改 APN 解决 AOSP ROM 上中国电信无法 4G 漫游问题
由于我的一加 8T 官方系统维护周期即将结束,我给手机刷上了 Nameless OS,一个基于 Lineage OS 的第三方安卓 ROM。但是刷入后,我发现我的中国电信手机卡无法连接本地运营商的 4G 网络进行国际漫游,只有 2G 或 3G 信号。由于本地运营商近期正在进行 2G、3G 退网,手机的漫游信号很差,收发短信都有很大延迟,也无法连接 VoLTE 进行正常通话。 我测试了其它的基于 Lineage OS 的第三方 ROM,都有类似的问题。 多次尝试后,我发现问题 似乎 出在手机的 APN 设置上。我说「似乎」是因为修改 APN 解决了我的问题,但我完全不明白为什么能行,也不确定这就是正确的解决方法。 我解决问题的操作步骤如下: 进入手机设置 - SIM 卡 - 中国电信 - APN 设置。 点击「中国电信NET设置」( ctnet )进入详细设置。 把 APN 类型一项( APN Type )修改为: default,supl,dun,ims 原始值是 default,supl,dun 点击右上角三个点的菜单,选择保存。...
老款 HP 工作站配置 NAS+软路由笔记
我买了一台 HP 的老款工作站,用作家里的 NAS+软路由。本文简单记录这台工作站的配置过程。 硬件选择 NAS 的硬件主要有这些选择: 成品 NAS(如群晖) 优点:开箱即用。 缺点: 价格贵,到了「买系统送硬件」的程度。 而且与各种 Linux 发行版相比,NAS 的原厂系统难以定制。 二手服务器 优点: 便宜,在保修期结束后,这些服务器大都被数据中心当作废品处理,然后被以极低的成本回收,翻新后二次售卖。 稳定,这些服务器在设计时就考虑了长期运行,并且一直在温湿度稳定、无尘的数据中心中运行。 缺点: 噪音大,需要自行修改系统配置降低风扇转速,更换静音风扇,或者加装风扇减速线。 体积大(主要针对机架式服务器)。 专用配件,服务器厂商会定制各种配件供特定型号使用,如果你有扩展需求,需要加价购买这些专用配件。 二手工作站 优点: 便宜、稳定,与二手服务器相同。 噪音小,毕竟工作站是放在办公桌边,而不是在机房里使用的。 缺点: 专用配件,...
友华 PT926G 关闭 TR069
本文介绍如何关闭友华 PT926G 光猫的 TR069 功能,防止电信推送配置/固件更新,导致你自己改的桥接、端口转发等失效。 这台光猫的 WAN 设置里,TR069 连接是无法修改或者删除的。但是我们只要对光猫后台的代码做一点小小的修改,就可以破解这个限制。 首先你需要按照我的《 友华 PT926G 光猫破解 》这篇文章获取 Telnet 管理员密码。 然后 Telnet 进去,执行 su 并输入密码进入 Root Shell。进入后命令行应该会显示 # 。 然后依次执行以下操作: 输入 cp /home/httpd/web/net_eth_links.asp /var/ ,回车运行。 我们准备修改这个文件,但这个文件放在一个只读的分区上,所以先把它复制一份到可以读写的地方。 输入 vi /var/net_eth_links.asp 编辑这个文件。 vi 是著名的非常难用的编辑器,因此我们一步步来: 输入 /is_configurable 然后回车,也就是查找 is_configurable 这个字符串。光标应该会跳转到这个位置:...
友华 PT926G 光猫破解
本文介绍如何在不拆光猫、不使用串口转换器的情况下,破解友华 PT926G 光猫的以下权限: 管理面板的超级管理员用户(telecomadmin) Telnet 的 root 用户 访问 FTP 坐标深圳电信。 登录超级管理员界面 如果你直接访问光猫的 IP( http://192.168.1.1 ),你会看到以下的智能网关登录界面: 在这个界面你可以用 useradmin 账户和光猫背后标记的密码登录,但进去之后没什么功能,只有一个 Wi-Fi 的设置是有用的。 但 nmap 扫描显示事情并不简单: $ nmap -v 192.168.1.1 # 省略一些输出 PORT STATE SERVICE 21/tcp filtered ftp 22/tcp filtered ssh 23/tcp filtered telnet 53/tcp filtered domain 80/tcp open http 445/tcp open microsoft-ds 8080/tcp open http-proxy 10001/tcp open scp-config 32768/tcp open filenet-tms 有一个 8080 端口,我们访问一下( http://192.168.1.1:8080 ): 嗯,熟悉的味道,...
去除 OpenVPN 的 Stable-privacy IPv6 地址
在我的 VPS 上,OpenVPN 创建的 TAP 网络界面/虚拟网卡会带有一个随机生成的 IPv6 地址,scope 为 stable-privacy 。 这个地址本身是随机生成、用于防止根据 IPv6 地址追踪用户的,但在 DN42 组网时,BGP 握手可能会从这个地址发出(而非设置的 Link-local 地址),然后因为来源地址不符而握手失败。 解决方法是对这些 TAP 网络界面通过 sysctl 设置,关闭可能会自动产生地址的几项。可以设置 OpenVPN 让它在创建网络界面时自动运行 sysctl: # 在 OpenVPN 的 conf 文件里加上 script-security 2 up "/bin/sh -c '/sbin/sysctl -w net.ipv6.conf. $dev .autoconf=0 && /sbin/sysctl -w net.ipv6.conf. $dev .accept_ra=0 && /sbin/sysctl -w net.ipv6.conf. $dev .addr_gen_mode=1'" 根据你的 Linux 发行版不同,可能需要调整 /bin/sh 和 /sbin/sysctl 的路径。...
在 OpenVZ 6 上安装/升级到 Debian 10
2020 年了,你怎么还在用 OpenVZ 6 的 VPS? 因为它(们)只要一刀一年。 因为 OpenVZ 6 的内核非常老旧(Linux 2.6.32),较新的系统无法在旧内核上正常运行,因此之前我的 OpenVZ VPS 只能用 Debian 8。 但我在 GitHub 发现了一个 修改版的 glibc(C 语言运行库) ,可以在 OpenVZ 6 内核上正常运行 Debian 10。 警告 不保证以下步骤适用于所有 OpenVZ VPS,也不保证这个 glibc 的安全性(我没看它修改了哪里,说起来停止维护的 OpenVZ 6 还要什么安全性)。 请备份好数据 ,最坏的情况下你可能需要重装系统。 安装步骤 原作者只提供了 deb 包,但这些 deb 包里有调试符号之类一般人用不上的东西,所以不建议 dpkg -i *.deb 。 原作者建议自己在本地建一个简单的软件源再使用它,步骤如下: # 下载截至本文发布日的最新版本 wget https://github.com/sdwru/glibc-debian-10/releases/download/2.28-9910.0/glibc_2.28-9910.0+custom1.1_amd64.deb....
系统禁用摄像头防止网课翻车
本文介绍如何在 Windows 和 Linux 中禁用摄像头驱动,从而: 在系统层面上避免误操作开启摄像头,把你 在吃饭 在床上 在玩王者荣耀 在(数据删除) 的样子直播出来 避免部分网课软件后台开启偷拍 Windows 操作方法 按下 Win+R 组合键调出运行窗口,输入 devmgmt.msc 并确定调出设备管理器窗口。你的摄像头会出现在 图像处理设备 一类中,右键停用它。 (下图截自 Windows XP,但 Windows 7 和 10 上的操作相同。) 当需要使用摄像头时,再回到此处启用摄像头,关闭并重新打开浏览器/网课软件即可。 Linux 操作方法 # 首先关闭浏览器、网课软件等占用摄像头的设备 sudo modprobe -rv uvcvideo sudo nano /etc/modprobe.d/disablecamera.conf # 输入如下内容并保存 blacklist uvcvideo 当需要使用摄像头时运行 sudo modprobe -v uvcvideo 加载驱动,用完后 sudo modprobe -rv uvcvideo 卸载驱动。加载/卸载后,关闭并重新打开浏览器/网课软件即可。...