0%

1
Hello World!

Push the post from server success!
update nodejs and npm success!
push with Linux/Windows SSH key success!
CDN deployment success!
Plugins activation success!
Permalink success!
Pages success!
Code insert success!
PDF insert success!
About/Contact pages success!

之前将手机升级到 iOS14 Beta,于是华丽丽连不上不能和我的苹果手表配对了。我以为是Beta版本的bug,于是将Beta证书卸载,等了好久等到了iOS 14正式版,试了iOS 14.01以及 14.1 可是我的问题依旧,依然在配对时候提示手表需要软件升级,但是报错说我没有网络链接。我尝试过重置手表,试过在iCloud里边解除绑定,试了重置手机网络链接,但是逐一失败了。我甚至还去了苹果店,万万没想到的是,唯一的一起去售后,真是差劲到极致的一次体验。我将我得经历记录在另外一篇日志中:移除 。

刚开始我从网上查资料,查到很多和我相同情况的同学,可是唯一的解决办法是找一个iOS 13的设备,先将苹果手表升级,然后再配对到使用iOS 14的设备上。可是啊,我哪有iOS 13的设备,这明明是系统的bug,可是苹果为啥还不修复。自从上次在苹果店被恶心到了,很久不想再处理这个事情,我的手表扔那儿很久不想去管。

今天闲来无事网上查了查,在苹果开发者论坛终于看到有人讨论并且给出了切实可行的iOS14 配对苹果手表的方案。我将步骤简单总结在这里,希望遇到和我一样境遇的同学,可以参考一下。

  1. 这个问题是手表不支持5G Wifi造成的,现在多数路由器是5G信号或者5G与2.4G合并,而iOS14这个bug简直愚蠢到,因为手机自动连接了5G的Wifi,而手表没这个模块,于是冲突了。所以第一步是将打开路由器设置,将5G模式关闭,只保留2.4G信号,尤其那种信号融合的,更的再三确认,只有2.4G而没有5G,不然当同一个SSID时候,iPhone优先连接5G。
  2. 手表按住关机键还是皇冠键,我忘了,点击重置,需要一定时间。
  3. 到iPhone设置==>通用==>还原==>还原网络设置(注意,此操作会移除所有VPN设置,以及储存的连接过的Wifi密码)
  4. 重新连接2.4G Wifi,需要输入密码
  5. 手机接近手表,提示连接,根据提示连接。第一次可能失败,需要点取消再点击还原手表设置。
  6. 需要一定时间,然后手表显示画面是配对画面,而手机软件显示可以新给自己配对。
  7. 现在正常流程配对,终于不再软件更新报无网络连接的错误了。

下载特别慢,等了三四个小时吧,还没下载完,太困了就去睡了,第二天早晨看已经下载好。之后安装又一个小时左右,不过最终,终于回来了。

在知乎镜像贴与我互动: Passerby

Reference:

https://developer.apple.com/forums/thread/652021?login=true&page=1#643193022

最近我的电脑有 Type-C 接口的问题,于是查了很多资料也联系了客服。期间看到了戴尔官方关于这个型号的pdf用户手册。我的电脑计划服役10年,就像之前买家用电器要将说明书电路图放好一样,官方文档也有必要留存一份。不知道存那儿好,又由于是公开的资料,所以就放在这里吧,说不定其他人也需要,正好可以很方便看一看。

我的打印机型号是HP PSC 1205打印扫描复印一体机,查询亚马逊英国站在2002年就上架了这款商品,真的是有年头了。虽然年代久远了点,可是用着还挺好,各项功能满足我的需求。就是在现代社会稍微有一点点瑕疵,使用起来有些许不方便,我的写字桌也比较小,最近在家办公又拿回来一个电脑,俩笔记本一个显示器,桌子就占满了,没有一点点空间放我的打印机。并且打印机也不像显示器天天用,放在桌子上也挺浪费桌子空间。

