多设备蓝牙键盘

这东西倒也没啥新鲜的,罗技基本上现在每个都有这个功能。然而家里键盘并不想换,反正还有个扔着没用的 Pine64,就考虑结合一下变成多设备蓝牙键盘…… 输入嘛就靠libinput。这年头拿个输入还是很方便的,拿python的wrapper随便折腾折腾就有了。 蓝牙比较麻烦。本身蓝牙就比较复杂,要先搞 SDP 记录然后再接收连接。参考了网上直接模拟蓝牙键盘的代码,改改 HID 描述符加上鼠标,加上接收多个连接的功能,搞个快捷键切换设备,也就差不多了。 蓝牙键盘鼠标和 USB 的那套差不多,就是 HID 套个壳。这个倒是比较简单,之前也研究过 HID 描述符和 HID 报告的格式,随便折腾一下就能发送报告了。然而被 Python 3 的 bytes/str 坑了一波,最后发现 0xa1 发送成了 0xc2 0xa1 才注意到这个问题…… 目前倒是折腾到能用,然而蓝牙那块还是有一些诡异的问题。比如说,Android 和 Linux 经常连不上来,看上去 bluez 这边发送的回复是说 Connection pending, Authentication pending,过一会就 fail 了,然而有时候又能跑,还需要更多研究…… 至于为啥不直接用 synergy 或者远程跑个服务器然后发数据嘛…… 因为毕竟蓝牙比较通用,远程不需要啥设置,以及折腾折腾比较好玩…… 说起来折腾这货还发现了奇妙的bug。只要(不)恰当地设置 SDP 记录,Windows一连上就会蓝屏…… KERNEL_SECRUITY_CHECK_EXCEPTION来着。 https://github.com/HenryHu/bthub/tree/master/src

老调重谈:Spotify & Netflix on FreeBSD

FreeBSD 上没法用 Spotify 和 Netflix 很久了,自从这些东西的网页版需要 DRM 以来。具体来说,现在这些(以及基本上所有别的 Streaming 服务,例如 Disney+)都需要 Google 的 Widevine DRM 模块,而这货只有 binary,只提供给了 Windows/Linux/MacOS,所以 FreeBSD 就没法满足 DRM 需求。 理想状况当然是干掉 DRM,这个当然没戏;让 G 提供这个也不错,但是应该也没那么容易;用兼容层跑 Widevine 那个库或许可行,不过还需要花点功夫;之前还搞过在另一台 Linux 机子上放,转发过来。今天说的是通过跑个 Linux 虚拟机达到这个目的…… 第一次拿 bhyve 搞虚拟机,还挺好用的(通过使用 vm-bhyve……),几步就装完了一个 Debian。装好之后就有几个问题: 视频输出 音频输出 问题1有很多个办法,比如说可以ssh -Y,比如说可以remote desktop,可以VNC之类的…… 试了几波,ssh -Y和remote desktop都受限于 CPU,没法传4K。remote desktop差不多能到2560×1440,看流量大概有一个多Gbps…… 回头一想,搞什么ssh,直接连X啊…… 于是打开 X 的 TCP 监听,直接 DISPLAY=<IP>:0 怼过去,然后的确能用,4K都行,流量大概4个多Gbps…… …

Continue reading ‘老调重谈:Spotify & Netflix on FreeBSD’ »

折腾 Wireless Display

很早之前就买了个Microsoft Wireless Display Adapter,之后没怎么用。前段时间尝试从 Surface Pro 6 投影过去,发现怎么搞都不成…… 就是点了之后很快就说 Couldn’t connect。 照例在网上搜了若干方法,有说驱动的,有说组策略的,有说防火墙的,反正试了都没用…… 折腾了一晚上,情况都没啥变化。 最后我怀疑有啥软件半路拦截了数据包,于是打开 Windows 用户必备工具:SysInternals Autoruns…… 发现几个残留的东西,比如穿梭啦,QQProtect啦,以及之前装的 npcap 啦…… 统统车掉之后,居然就成了…… 但是,成了之后发现,这货只能投1080p,显示器是4K的,投了很糊…… 想起来当初为啥从Win跑路了,因为出了问题不好调啊…… 另外,SysInternals真是必备工具……

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 上挂着比较靠谱……

年终总结

// 于是一年啥都没写就年终总结了…… 这个blog是要完蛋了嘛…… 还是已经完蛋了…… // 之前写过年终总结么?…… Research 2016年也算PhD读到第六年了,眼看着第六年还是毕不了业,想想还是挺傻逼的…… PhD重头当然是搞项目,今年前半段搞的项目基本上是大暴死,最后还有一个月发现有人搞过了…… 怎么说呢,随便就投入一个新领域,半路改题目还没读paper,最后发现有人做过了也是活该…… 至于毕业嘛,也不知道具体是啥要求…… 目前反正新项目目标就是毕业,所以管他是不是做system投到哪里去,能毕业就行…… 之前参与搞的另一个项目倒是投了若干次终于中了,好歹也算有新paper是吧,不像去年啥都没有…… Study 怎么说呢,娱乐时间偏多,基本上不学无术……搞那个不靠谱的项目倒是学了不少Scala相关的东西,感觉这个语言语法糖太多,有时候有歧义,看都看不懂…… 虽然有时候是写起来很爽是吧,但是那谁说过还是读起来爽比较重要…… 搞这个项目还了解了一些分布式系统的东西,但里面水太深,根本就是了解了很小一部分…… GitHub上倒是有不少烂摊子项目,开了个头就没接着搞的。看时候还是应该收拾收拾…… 买了本go的书就是一直没看,好像也没啥机会用…… Gadgets 看着袁叔天天用Surface Pro 4感觉挺爽,于是也买了个。毕竟之前用了Surface 3,觉得一方面挺方便,一方面性能不行。 Surface Pro 4性能倒是好,不过bug略多,我买的时候都出了一年了还是一堆bug…… 配合着Ubuntu on Windows,感觉这货还是挺好用的,既能拿来干活也能拿来娱乐,各种Linux原生程序都能跑,微软还是厉害…… 年初买了个Pixel C,也就用来看看漫画视频之类,主要也就是床上用用。在有了Surface Pro 4之后有被闲置的可能性…… 不过最近因为懒得把Surface拿出来所以又开始活跃了…… 其他嘛还有从袁叔那里进口的PocketChip,Pine64,Fossil Q Crewmaster,有兴趣单独写算了…… Life 嘛,有些事情也是慢慢熟悉起来的么…… 虽然还有很多不确定性,但是至少也算有个计划是吧…… 总的来说嘛,好像也不是太糟糕……