分类 趣分享 下的文章

最近新买了一个鼠标(锐普Gm90 有线+2.4Ghz无线+蓝牙5.0)替换原来的蓝牙4.0鼠标(Q9 蓝牙4.0+2.4Ghz无线双模),新设备并不能像旧设备一样在两个系统下无缝切换;切换系统必须删除设备重新配对链接。
网上有很多相关的实现,基本原理是修改替换Linux/Windows的配对信息,使两个系统配对信息保持一致,让鼠标完全将其识别为同一匹配设备。但是不同蓝牙版本,配对信息不完全相同,从3.0 -> 4.0就新增了几个参数,而4.0- 5.0是否还有新增参数目前尙不明了,SEO靠前的国内平台大多只有带货的广告帖子,几乎找不到有用的技术分析。我愿称之为开源分享技术上的东亚病夫:)
参考文章:
Linux 与 Windows 双系统共享蓝牙鼠标-南浦月
Bluetooth Pairing on Dual Boot of Windows & Linux Mint/Ubuntu - Stop having to Pair Devices
Dual Boot Bluetooth Pair

本文食用说明

**推荐使用Dual Boot Bluetooth Pair仓库的自动脚本进行转换再手动更改,否则你就得手动按照如下步骤完成。
由于蓝牙5.0没有CSRK这一项,所以注释掉bluetooth_fix.py 的84-85行。**

dumphive这个项目很老了,我在Linux Mint20.3una上也没编译成功,只能到Windows10下手动去读取了。

在Linux Mint下配对并链接鼠标

此时系统创建了一个配对信息文件

读取Windows下注册表中的配对信息

先切换到Windows10,在windows下重新配对鼠标,使系统自动创建配对信息。
下载 PSTools,使用压缩包中的PsExec/PsExec64.exe 以系统权限打开注册表(理论上如果你能使用别的方式提升权限到系统级也可以试试自己提权。)
psexec64.exe -si regedit

然后就可以去HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\<本机蓝牙 MAC>\<鼠标蓝牙 MAC>这个路径找自己的蓝牙配对设备信息了。

此处 MAC 地址不带分隔符,并且这里需要系统权限才能访问。以下内容已脱敏QwQ
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\145af*****\d104d9****]
"LTK"=hex:8c,5a,62,4e,62,41,bd,eb,44,f3,3e,e9,de,68,11,40
"KeyLength"=dword:00000010
"ERand"=hex(b):9d,b1,9d,be,42,14,bb,0c
"EDIV"=dword:0000a573
"IRK"=hex:2b,4b,26,b5,7d,7d,03,9e,ce,bf,92,a7,5e,a5,cc,8b
"Address"=hex(b):c0,8a,d1,d9,04,d1,00,00
"AddressType"=dword:00000001
"MasterIRKStatus"=dword:00000001
"AuthReq"=dword:0000002d

蓝牙4.0和5.0配对配置文件参数列表对比

蓝牙5.0(Windows)蓝牙4.0(Windows)对应Linux下键名转换方式
LTKLTK[LongTermKey] Key十六进制转十进制
KeyLengthKeyLength[LongTermKey] EncSize本人设备不需要改动
ERandERand[LongTermKey] Rand先反转字符串顺序再从十六进制转十进制
EDIVEDIV[LongTermKey] EDiv十六进制转十进制
IRKIRK[IdentityResolvingKey] Key转大写,去掉逗号空格
AddressAddress 本人设备不需要改动
AddressTypeAddressType 本人设备不需要改动
MasterIRKStatus 本人设备不需要改动
CSRK[LocalSignatureKey] Key转大写,去掉逗号空格。(网上看部分设备有这个,但是我这个就没有)
OutboundSignCounter 本人设备不需要改动
AuthReqAuthReq 本人设备不需要改动

回到Linux下修改蓝牙配置信息

Linux 下蓝牙设备的配对信息存储在 /var/lib/bluetooth/<本机蓝牙 MAC> 目录下,