于是我将打印机放在另外一个地方,然后连接一个树莓派,在树莓派上运行打印机服务,这样就可以设置成远程打印机。树莓派通过无线远程连接路由器,这样我家庭网络都可以发现搜索到我的网络打印机,包括手机。我的古董打印机支持了时髦的无线模式,美滋滋。但是还有一点不足,就是只能打印不能远程扫描。我尝试了原生CUPS的网络打印协议,以及Samba的网络打印协议,都是只支持打印功能,而丢失了扫描功能。然后我想了个曲线解决这个问题的方法,使用远程USB的软件,当我电脑需要扫描功能时候,通过远程USB连接到我的树莓派上的打印机,这样对于电脑来讲,就像是亲自通过USB连接上硬件打印机一样。

远程USB我使用的VirtualHere,免费的license支持一个设备,正好满足我的需求。在此记录一下我的流程,给自己一个备份,同时可能也能帮助到有类似需求的人。

树莓派版本的VirtualHere服务器端下来地址在这个网页:

https://www.virtualhere.com/usb_server_software

在Generic VirtualHere USB Server Builds下 “VirtualHere USB Server for Linux (ARM) <– Raspberry Pi, pi2, pi3,pi4,BeagleBone, Odroid, Angstrom, & any ARM 32-bit based Android” 是对应免费license的版本。可以先下载到本地,然后通过WinSCP传到树莓派上,或者通过下边的脚本一步到位。

https://www.virtualhere.com/oem_faq

这个页面是官方的Linux下安装服务器端的指导,包含了各种架构的步骤。我在这里把有用的提炼出来,其中对于树莓派端,下载以及赋予文件执行权限如下:

1
2
3
wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm
sudo chmod +x ./vhusbdarm
sudo mv vhusbdarm /usr/sbin

这个命令和原帮助文档基本相同,我只是在第一步更新了一下对于树莓派的文件下载地址。其中第二步是授予执行权限,第三步是将程序放在超级用户可执行命令的文件夹下。

添加一步,在执行完第一步第二步当程序下载好并且赋予执行的权限后,先本地尝试运行一次,这样会生成程序需要的配置文件在同一个文件夹:

1
./vhusbdarm

ctrl+c 终止运行,可以看本地配置文件名为 config.ini

根据教程,创建 /etc/systemd/system/virtualhere.service 文件,填入以下内容

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=VirtualHere USB Sharing
Requires=networking.service
After=networking.service
[Service]
ExecStartPre=/bin/sh -c 'logger VirtualHere settling...;sleep 1s;logger VirtualHere settled'
ExecStart=/usr/sbin/vhusbdarm
Type=idle
[Install]
WantedBy=multi-user.target

然后执行如下语句:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable virtualhere
sudo systemctl start virtualhere

这些命令具体做的事情可以大体总结为生成要给新的系统服务,然后告诉Linux更新一下并且将新添加的服务运行。

这样理论上讲,在和树莓派同一个路由器内网下的电脑,通过官网下载VirtualHere Client客户端就可以自动发现网络中的这个设备下挂载的所有USB设备了。在我这里Windows客户端自动发现功能并不好用,偶尔发现不到。所以我手动挡添加了树莓派的IP在VirtualHere Client里边如下图,前边的IP为树莓派内网IP,7575是免费版默认端口

有时候还会自动识别成功,这样就是一个自动一个手动的,在窗口显示两个,也是挺讨人厌的。

