I'm starting to provide Chinese / English versions of some articles, switch with the Language menu above. 我开始提供部分文章的中文、英文翻译,请使用顶部语言菜单切换。

笔记本 Optimus MUXless 下的 Intel 和 NVIDIA 虚拟机显卡直通

摘要(剧透)¶ 我成功在联想 R720 游戏本上把 Intel 核显的 GVT-g 虚拟显卡,以及 NVIDIA 独显本身直通进了虚拟机。 但是由于受到架构本身的限制,这套方案有非常大的局限,例如很多游戏无法调用独显、操作麻烦、显示性能仍然较低等。 因此,现阶段可以为了折腾而尝试,但不建议用于实用用途。 为什么要这么做¶ 我平常浏览网页、写代码等操作都在 Arch Linux 系统下完成,很少使用 Windows 双系统。但是有的时候我想和同学联机游戏,就不得不重启到 Windows 系统。 虽然已经有了 Wine、Proton 兼容层来运行 Windows 应用,还有 DXVK 来转译 DirectX 命令到 Vulkan 来提升性能,但是还是有很多游戏无法在 Wine 环境下正常运行,例如自带 DRM 或者反作弊保护的游戏,以及调用了奇怪 API 的游戏。...

愿者上钩(指美国签证)

附取消邮件内容: 自2020年2月3日起,美国驻北京大使馆和美国驻成都,广州,上海和沈阳总领事馆暂停普通签证业务的办理。因此,美国驻华使领馆将取消6月29日至7月10日的移民和非移民签证预约。鉴于新型冠状病毒情况的持续变化,美国驻华使领馆仅维持非常有限的人员,因此无法提供常规的签证问询服务。虽然我们会提供少量的紧急面谈,但有计划赴美的申请人应留意2月2日(周日)发布的总统声明,规定在入境美国之前的14天内,去过中国(香港和澳门特别行政区除外)的外国旅客将被禁止入境。更多关于总统声明的信息可从我们网站上获得https://travel.state.gov/content/travel/en/traveladvisories/ea/Presidential-Proclamation-Coronavirus.html。 在此期间,如果您有紧急的赴美需要并且认为是属于声明以内的豁免情况,...

毕业设计 - 传感器网络开发踩坑记录

欢迎来到踩坑系列的第三篇。之前两篇中我分别介绍了我 RoboMaster 机器人竞赛和 FPGA 课程大作业中踩的坑。 这次踩坑的是我的毕业设计,三人小组合作的空气质量传感器网络。整个项目的设计如下: 从安装的传感器模块中读取数据并上传到服务器上的 InfluxDB 数据库 我们使用的传感器如下: MiCS6814,测量 NO2,CO,NH3 模拟输出 BME680,测量温湿度气压及 TVOC I2C 接口输出 PMS5003,测量可吸入颗粒物(PM) UART 串口输出 额外加上了这些模块: ATGM336H,GPS+北斗双模定位模块 UART 串口输出 ESP8266,使用非常广泛的 Wi-Fi 模块 UART 串口输出 MH-CD42,电源管理模块 输出?不存在的,供电就行了 需要足够节能,...

Bird 配置 BGP Confederation,及模拟 Confederation(2020-06-07 更新)

更新记录¶ 2020-10-01:添加警告,模拟 Confederation 时不能在内网滤掉内部 ASN 2020-06-07:添加 Bird Confederation 的局限,及模拟 Confederation 方法 2020-05-17:最初版本 ISP 内部 BGP 互联方案比较¶ 互联网中各个 ISP(互联网服务提供商)绝大多数都使用 BGP 协议互相交换自己的路由信息。每个 ISP 都会从所在区域的网络信息中心(NIC,例如 APNIC,RIPE)获得一个 ASN(自治域编号),例如中国电信的 ASN 是 4134。然后 ISP 之间通过物理连接(铜缆,光纤,卫星网络等)连接各自的边界路由器,然后在边界路由器上配置 BGP 协议,告诉对方:“我是 AS4134,我这里可以访问到 202.101.0.0/18 这个 IP 段”。...