注意,这里的MAC地址带:,手动输入需要转义\建议在终端里TAB自动补全。进入此处目录需要root权限,可以直接在root用户下操作。

接下来按照对应关系修改配置文件,如果不知道转换
操作完成后,仍然无法正常链接,仔细观察蓝牙地址,我发现Windows下Gm90鼠标的蓝牙MAC地址竟然有一位和Linux下的配置文件写的不同!这一位数字似乎是累加,我先在Linux下链接鼠标一次是03,到了Windows10下再重新配对就变成04!
Linux Mint下 MAC:D1:03:D9:::**
Windows10 下 MAC: D1:04:D9:::**
是不是发现了什么?我所参考的文章里和网上的一些案例里都常常出现设备MAC地址在重新配对后某一位出现变动的情况。
所以修改Linux下蓝牙设备配置文件所在目录名称和Windows10下保持一致。
最后sudo systemctl restart bluetooth
打开蓝牙,Linux Mint下Gm90自动正常链接,大功告成!

后记:

2022年5月21日 5点38分
显然我已经熬夜到第二天早上了,熬夜过程中发现了自动读取指定导出好的注册表文件并转换的工具,也就是
dual-boot-bluetooth-pair这个仓库,尽管过时,但是依旧十分有效。我必须要说,当你用中文在搜索引擎上找不到你想要的答案,请用英语,哪怕语法有错误。(语法是中国人发明的,即使不按照语法输入语句,外国人一样能知道你在说什么),这个工具和一半的内容参考来自我搜索:Windows Linux double systeam BLE 这串关键词
看完本文,建议去看看Bluetooth mouse (简体中文) 这篇Archlinux的wiki同样适用其他发行版,介绍了对于蓝牙鼠标的配置和故障排除步骤。
早上6点18分更新:蓝牙鼠标突然断开了,原因不明可能仍然需要重新配置。重启蓝牙不管用,依旧无法链接,重启系统之后恢复正常工作了。

 最近微软edge的内置翻译功能因为https://edge.microsoft.com/translate/auth 这个接口的域名在河南地区的访问炸了暂时仍然无法使用,所以试图安装谷歌翻译,但是发现谷歌翻译的接口默认是translate.google.com,但是使用的时候好像并不影响划词翻译?为了方便跳转到正确的translate.google.cn这个国内可用域名,手动对商店的谷歌翻译插件原文件进行了修改,替换了全部接口的域名为translate.google.cn 解压手动加载即可。
谷歌翻译替换国内域名2.0.12_0.zip

演示视频链接

这几天世界真是动荡啊......看到国内外那些收美国人钱的网军洗地,真是可笑啊。

一张图描述美狗是如何“灵活反战”的

一张图描述美狗是如何“灵活反战”

美国扶植乌克兰傀儡政府做了什么?

奥运期间违反停战协议炮击顿巴斯

据俄罗斯卫星通讯社2月6日消息,乌克兰军队公然违背奥林匹克休战决议,对顿巴斯实施炮击,尽管目前人员伤亡尚不明确,但在乌克兰地区的军事活动可以确定,冲突不仅没有结束反而还在加强,有包括至少4架美军侦察机、反潜机在内的总计近10架飞机在白俄罗斯-乌克兰一线活动。
冬奥会期间,乌克兰违反休战决议,公然炮击顿巴斯!俄要求美回应
乌军炮击顿巴斯损毁居民楼 当地人:3年来冷枪冷炮没断过
开打了!乌克兰突然攻击顿巴斯四大地区:普京可随时下令俄军反攻

放纵新纳粹主义武装亚速营强奸、屠杀平民

如果你不关心别的国家,起码应该知道亚速营曾经参与中国香港港独势力的黑暴、游行示威。那么你就知道这是谁养的狗了吧!

视频记录顿巴斯平民遭受的暴行:

