WiFi 与多播

最近折腾了一波 WiFi…… 起因是老的 Netgear R6250 路由的无线好像有点问题。一开始是2.4G有问题,于是我拿出了一个 TP-Link 的小路由来对付2.4G。其实我家普通设备也不用2.4G,也就是那些破智能家居的东西,啥灯泡开关之类,还有啥打印机啦 Kindle啦,这些破烂没法用5G。症状是这些设备时不时就掉线,看看路由的设备列表也会发现大多数2.4G设备都消失了。ping 也不通,出问题的时候尝试手机连2.4G也连不上。 后来我刷了一波 dd-wrt(OpenWrt 没有 5G 支持),结果更糟糕了,有时候直接断网…… 虽然估计是dd-wrt的问题,但是也懒得再刷回去了,反正也有问题。 于是想想这个路由也用了5年了,干脆买个新的。毕竟快要 WiFi 6 (802.11 ax) 了嘛,要买就买支持AX的。等了一段时间的折扣,搞来一个 Netgear AX5200。 买来之后用了没几天,发现2.4G问题依旧…… 症状也差不多,反正就是设备会掉。根据经验么,我就开始折腾路由的各个设置,例如看看哪个频道空啦,改改无线信号频率宽度啦,改改各种WiFi设置啦…… 结果改完居然5G都出问题了,时不时会卡上个半分钟一分钟的,卡完之后ping能收到一堆延时了最多半分钟的包。于是只好恢复出厂设置,然后5G好歹恢复了,所以真的是改设置改出问题了…… 所以回头看2.4G相关设置,实在是没啥搞头…… 频道么,公寓楼里每个频道都一堆信号,干扰总是免不了的。然而就算这样,应该也不至于就没法用…… 没办法只能拉出来Wireshark抓包,看看有啥希望没有。在2.4G有问题的时候,抓包发现路由偶尔还是能吐出来几个包的,多数都是多播…… 于是这个时候我意识到这个可能就是问题:2.4G应该没有设备要听这个多播啊…… 说到这个多播吧,其实是远程音频的副产品。因为多个设备都需要播放音频,而我又不想把耳机来回拔插,于是在各个系统都搞了远程音频,各个系统都把音频发到一个机子上。Linux/BSD用的是PulseAudio rtp send/recv,而Windows用的Scream。 这俩底下其实貌似都是RTP,以及都是用的多播。多播这个东西有线网是挺合理的,无线网就比较堪忧了。有些路由器甚至有自动把多播转成单播的功能。一般来说普通用户也没这个需求,所以 Netgear 没在普通路由器做这个也很合理…… 虽然吧,还是有些奇怪的。多播应该是要主动申请加入(通过IGMP)的,而那些2.4G的设备显然不会去加入。既然这样,那路由不该把这些多播包发给它们啊…… 为了证实是多播的问题,我观察了一下ping的延时和远程音频的关系。结果发现,只要一开始播放音乐,延时就涨到几百,只要一停,过一会就掉回几十…… 既然怀疑就是多播的问题,那干掉多播就完了。我把远程音频都改成了单播的,幸好这俩都可以改。改完之后到现在已经三天了,目前看来还没啥问题…… 搞完之后回头想想,说不定本来的路由就没问题呢?……

GPU Passthrough in Bhyve

所谓 GPU Passthrough 其实就是把一个 GPU 扔给虚拟机用。众所周知,虚拟机没法打游戏的主要问题就是显示性能不行,因为基本上没有 3D 加速。如果能够把整个显卡直接扔进去,那当然性能应该和原生的差不多,就可以打游戏了…… 所以因为懒得重启到 win 下面打游戏,就想尝试在 Bhyve 搞这个。Linux 下面这套东西其实很成熟,大家都用 KVM 搞个 windows 虚拟机然后传个显卡进去,然而 FreeBSD 底下这个 Bhyve 么…… 问题还不少。 首先是设置一些设备为 passthrough 设备,这样 host 就管不着它们了。这个是在 /boot/loader.conf 里面加上 pptdevs=”1/0/0 1/0/1″ 至于为啥是这俩,是因为这俩是我显卡搞出来的俩 PCI 设备。装了 vm-bhyve 之后,直接 vm passthru 就能看见对应的 Bhyve ID 了。 弄完之后,直接在 VM 的配置文件(vm configure <vm name>)里面加上 passthru0=”1/0/0=10:0″passthru1=”1/0/1=10:1″ 就可以让这俩设备传给 VM 了。 当然,以上只是最基本的…… 接着跑个 …