到现在对于绝大多数同学已经满足需求了。如果需要电脑扫描的话,就通过在Windows上VirtualHere客户端双击一下psc 1200 series,这样远程USB程序就将电脑和打印机通过虚拟USB连接了起来。实现了远程打印的功能。但是在我这里还有一点点小瑕疵,一个是我不清楚当我在Windows断开连接,那树莓派远程打印功能有没有自动还原,其他设备还能不能搜索到以及连接打印机,通过网络打印协议打印文件,而不是通过虚拟USB连接打印机。另外如上图,由于我树莓派比较老没有无线功能,我连接了一个USB网卡,在VirtualHere客户端会显示Cohiba 3887 rev0这个,这就是我的无线网卡。但是我千万不能点错点到这里,一旦我点击,树莓派就会试图将无线网卡通过虚拟USB连接到我的Windows电脑上,同时断开在树莓派上的正常服务。这样就有一个悖论,网卡断开了那么树莓派就失联了,也就无从谈起远程网络USB的啥事情,因为我Windows电脑已经无法和树莓派通信。为了解决这个问题我查看帮助手册得知可以通过修改配置文件,让一些设备隐藏。配置文件的介绍在这里,其中包含了许许多多可以额外配置的功能:

https://www.virtualhere.com/configuration_faq

其中AutoAttachToKernel这个功能我很喜欢,将其置1的话,当Client端断开连接,那么这个设备就会重新连接树莓派执行树莓派的任务,正好解决了刚才我的那个困扰。IgnoredDevices就是忽略一些设备。帮助文档也讲了,由于树莓派Ethernet网络接口其实也是通过一个USB加上转换芯片实现的,连接这个设备也意义不大,他们默认给树莓派用户屏蔽了424/ec00 这个设备。根据帮助文件在Linux下将配置文件放在/root下边。将config.ini更新如下:

1
2
3
4
5
6
7
It=XXXXXXXXXX
EasyFindId=XXXXXXXXXXXXXXXXXXXXX
EasyFindPin=XXXXXX
UseAVAHI=1
IgnoredDevices=1435/0427,424/EC00
AutoAttachToKernel=1
ServerName=VirtualHere@Raspberry Pi

其中IgnoreDevices的厂商和型号信息,可以通过Windows中VirtualHere 客户端右键对应的设备属性中查看。1435/0427是我的无线网卡的厂商以及型号信息,424/EC00是刚才提到的树莓派Ethernet的硬件。之所以这里我又写了出来,是因为经过测试,如果不加IgnoredDevices的话,这个设备被默认屏蔽,但是使用了这个命令,我只屏蔽了1435/0427的话,Ethernet的那个伪USB就显现出来了。我对此的理解是默认可以把这个端口屏蔽掉,但是如果我们选择手动屏蔽的话,那么这个文件也需要我们手动去打理。看下图设备信息,就是官方文档讲的那个USB to Ethernet 转换器。

可是我尝试上边添加服务后自动化脚本,程序并没有调用/root下配置文件,而是在/usr/sbin文件夹又新生成一个配置文件。所以我们在讲config.ini放在/root下同时修改一下上边的新增服务文件的内容:

在/etc/systemd/system/virtualhere.service 中修改为如下。其实就是ExecStart那一行有改变,增加了带配置文件运行的参数。

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=VirtualHere USB Sharing
Requires=networking.service
After=networking.service
[Service]
ExecStartPre=/bin/sh -c 'logger VirtualHere settling...;sleep 1s;logger VirtualHere settled'
ExecStart=/usr/sbin/vhusbdarm -c /root/config.ini
Type=idle
[Install]
WantedBy=multi-user.target

测试一下,通过网络打印机协议打印测试页,效果很棒。

然后通过上边的教程,远程扫描,很完美,赞赞赞。

另外经过测试,当打印机被Windows通过虚拟USB连接走后,树莓派远程打印服务还可以接受任务,然后缓存在CUPS程序中,在Windows断开连接后,CUPS恢复对于打印机的控制权,然后顺序执行缓存中的打印任务,棒棒棒。这样我的2002年古董打印扫描复印一体机,就变成了时髦的支持网络打印以及无线打印的智能打印机了。

在知乎镜像贴与我互动: 树莓派安装VirtualHere服务器端

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

在知乎镜像贴与我互动: Passerby