NixOS 系列(五):制作小内存 VPS 的 DD 磁盘镜像 的插图

NixOS 系列(五):制作小内存 VPS 的 DD 磁盘镜像

NixOS 系列文章目录: NixOS 系列(一):我为什么心动了 NixOS 系列(二):基础配置,Nix Flake,和批量部署 推荐阅读: NixOS 与 Nix Flakes 新手入门 ,作者 Ryan Yin NixOS 系列(三):软件打包,从入门到放弃 NixOS 系列(四):「无状态」操作系统 NixOS 系列(五):制作小内存 VPS 的 DD 磁盘镜像 黑色星期五已经过了,相信有一些读者新买了一些特价的 VPS、云服务器等,并且想在 VPS 上安装 NixOS。但是由于 NixOS 的知名度不如 CentOS、Debian、Ubuntu 等老牌 Linux 发行版,几乎没有 VPS 服务商提供预装 NixOS 的磁盘镜像,只能由用户使用以下方法之一手动安装: 自行挂载 NixOS 的安装 ISO 镜像,然后手动格盘安装。 由于你可以在 NixOS 安装镜像的环境中随意操作 VPS 的硬盘,这种方法自由度最高,可以任意对硬盘进行分区,指定文件系统格式。但是,使用这种方法前,你的主机商需要在以下三项前提中满足任意一项:...

从零开始实现 Nix 三角函数库 的插图

从零开始实现 Nix 三角函数库