Continue reading ‘GPU Passthrough in Bhyve’ »

yakyak on FreeBSD

Google Hangouts 这个网页客户端实在是让人受不了…… 浪费很多空间不说,经常还很卡。Chrome 插件还行,然而我用Firefox…… 幸好我们还有人们自行研发的 yakyak,用着还行,有通知,界面和 Hangouts 那个 Chrome 插件基本一样。但是问题在于,这货很流行地使用了 Electron 平台,这货还没官方 FreeBSD 支持…… 幸好已经有人port了Electron,现在是4.2.9。因此,yakyak 也是可以跑在 FreeBSD 上面的。 先装好 electron,然后checkout我修改过的yakyak:https://github.com/HenryHu/yakyak。进去,跑npm install,再npm run gulp。这样就产生了一个app目录,里面是编译好的内容(yakyak是CoffeeScript写的……)。 最后跑electron app,就行了。 其实修改只有一个内容:干掉了自动启动,因为 auto-launch 这个包还不支持FreeBSD。auto-launch这种写个.desktop的事情,应该也没啥特别不portable的问题,既然支持 Linux,改 FreeBSD 应该很容易…… 如果这个也支持了的话,那就可以直接用官方版本了。 Hangouts 的失败不知道没有好用的桌面客户端有多少锅,至少 Telegram 就有桌面客户端…… 不过 Telegram 主要卖点大概还是群组和表情包?……

Firefox 57: 丢了啥

最近各个Firefox都升级到了57…… 用了一段时间还是有若干丢失的功能没找回来。 × 滚轮切换标签页 有个firefox的feature request (https://bugzilla.mozilla.org/show_bug.cgi?id=1285812),好像已经很久了,到现在也没搞定。因为57的关系,好像最近有些动静。 有段脚本在 Console 跑一跑就能有这个功能,但是总不能每次都跑一跑…… × keyconfig 没法重新定义各种按键了…… 比如要在各处都用Alt+<num>切标签就不行了…… × HttpFox / Mason / RefControl / UAControl 反正各种篡改HTTP的插件都不好使了。不过Chrome下好像是有类似插件的,所以应该会有替代品…… × Tab Mix Plus TMP 的很多功能都还没替代的,比如多行标签页,比如滚轮切换,比如双击关闭,…… 我估计多行标签页是很难出来了……   已经搞定的替换品: × VimFx -> Vimium × 地址栏开新标签 -> New Tab From Location Bar 本来是 Tab Mix Plus 的一个小功能,现在单独弄出来…… × Google Similar Images -> Search …

Continue reading ‘Firefox 57: 丢了啥’ »

Pidgin 的回归?

从前啥IM都用 Pidgin 挂着,包括MSN啦,GTalk啦,人人啦,QQ啦,…… 后来发现用 Pidgin挂的话总有些问题,比如人人的XMPP接口会自动发状态啦,QQ时常不能用啦,GTalk 变成 Hangouts 之后干脆要干掉XMPP啦,就渐渐不用 Pidgin了…… 最近天天看着那个工作得不是很靠谱的Telegram客户端 (Linux版在BSD跑当然不靠谱),再看看那个卡得不行的 Hangout 网页版,突然想到是不是 Pidgin 现在可以搞这些了,于是去看了眼…… 虽然 Pidgin 那个难产的3到现在还没出来,界面和从前一模一样 (这几年到底在干嘛……),支持各种协议的插件倒是都有了。 Telegram: telegram-purple https://github.com/majn/telegram-purple Hangouts: purple-hangouts https://bitbucket.org/EionRobb/purple-hangouts Facebook: purple-facebook https://github.com/dequis/purple-facebook 试了试看上去都还工作得不错,终于可以摆脱 Hangouts 那个卡卡的网页版了…… 这三个里面嘛,Telegram和Facebook Messenger的协议都是公开的,所以应该是可以很好支持的。Hangouts 应该是人们自己分析出来的,所以可能时不时需要更新一下。不管怎么说,至少现在都能用,图片啥的也能看见 (虽然Telegram的动画表情还不行……)。 至于 QQ 嘛,还是去 Windows 上挂着比较靠谱……