BIOS 串口波特率设置

今天 Warner 改了一段注释,我于是学到了一些新的 犀利而无用的知识,在这记一笔。

当从 BIOS 引导时,假如是使用 FreeBSD 的 boot manager(写入VBR的boot0或boot0sio), 该 boot manager 实现了一个菜单,因为这个菜单的原因,实现串口异步通讯的代码就塞不下了, 于是 boot0sio 会调用 BIOS int 14h 去初始化串口。

然而 int 14h 提供的接口是1981年的设计(IBM 5150的BIOS是1981年4月24日发表的, 当时只有 8 kB),用来表达波特率的只有3个bit,这3 bit作为波特率除数表的索引值, 该表在1981年写死成了:1047, 768, 384, 192, 96, 48, 24, 12,因此最高的波特率就是 115200 / 12 = 9600

由于 9600 还是比较慢(每秒只能传1200字节),因此现时的 BIOS / EFI 往往默认将串口波特率设为 115200,然而 FreeBSD 的 boot0sio 在引导时仍然会一上来就把串口波特率设为 9600, 解决方法是干脆不要用 boot0sio 而是使用 BIOS 提供的 Console Redirect 功能, 或是在编译时将 BOOT_COMCONSOLE_SPEED 设置为 0

阅读全文…( 本文约 661 字,阅读大致需要 2 分钟 )

TCP 协议合订本出了

| Networking | #TCP/IP | #RFC | #TCP | #IETF | #Networking | #Standards | #网络

我们现在所说的 TCP 协议通常是指 1981 年 9 月 发表的 RFC 793 和一系列后续 RFC 定义的协议,其主体定义距今已经超过 40 年了(当然如果细究下去的话, 第一份正式的文档是 RFC 675, 而 RFC 793 本身也是针对一年前的 RFC 761 的修正,不过大部分实现者使用的基础依然是 RFC 793)。

阅读全文…( 本文约 356 字,阅读大致需要 1 分钟 )

在 Thunderbird 中使用另外的 email 地址和 SMTP 服务器发邮件

| Cheatsheets | #Thunderbird | #作弊条

很久以前在 macOS 上配置了一次,然后具体怎么配给忘了一个干净,所以这次写一个作弊条。

阅读全文…( 本文约 345 字,阅读大致需要 1 分钟 )

Telegram Premium

Telegram 最近宣布了其订阅付费计划。 说起来我也不是特别信任其安全/隐私方面的特性(*),不过作为一个跨平台即时通讯软件来说, 其在不同平台上的功能基本上做到了完全一致,并且在这个礼崩乐坏 的时代,能够在不同平台上都做到不狂吃CPU/内存,在不同平台上的界面行为上高度一致, 并且完全没有各种令人抓狂的智障设计(举例来说:随便干什么事情都弄个二维码还非让你扫描一下借此获得摄像头权限、 多机登录时以手机为主并且时不时就得再扫描一次二维码、完全无法回溯的会话引用、 没头没脑地给一条「有人@你」的通知,却无法迅速定位到消息等等),并且公开客户端源代码以便第三方进行代码审计, 确实是十分难得的。

阅读全文…( 本文约 797 字,阅读大致需要 2 分钟 )

作弊条:SSH 的 ProxyJump 跳板服务

问题

有些环境中,SSH 服务器可能无法从 Internet 直接访问(例如,SSH 服务器可能使用的是一个私有 IP 地址,或是 Internet 服务提供商没有提供 IPv6 服务,而 SSH 服务器只提供 IPv6 服务)。

考虑到 SSH 已经进行了相互认证(连接时客户端会验证服务器的公钥是否与已知公钥,例如 ~/.ssh/known_hosts, 或是通过 DNSsec 发布的 SSHFP RR 匹配;服务器端则会验证用户是否能证明自己拥有与授权公钥对应的私钥), 因此比较常见的解决方法便是使用 VPN、在防火墙上穿孔,或是使用代理服务器。

由于 SSH 自身也提供了许多转发功能,因此如果中间的跳板服务器也提供 SSH 服务, 便可以使用这些跳转服务器直接作为代理服务器来用。与前面那些传统方法相比, 这样做的优点是避免了安装额外的软件,也不需要特别指定端口。