x32 ABI 及相应 Docker 容器使用

x32 架构是怎么回事呢?x86、x86_64 架构相信大家都很熟悉,但是 x32 是怎么回事呢,下面就让小编带大家一起了解吧。 x32 架构,其实就是 x86 和 x86_64 架构拼在一起,大家可能会很惊讶 x86 和 x86_64 架构怎么会拼在一起呢?但事实就是这样,小编也感到非常惊讶。 x86 及 x86_64 的历史,以及 x32 ABI¶ 我们现在使用的个人计算机及服务器绝大多数都使用 x86_64 架构,该架构由 AMD 于 2000 年发布规范,2003 年发布第一块处理器。x86_64 是一个 64 位的架构,意味着在 x86_64 中,CPU 的每个寄存器都能保存 64 bit 的数据(即 8 个字节)。在 x86_64 流行之前,多数电脑都使用 Intel 处理器以及相应的 x86 架构/指令集,这是一个 32 位的架构,...

写一个简单的 Telegram 机器人

应 DN42 Telegram 群群友的要求,我打算给我的 Bird Looking Glass 加上 Telegram Bot 的支持,方便群友现场查询 Whois、测试网络通断、检查漏油路由泄漏源头等。这个 Bot 要能识别以斜线 / 开头的命令,然后对命令消息进行回复。 我的 Looking Glass 使用 Go 语言写成,因此我一开始先查找了 Go 语言的 Telegram Bot API。但流行的 API 库无一例外都遵循了同样的请求结构: Telegram 服务器发送一个回调到自己的服务器; 自己的程序处理请求,期间可能根据本地配置的 Token 向 Telegram 服务器多次主动请求; 自己的程序最终主动请求 Telegram 服务器,发送回复信息。 这套方案功能强大,但有点复杂,而多余的功能我根本用不上。我更希望使用 Telegram 官方提供的另一种方式,...

去除 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....

在 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。 原作者建议自己在本地建一个简单的软件源再使用它,...

Docker 容器共享网络命名空间,集成 Bird 实现 Anycast 高可用

正好一年前,我在 DN42 网络内用 Docker 建立了 Anycast 服务。当时我的方法是,自定义容器的镜像,在其中安装一个 Bird,然后加入 OSPF 协议的配置文件来广播 Anycast 路由。但是随着时间推移,这套方案出现了以下问题: 安装 Bird 本身是个较花时间的过程。我的 Bird 不是用 apt-get 装的,因为我的 Dockerfile 需要支持多种 CPU 架构,而 Debian 有些架构的软件源里没有 Bird。而又因为我的构建服务器是 AMD64 架构,使用 qemu-user-static 支持其它架构的镜像运行,为其它架构制作镜像、编译程序时就涉及到大量的指令集翻译,效率非常低。构建一个镜像在不同架构下的版本可能需要 2 小时以上,而安装应用本身的 apt-get 流程只需要几分钟。 自己定制镜像也比较花时间。...

系统禁用摄像头防止网课翻车

本文介绍如何在 Windows 和 Linux 中禁用摄像头驱动,从而: 在系统层面上避免误操作开启摄像头,把你 在吃饭 在床上 在玩王者荣耀 在(数据删除) 的样子直播出来 避免部分网课软件后台开启偷拍 Windows 操作方法¶ 按下 Win+R 组合键调出运行窗口,输入 devmgmt.msc 并确定调出设备管理器窗口。你的摄像头会出现在 图像处理设备 一类中,右键停用它。 (下图截自 Windows XP,但 Windows 7 和 10 上的操作相同。) 当需要使用摄像头时,再回到此处启用摄像头,关闭并重新打开浏览器/网课软件即可。 Linux 操作方法¶ # 首先关闭浏览器、网课软件等占用摄像头的设备 sudo modprobe -rv uvcvideo sudo nano /etc/modprobe.d/disablecamera....