亚速营大规模虐杀平民罪证视频,压缩包写了解压密码
什么是亚速营?维基百科链接打不开也可以看看这个:豆瓣用户:关于亚速营
腾讯新闻:亚速营信奉纳粹,还曾支持“港独”,怪不得俄罗斯要与乌克兰开战
亚速营信奉纳粹,还曾支持“港独”,怪不得俄罗斯要与乌克兰开战
起底乌克兰亚速营,极右翼民族主义者,连美国都拒绝提供武器 这里提到美国拒绝给这群纳粹余孽提供武器,但是鉴于美国政客、金融寡头的恶劣品质我是很难相信美国完全没有对其提供支持的。

乌克兰国民卫队发亚速营子弹抹猪油猎杀车臣兽人引战 推特拒删

美式“言论自由”的经典体现,批中国没言论自由的精美弱智最好别再拿言论自由打你自己的狗脸。
乌克兰国民卫队发亚速营子弹抹猪油猎杀车臣兽人引战 推特拒删

我在microsoft社区也发现了有人提问了类似问题,看下面的截图你应该知道大致怎么回事了吧。
bV7DQP.png
bV70zt.png
bV7rsf.png
实际,过去一个月,河南地区的edge.microsoft.com这个域名状态处于时断时续的可访问状态,不过最近两天已经彻底打不开了,多次多地ping测试可以发现,这个地址在中国多个地区都是又机率访问失败的,测试过程中只有部分地区是没有任何一次测试超时的。
感觉更像本地IDC的问题,河南移动这边,郑州和新乡经过实机测试确定是有问题的。
阿里云广州服务器倒是还能ping通,

[root@centos7 ~]# curl edge.microsoft.com
<h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0M8AZYgAAAAAAZ0NHPCJOQ51sCEgk80/KSEtHMzBFREdFMDIyMABFZGdl

希望早日恢复吧,一会儿给移动打电话反映一下。

