Linux 下向串口发二进制数据

如果要发的数据很少,可以直接用 echo 向串口文件里写。主要的要点有 2:

  • echo 使用选项 -ne。n 用于不附加结尾回车,e 用于开启转义。16 进制数的转义写法和 Python 一样,真是好。
  • 给串口文件写权限。默认串口文件是不能写的,要么给串口加写权限 chmod o+rw /dev/ttyS1,要么把当前用户添加到串口读写组里 usermod -aG dialout current_user

另外 echo 默认输出到标准输出,需要重定向到串口文件。综上,可以这么发:echo -ne "\x52\x54\x01\x01\x01\x01\x0A\x0D" > /dev/ttyS1

如果发送没效果,有个可能的原因是串口波特率不对。用 stty 修改串口设置即可:stty 9600 -F /dev/ttyS1

立下一个 flag:再也不给需要解锁但没有官方途径解锁的设备搞刷机破解了!

本想给荣耀 7 加点额外的权限管理,治理一下 app 在手机里到处写文件的流氓行为,可官方关闭了解锁 bootloader 的服务,于是 root 和解锁 bootloader 就变成了先有鸡还是先有蛋的问题。官方这么一关闭,效果好的很,费掉我整个白天的时间,外加用软件 root 交的 5 元服务费,除了给手机清空了一下存储空间以外,啥成果都没有。对了,还附带刷官方系统都 3 遍,额外增加了内存磨损…尼玛…多来几遍估计就会变成我那个残疾的小米电视盒了。

为了不再发生这种和官方对着干纯粹浪费时间的惨案,特此立下一个 flag:再也不给需要解锁但没有官方途径解锁的设备搞刷机破解了!

将 MikroTik 的 mAP lite 设置为 cpe 模式

这个小东西有 1 个无线网卡和 1 个以太网口,默认模式是 ap。如果是作为 ap 来用有点大材小用,淘宝有大把的 ap 且比这个便宜。如果是作为 cpe 来用,就没有多少产品能这么干了,想象一下以太网接口的无线网卡,是不是很另类。

cpe 模式简单来说就是作为客户端设备去连某个 ap,并将网口桥接到 ap 上,可为没有无线网卡的设备(比如只有以太网口的网络摄像机、没有无线网卡的电脑、路由器的 WAN 口、只有以太网口的打印机等)提供连接 ap 的能力,方便这些设备联互联网。

当然,如果能很容易把这个小东西设置成 cpe 模式,我就不写这个文章了。

继续阅读“将 MikroTik 的 mAP lite 设置为 cpe 模式”

干掉阴魂不散的宋体

前面很多篇文章都在试图把 Windows 系统中出现宋体(特别是它的点阵字)的概率降到最低,并且保留较为原汁原味的宋体以备文档打印之需。实践中可行的方法主要是修改字体链和去掉宋体中的点阵,但这种办法对付不了在软件里写死要用宋体的情况,除了劝软件作者改字体外基本没啥好办法,这种软件就只能睁一只眼闭一只眼了。

然而依然有不少软件固执的显示着去掉了点阵的宋体(比如最近正在琢磨的 FreeCAD 和配置 Mikrotik 设备的 winbox),这些软件并非来自国内工程师,难道外国工程师也很中意宋体?显然不是的,肯定是中文的系统有个默认值,把没有指定字体的软件显示为此默认字体。私认为这应该是最后一点日常碰得到宋体的情况了,为了把这一点阴魂不散的宋体去掉,需要找到这个默认值。

用 simsun 为关键字搜索注册表,发现了这么一个键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize\GUIFont.Facename,其原始值为 SimSun。看微软的说明不太清楚这个键值的用途,看起来应该是和 GUI 字体有关,试着改成了前面做的字体链字体,然后就成功了。这下子应该不太容易看到宋体了吧(瞎说的)。

效果如下(点击看原图) ,一同附上的两张图来自《干掉丑陋的点阵字》。

继续阅读“干掉阴魂不散的宋体”