(题图来自: 维基百科 - 三角函数 ) 起因 我想计算我的所有 VPS 节点之间的网络延迟,并把延迟写入 Bird BGP 服务端的配置中,以便让节点之间的数据转发经过延迟最低的路径。但是,我的节点截至今天有 17 个,我不想在节点之间手动两两 Ping 获取延迟。 于是我想了一种方法:标记所有节点所在物理地点的经纬度,根据经纬度计算物理距离,再将距离除以光速的一半即可获得大致的延迟。我随机抽样了几对节点,发现她们之间的路由都比较直,没有严重的绕路现象,此时物理距离就是一个可以满足我要求的近似值。 因为我的节点上用的都是 NixOS,统一使用 Nix 语言管理配置,所以我需要找到一种在 Nix 中计算这个距离的方法。一种常用的根据经纬度算距离的方法是半正矢公式(Haversine Formula),它将地球近似为一个半径为 6371 公里的球体,再使用以下公式计算经纬度之间的距离: 参考资料: 维基百科 - 半正矢公式 h = h a v ( d r ) = ( h a v ( φ 2 − φ 1 )...

解决 Pipewire 被 SIGKILL 的问题 的插图

解决 Pipewire 被 SIGKILL 的问题

症状 我频繁遇到 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 时间片,无法处理任何任务,...

如何引爆 DN42 网络(2023-05-12 更新) 的插图

如何引爆 DN42 网络(2023-05-12 更新)

DN42 是一个 测试网络 ,所有人都在帮助所有人。即使你不小心搞砸了,也没有人会指责你。你可以在 DN42 的 IRC 频道 , 邮件列表 或者 非官方 Telegram 群组 寻求帮助。 由于 DN42 是一个实验用网络,其中也有很多新手、小白参与,因此时不时会有新手配置出现错误,而对整个 DN42 网络造成影响,甚至炸掉整个网络。 现在,作为一名长者(x),我将教各位小白如何操作才能炸掉 DN42,以及如果你作为小白的邻居(指 Peer 关系),应该如何防止他炸到你。 注意:你不应该在 DN42 网络中实际执行这些操作,你应该更加注重对破坏的防御。 恶意破坏会导致你被踢出 DN42 网络。 本文信息根据 Telegram 群及 IRC 中的 真实惨案 改编。 更新记录 2023-05-12:增加修改 BGP Localpref 导致环路的内容。 2020-08-27:格式修改,添加完整 IRC 日志,部分内容的中文翻译,添加另一段地址掩码填错的内容,以及 ASN 少了一位的内容。 2020-07-13:...

Optimus MUXed 笔记本上的 NVIDIA 虚拟机显卡直通(2023-05 更新)

一年前,为了能够一边用 Arch Linux 浏览网页、写代码,一边用 Windows 运行游戏等没法在 Linux 上方便地完成的任务, 我试着在我的联想 R720 游戏本上进行了显卡直通 。但是由于那台电脑是 Optimus MUXless 架构(前文有各种架构的介绍),也就是独显没有输出端口、全靠核显显示画面,那套配置的应用受到了很大的阻碍,最后被我放弃。 但是现在,我换了台新电脑。这台电脑的 HDMI 输出接口是直连 NVIDIA 独立显卡的,也就是 Optimus MUXed 架构。在这种架构下,有办法让虚拟机识别到一个「独显上的显示器」,从而正常启用大部分功能。于是,我终于可以配置出一套可以长期使用的显卡直通配置。 更新日志 2023-05-08:针对新版 Looking Glass B6 更新部分内容。 2022-01-26:PCIe 省电补丁实测无效。 准备工作 在按照本文进行操作前,你需要准备好: 一台 Optimus MUXed 架构的笔记本电脑。我的电脑型号是 HP OMEN 17t-ck000(i7-11800H,RTX 3070)。...

修改 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 的原厂系统难以定制。 二手服务器 优点: 便宜,在保修期结束后,这些服务器大都被数据中心当作废品处理,然后被以极低的成本回收,翻新后二次售卖。 稳定,这些服务器在设计时就考虑了长期运行,并且一直在温湿度稳定、无尘的数据中心中运行。 缺点: 噪音大,需要自行修改系统配置降低风扇转速,更换静音风扇,或者加装风扇减速线。 体积大(主要针对机架式服务器)。 专用配件,服务器厂商会定制各种配件供特定型号使用,如果你有扩展需求,需要加价购买这些专用配件。 二手工作站 优点: 便宜、稳定,与二手服务器相同。 噪音小,毕竟工作站是放在办公桌边,而不是在机房里使用的。 缺点: 专用配件,...

NixOS 系列(四):“无状态”操作系统 的插图

NixOS 系列(四):“无状态”操作系统

NixOS 系列文章目录: NixOS 系列(一):我为什么心动了 NixOS 系列(二):基础配置,Nix Flake,和批量部署 推荐阅读: NixOS 与 Nix Flakes 新手入门 ,作者 Ryan Yin NixOS 系列(三):软件打包,从入门到放弃 NixOS 系列(四):「无状态」操作系统 NixOS 系列(五):制作小内存 VPS 的 DD 磁盘镜像 更新记录: 2023-02-18:在「移动 Nix Daemon 的临时文件夹」一段,修正配置不对 root 用户生效的问题。 NixOS 广为人知的一大特点是,系统大部分软件的设置都由 Nix 语言的配置文件统一生成并管理。即使这些软件在运行时修改了自己的配置文件,在下次切换 Nix 配置或者系统重启时,NixOS 也会将配置文件重新覆盖。 例如,在运行 NixOS 的电脑上运行 ls -alh /etc ,可以看到大部分配置文件都只是到 /etc/static 的软链接: # 省略部分不相关的行 lrwxrwxrwx 1 root root 18 Jan 13 03:...

NixOS 系列(三):软件打包,从入门到放弃 的插图

NixOS 系列(三):软件打包,从入门到放弃

NixOS 系列文章目录: NixOS 系列(一):我为什么心动了 NixOS 系列(二):基础配置,Nix Flake,和批量部署 推荐阅读: NixOS 与 Nix Flakes 新手入门 ,作者 Ryan Yin NixOS 系列(三):软件打包,从入门到放弃 NixOS 系列(四):「无状态」操作系统 NixOS 系列(五):制作小内存 VPS 的 DD 磁盘镜像 NixOS 的一大特点是,系统所有的二进制程序和库文件都在 /nix/store 目录中,由 Nix 包管理器管理。这也意味着,NixOS 不符合 Linux 的 FHS 标准 ,它的 /lib 或 /lib64 目录下不存在类似 ld-linux-x86-64.so.2 之类的库文件动态加载器,更不存在 libc.so 之类的库文件。因此,除非静态链接,否则为其它 Linux 下编译的二进制文件将完全无法在 NixOS 下运行。 所以,要在 NixOS 上使用尚不存在于 Nixpkgs 仓库中的软件,最佳方案是自己用 Nix 语言写一份打包脚本,给这个软件打一个包,然后把打包定义加入 configuration.nix 中,从而安装到系统上。...

用逆向工程方式给惠普暗影精灵宏按键编写 Linux 驱动

我前段时间换了台新电脑,惠普的暗影精灵 17t-ck000(美版,应该对应的是国内的暗影精灵 7 Plus)。这台电脑好是好,做工优秀,性能强大,就是有一个问题:它在 Linux 下的驱动支持实在是太烂了。 不支持调节风扇转速,你能看到风扇转速,但仅此而已。再加上惠普的默认风扇策略非常激进,即使我开启了 BIOS 中的低温风扇停转功能,它依然在 CPU 温度只有 40 度、显卡空载的情况下转得非常欢快。 其实可以用 NBFC 直接写 EC 寄存器来控制,但在 某次不幸的事故中 当时的配置方案丢失了。 我配置 NBFC 时正在新电脑试用 NixOS。事故发生时新电脑上的 NixOS 被我删掉了,而且当时的配置没上传 GitHub。 过段时间再重新写一遍(咕咕咕) 不支持调整键盘背光颜色,它们在 Windows 下由 OMEN Command Center 软件控制。有时系统崩溃、我长按电源键断电重启时,BIOS 会将键盘背光恢复成默认的五彩斑斓的颜色,此时我只能回到 Windows 进行调节。...