今天,哦不,是昨天,我的好兄弟实在无聊,动了玩我的世界的念头,那么基岩和java二选一,因为我只买了基岩,所以他也跟着买了。(正打着H&G,嗐,索性关了游戏去淘宝给他买了个激活码,让店家帮忙激活了(阿根廷的礼品码,我自己的买的早应该是国区或者不限区的码。)

 下好了游戏开始尝试联机,很遗憾我邀请他不行他邀请我也进不去。突然想起了自己之前开过服务器,还写了篇文章。使用云服务器搭建我的世界基岩版服务器
那时候为了在centos上跑mc(其实当时的mcbds依赖的glib版本还没那么高,稍微下载了点支持库就可以直接在centos上跑,但是现在不行了,刚才测试要glib2.27,centos7除非自己编译,不然没得用)还专门研究了很久做了个ubuntu18.04的docker镜像。

 照着自己之前写的教程重新部署了一次,宝塔的docker管理器更新了一点但是并不影响我照葫芦画瓢。
折腾到现在凌晨1:04终于搞定了。
bP6410.png

明天再喊他来服务器玩,现在应该是睡着了。

顺便吐槽一下

网易和Mojang真是疯了,连下载服务器端文件的页面都有网易国内版mc的导流弹窗,F12去了又发现页面无法下拉。(很早我自建服务器的时候就碰到这个问题,最后没办法,右键查看页面源码在一堆H5代码里扒拉出来了服务器端的下载地址)

事情是这么回事,我一直在路由器和自己的手机,PC上使用腾讯DNSPod的公共DNS解析服务(ipv4和ipv6,并且在手机系统和PC浏览器设置了使用腾讯DOT/DOH服务。),但是今天我发现我打不开自建在我家云上的ipv6网站,浏览器报错是:net::ERR_CONNECTION_ABORTE
于是我在电脑上运行了ping:

PS C:\Users\xfox> ping home.xfox.fun

正在 Ping home.xfox.fun [2409:8a44:971:3690::137] 具有 32 字节的数据:
请求超时。

再登录我家云运行ifconfig,没有发现上述地址,显然dns解析到了一个过期的地址。尽管我设置的ipv6 DDNS脚本每2小时运行一次,但是由于这次他提交到DNSpod的是ipv6短地址,短地址租期太短,所以刚好翻车了。
 那么问题就很容易解决了,手动运行一下DDNS脚本不就好了吗?运行后,为了避免DNS缓存影响,我执行ipconfig /flushdns清除了DNS缓存,重新打开浏览器?????WTF,问题依旧!

再次更换DNS

 我尝试更换了阿里云的DNS,很遗憾问题依旧......ping 也显示域名记录仍然没有更新。。。短暂的思考之后,我死马当活马医,换上谷歌的公共DNS(我ping过可以解析,但是污染没污染就不好说了)。
打开浏览器,刷新,页面正常显示!离谱啊!
但是问题来了,我的域名DDNS服务是基于DNSPod的,我的DNS解析服务也是DNSPod的,DNSPod自己家控制解析的域名记录速度居然还不如远在美国的谷歌??????RNMTQ!!!!!

后记

我突然想起了之前也遇到过这个情况,我在DNSPod解析的域名刚手动更新完记录,浏览器是打不开的,可是用谷歌DNS的设备秒开了......就很离谱啊....
谷歌ipv6 DNS:经过81个数据包的测试最短 = 56ms,最长 = 214ms,平均 = 113ms
腾讯ipv6 DNS:经过45个数据包的测试最短 = 44ms,最长 = 172ms,平均 = 112ms
阿里ipv6 DNS:经过51个数据包的测试最短 = 20ms,最长 = 133ms,平均 = 69ms
测试环境:郑州移动200Mbps宽带(光纤入户),宽带拨号及路由设备:红米AC2100;测试上网设备:ThinkPad E14 Gen3 AMD (在Windows10下使用5Ghz WIFI上网)无线网卡:Realtek RTL8852AE WiFi 6 802.11ax

本文写作动机:

我在Debian Buster with Armbian Linux
5.3.0-rockchip64上配置cloudreve的持久化出现问题 nano /usr/lib/systemd/system/cloudreve.service出现如下红色报错: `Directory
'/usr/lib/systemd/system' does not exist`
当你按照cloudreve官方文档用vim会发现没有这个问题,只是有提示:[New DIRECTORY],所以进入/usr/lib/systemd看了一眼:只有这几个蓝色文件夹 boot catalog logind.conf.d user user-environment-generators user-generators user-preset 那么结合[New DIRECTORY]这一提示,其实就是没system这个文件夹,这时候又想起网友跟我说过nano有时候会碰到权限问题,但是vim就没这个问题。看起来新秀仍需打磨.......在/usr/lib/systemd/下新建system文件夹再执行就没事了。
systemd的相关东西看情况更新吧,用到了我就记上,没用到就随缘。

Systemd 目录

引用https://cloud.tencent.com/developer/article/1516125

Unit 文件按照 Systemd 约定,应该被放置指定的三个系统目录之一中。这三个目录是有优先级的,如下所示,越靠上的优先级越高。因此,在三个目录中有同名文件的时候,只有优先级最高的目录里的那个文件会被使用。

/etc/systemd/system:系统或用户自定义的配置文件
/run/systemd/system:软件运行时生成的配置文件
/usr/lib/systemd/system:系统或第三方软件安装时添加的配置文件。

CentOS 7:Unit 文件指向该目录
ubuntu 16:被移到了 /lib/systemd/system
Systemd 默认从目录 /etc/systemd/system/ 读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录 /usr/lib/systemd/system/,真正的配置文件存放在那个目录。

在Android下使用同文输入法

 前天的时候,因为一些事情让我在我的华为手机上重新开始使用同文输入法,不知道是因为什么原因输入法词库似乎出现了问题,打字出现很多不应出现的繁体字,卸载重装问题依旧。看群友说最近同文版本更新后挺稳定的,索性删干净本地配置文件,重新去github下载了最新版本安装包,然后手动下载了rimerc最新的配置文件进行配置。发现UI更改了,看上去比以前成熟了许多,输入也很舒服。

在linux mint下使用中州韵RIME输入法

 中州韵和同文输入法都是开源的中州韵输入法引擎(RIME)衍生的产物。之前一直没敢在linux下使用中州韵,但是同文在移动端的体验让我对RIME的其他平台的实现充满了信心。参照https://rime.im/download/ 的说明,我选择了fcitx-rime,因为我已经在PC上安装过基于fcitx实现的百度拼音输入法了。
安装参考fcitx-rime的github说明,linux mint是基于ubuntu的,我可以直接使用打包好的安装包。
当然,因为我很久没更新软件包了,故在此之前先通过包管理器更新了除了wine的全部软件包。随后重启PC开始安装中州韵。

sudo apt-get install fcitx-rime

等待命令执行完成后可以在右下角进入fcitx配置自己的输入法方案了,我目前在使用明月拼音,不过地球拼音也很棒啦!后者会有拼音提示的哦!

设置默认输入法方案

中州韵在linux下安装后默认方案是明月拼音(繁体),对于我一个中国大陆地区的用户来说肯定得修改成明月拼音简化字的。
用户文件目录是~/.config/fcitx/rime/,如果你用ibus路径应该也类似,很容易找到。
相关路径参照RimeWithSchemata#rime-中的數據文件分佈及作用
配置文件编写参考了rime中州韵输入法安装及配置【输入法】Rime-中州韵 基本设置 附:官方定制指南

以下操作可以参照注释手动在文件管理器里完成,不必强迫自己用命令进行。
cd /home/xfox/.config/fcitx/rime        #进入RIME的用户目录
touch default.custom.yaml               #创建自定义全局配置文件
nano default.custom.yaml                #编辑文件(随便你用什么编辑器)
不要创建default.yaml,这个文件是RIME在启动后自动动态拼接多个配置文件产生的总配置文件,直接创建并修改这一文件会在软件更新,重新部署等时刻丢失你的配置信息!
在你的自定义输入法配置文件中加入如下内容:
# default.custom.yaml
# 用户  输入法配置
patch:  
  schema_list:  # 输入方案列表
    - schema: luna_pinyin_simp  # 不使用其它输入方案, 只保留明月拼音-简化字输入方案
  menu:
    page_size: 5  # 候选词为5个

接下来重启fcitx后者点击重新部署。

这里发现一个很坑的地方,luna_pinyin_simp是指的朙月拼音-简化字,而你使用朙月拼音简化字对应生成的文件还是在luna_pinyin.userdb这个朙月拼音的文件夹里。所以,如果你想实现开机默认使用朙月拼音简化字方案,我上面引用的两个教程里,jrri这个人写了’输入法自定义方案设置为朙月拼音和自定义朙月拼音方案使用简体字‘两个自定义配置文件,就是完全错误的行为。如果你完全按照他的配置文件照抄出两个自定义配置文件然后重新启动fcitx后会出现报错,并且输入法配置错误无法正常输出汉字,只能输出英语。总而言之,你只需要设定默认输入法方案是朙月拼音-简化字就可以了,根本不需要去写朙月拼音的方案自定义内容(替你踩过坑了,不用谢我=-=)

在windows10下使用小狼毫(Weasel)输入法

 小狼毫是RIME在windows下的实现,https://rime.im/download/ 看开发日志已经很成熟了,等我下次使用windows10的时候顺便用它替换百度拼音。

 向自由软件开发者致敬!谢谢!

本篇博文全部在thinkpad上使用中州韵完成,输入体验极佳!

意外的惊喜:

我发现卸载百度拼音输入法后,linux下的原生微信2.1.1聊天框是可以正常使用中州韵输入文字的,而且正常显示。也就是说,微信输入框不显示文字的问题大概率是百度输入法的锅,万恶百度,万恶腾讯。