阅读全文…( 本文约 1412 字,阅读大致需要 3 分钟 )

用 BHyVe 虚拟机解决 FreeBSD Wi-Fi 驱动的问题

BHyVe

https://www.FreeBSD.org/ 10.0-RELEASE 起,系统提供了一个最早由 NetApp 开发的使用处理器提供的虚拟化硬件支持 (目前是 Intel VT 和 AMD-V;针对 ARM 平台的支持也在 https://reviews.freebsd.org/D26976) 的虚拟化环境 https://wiki.freebsd.org/bhyve,这套虚拟化环境可以运行支持 VirtIO 规范的各种操作系统,并提供了 UEFI 支持。

阅读全文…( 本文约 1092 字,阅读大致需要 3 分钟 )

伊万·伊万诺维奇的苏联笑话

| Shared Chaos | #苏联笑话 | #笑话

苏联笑话经久不衰,今天看到方叔亲身经历的 伊万·伊万诺维奇现实版

这个笑话还是挺逗的,第一次看到这个笑话应该还是中学时下了课跑去海淀图书城看到的闲书里看到的, 大致上是这样:

一个英国人、一个法国人和一个苏联人聚在一起讨论什么是世上最幸福的事情。

阅读全文…( 本文约 290 字,阅读大致需要 1 分钟 )

用 FIDO key 来做 SSH key

OpenSSH 8.2 中新增了 FIDO/U2F 支持。 它支持两种密钥对类型: ecdsa-sked25519-sk。需要注意的是并非所有的 FIDO Security Key 都实现了 ed25519-sk 的硬件支持:例如,截至2022年,Titan Security Key 就不支持 ed25519-sk

使用 FIDO key 的 SSH key 在使用上和之前的 SSH key 类似, 主要的区别在于在登录时系统会确认用户是否在机器旁边(通常是碰一下 FIDO key), 这可以显著地改善安全性:与之前的 SSH key 不同的是, 即使机器上的 U2F/FIDO SSH key 私钥文件被攻击者获得, 在没有硬件 FIDO key 的情况下也无法使用这个私钥。 对于对方同时能获得私钥文件和物理访问的情况, 参见 xkcd/538,就不要跟扳手过不去了。

阅读全文…( 本文约 716 字,阅读大致需要 2 分钟 )

今天份草台

我觉得这事必须得记一笔。

去年9月的时候,我和张师傅在 eBay 上团购了两台 Juniper NFX250-S2。 昨天周师傅问我当时付了多少钱,于是我就打开了浏览器准备去 eBay 查一下交易记录。

诶?右上角那是啥?使用 Gmail 账户登录?这比他们自己那个 2FA 实现好多了啊,我于是想都没想就点了一下。

阅读全文…( 本文约 814 字,阅读大致需要 2 分钟 )

这是一个由草台班子运行的世界

| Life | #草台班子 | #mustang | #Life | #生活 | #rant | #吐槽 | #Ford

上个月初带娃去佛罗里达那边休假,在机场租了辆车。这次的租车公司相当先进,完全不需要去排队或是在租车公司的触摸屏上再次确认, 直接在手机应用中确认之后,系统就直接给出了车的位置、型号(Ford Mustang),直接过去开门上车就可以出发了。

开始导航,一会谷歌地图显示去目的地基韦斯特 (Key West) 岛发生了大堵车。

「这题我会」,我想,顺手掏出了另一部手机上的苹果地图导航,发现果然也是出现了堵车。

此地是自古华山一条路,如果桥上发生事故,堵车实属正常。正想着,谷歌地图通知我说您稍微绕一下可以节省四个小时。 「太及时了!」看到堵车地点位于罗纳德里根收费公路附近,我毫不犹豫地跟随指示朝西开去。

走着走着,车的胎压报警突然亮了起来,配合了一段文字:「胎压传感器故障(Tire pressure sensor fault) 」。 这一路上估计车速会比较快,我不敢怠慢,赶快找了附近的一家加油站下车检查。 先是目测,发现轮胎没有显著的变扁,用手使劲按压也没发现什么问题, 于是到气泵处拿气泵带的压力表测了一下,发现胎压完全正常。

阅读全文…( 本文约 1135 字,阅读大致需要 3 分钟 )