包含关键字 ARM 的文章

刚才看了一眼,淘宝一个店好像下架了,京东现在有货只要80块钱比我买的100多便宜了不少,不知道产品质量有无下降。

这东西我的使用体验还是不错的,不过美中不足的就是侧键的编程功能不能在无线模式下使用,必须插线,并且商家提供的控制软件只有Windows版本。

Wireshark抓包查看USB设备通讯

参考文章:Wireshark 用于USB抓包

过滤方:
usb.src == "host" and usb.dst=="1.2.0"
未完待续

时隔多年,LinuxQQ重新出炉了,最新公测版本和MAC的新版客户端一样采用Electron框架构建。
以下为公测群公告:

Linux QQ 全新来袭

🐧关于体验方式 1、x64架构安装包: https://dldir1.qq.com/qqfile/qq/QQNT/4691a571/QQ-v2.0.1-429_x64.deb
https://dldir1.qq.com/qqfile/qq/QQNT/4691a571/QQ-v2.0.1-429_x64.rpm
https://dldir1.qq.com/qqfile/qq/QQNT/4691a571/QQ-v2.0.1-429_x64.AppImage
2、arm64架构安装包:
https://dldir1.qq.com/qqfile/qq/QQNT/0186a650/QQ-v2.0.1-453_arm64.AppImage
https://dldir1.qq.com/qqfile/qq/QQNT/0186a650/QQ-v2.0.1-453_arm64.deb
https://dldir1.qq.com/qqfile/qq/QQNT/0186a650/QQ-v2.0.1-453_arm64.rpm

🐧关于体验名单 仅限12月6日19点前进群的成员

🐧关于体验反馈 点击主面板左下角的“更多-帮助-意见反馈”进行用户反馈

期待并感谢大家的体验和反馈~

实图展示

仍然需要扫码登录
2022-12-09T07:00:23.png
2022-12-09T07:06:10.png
2022-12-09T07:49:13.png

测试发现的问题

Linux xfox-ThinkPad-E14-Gen-3 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
  1. Linux Mint 21 x86_64 KDE 环境下默认的快捷键都无法正常响应,但截图功能触发后可以正常截图。
  2. 据说对内存占用作了一定优化,但是仍然无法掩盖Electron框架内置Chromium造成的过量内存占用通病。
  3. 任务栏最小化后台机制依旧毫无改进,点击退出窗口按钮后右侧任务栏依旧没有小图标显示,实际效果等同于窗口最小化。
  4. 点击使用QQ Zone网页进行跳转倒转KIO模块报错
    2022-12-09T07:56:58.png

优点

  1. 延续了Windows客户端良好的DPI缩放适应能力,界面相对美观。
  2. 聊天关键词表情热图功能

未完待续

这个问题自从我升级Mint21已经碰到过很多次了,原因大概就是apt-key这个命令马上要废弃了(按照惯例也很可能为了兼容一直都不砍掉),以后应该使用trusted.gpg.d 来管理密钥文件,也就是说:现在我们必须自己将密钥文件添加到/etc/apt/trusted.gpg.d/ 文件夹中

如何解决?

以OpenShot为例:
当你打开OpenShot官网试图安装每日构建版本,官方要求你添加PPA并更新存储库缓存,但是你将发现标题里的提示:

xfox@xfox-ThinkPad-E14-Gen-3:~$ sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
[sudo] password for xfox:           
您将添加以下PPA:
 This PPA contains the most recent source code from libopenshot (OpenShot Video Library). These packages are only intended for testers of OpenShot 2.0, as the source code can be highly unstable during active development of libopenshot.

If you are looking for daily builds of OpenShot 1.x, please go here: https://code.launchpad.net/~openshot.developers/+archive/daily
 更多信息: https://launchpad.net/~openshot.developers/+archive/ubuntu/libopenshot-daily
按Enter继续,按Ctrl+C取消

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Executing: /tmp/apt-key-gpghome.kiOrWySk0O/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys FBA0C227099A5360635E3D9152165BD6B9BA26FA
gpg: key 52165BD6B9BA26FA: public key "Launchpad OpenShot Development PPA" imported
gpg: Total number processed: 1
gpg:  

         imported: 1

根据终端输出,现在你知道了Launchpad OpenShot Development PPA的公钥指纹是:FBA0C227099A5360635E3D9152165BD6B9BA26FA
那么,现在使用GnuPG把这个指纹对应的二进制密钥文件丢进它应该去的位置:

你只需要输入密钥指纹的后八位就可以让你的设备识别这个密钥,但是,apt不识别ascii-armored格式的密钥,所以你应该先把它转换成apt支持的二进制格式。
sudo apt-key export B9BA26FA | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/openshot.gpg

值得注意的是,如果你是个没有独立思考能力只会照抄的CSD*的**,请不要把我这里的密钥指纹以及对证书文件的命名粘贴到你的计算机上。如果你这么干了,就别留言问我为什么还报错。

补充说明

如果软件包官方直接提供了二进制公钥文件,你可以直接将公钥丢进/etc/apt/trusted.gpg.d里,当然记得确保他们是二进制格式而不是常见的ASCII Armor格式。
你可以使用如下命令完成

gpg --import $KEY.asc
gpg --export $KEY_FINGERPRINT > $KEY.gpg

gpg [options] --dearmor [file]

使用-o 参数输出到目标路径的文件即可。

参考文章:

OpenPGP 密钥处理
Warning: apt-key is deprecated (SOLVED)
apt-key(8)
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead

FontLibs

多种字体可选,我选择给前台页面启用Harmony Sans。

尾声:

体验后禁用并删除。

问题

  1. Github只有1.0版本,后续更新版本和CDN源字体文件在其作者博客需要回复评论才可下载。我懒得等审核,也懒得回复
  2. Harmony Sans写死了用第三方CDN,我没兴趣改。
  3. Windows10 1600*900分辨率 100%缩放Harmony OS字体发糊

    评价

    如果你和我一样不是一个喜欢花活的人,那就别在字体上浪费你和阅读者的时间。

对于新手不管是使用DevEco 给HarmonyOS开发还是用用AS给Android开发应用,要完成窗口组件和一个网络请求得到数据的的绑定都异常的繁琐,有些问题没人教根本无法解决。但是同样的问题在Windows和Linux上几乎不存在,这似乎和JAVA这个怨种语言有分不开的关系。
很遗憾我现在嗐没办法用上eTS给手机开发,因为API6仅仅支持JS和JAVA,所以截至到现在,移动端应用开发的工具对于我就是浪费空间和多次尝试时间的电子垃圾。

已知家里的移动宽带挂载的NAS是Full Cone(全锥型),校内使用运营商提供的校园网接入(中国移动宽带)极有可能为Port Restricted Cone(端口限制圆锥型)或更糟糕的Symmetic(对称型)PS:2022年11月19日确认校内为:Port Restricted Cone

纸上谈兵

xtcp使用P2P的方式完成点对点穿透,根据2020-6-10-理解NAT穿越——黄腾霄可见,理论上全锥形NAT可以和四种常见NAT类型完成P2P链接。
通过查看Frp官方Git仓库的Issues记录,可以看到2019年12月30日leveljiujiu提出的新实现方式理论上可以实现全锥形和端口限制圆锥型的点对点NAT穿透。参见优化XTCP穿透性能的代码修改——leveljiujiu 而2020年5月19日rvier明确提出

一边Full Clone 一边 Symmetric(Visitor) 打洞成功,一边Full Clone 一边Port Restricted Cone(Visitor) 型NAT 经测试目前无效。
但是,目前该分支和另一个具有类似效果的分支被拒绝合并,fatedier的理由是:我们专注于 v2 体系结构
What Fuck ,我根本没时间等fatedier撮出来FrpV2主线的release啊!
PS:我记得Frp的竞争者NPS也有点对点内网穿透的功能,既然Frp的作者不想合并,那就看看NPS的P2P写的怎么样。扒拉了一些资料,可以确定NPS的点对点实现(P2P)比Frp要完善的多,NPS在国内三大运营商环境下打洞应该比Frp效果好很多,理论上P2P可以连接的情况下NPS都能打通!那就暂定使用NPS吧。

预期实现

J3160 NAS(全锥型NAT客户端)——>公网服务器——>OrangePi Zero2开发板(对称型/端口限制圆锥型 armv8-a客户端)

J3160 NAS(全锥型NAT x86_64客户端)——>公网服务器——>Xiaomi R3G路由器(对称型/端口限制圆锥型 mipsel客户端 )

实践

2022年11月19日,检查并查看NPS官方文档修正了在家部署时配置的一些错误。
经过尝试,没能打通NAS(Full Cone)和校园网(Port Restricted Cone)
2022年11日20日:凌晨SSH打通了一次,此后再也没打通过,RDP是一直打不通只能走中转。
发现家里NAS终端崩溃了,因为我之前一直靠终端直接运行NPC客户端。官方提供的npc install 在Debian11下无法正确的固化进程,我就干脆上docker了,效果还不错。

这是我写的DS18B20用户态驱动

Goodspeed最近好像比较清闲,所以这位有点闲的同学跑来远程我的OrangePi Zero2 完成了一份正经的单总线驱动。实现后效果如下:

root@orangepizero2:~# cd /sys/bus/w1/devices/28-0721c061a6ac/
root@orangepizero2:/sys/bus/w1/devices/28-0721c061a6ac# ls
alarms eeprom_cmd hwmon power temperature
conv_time ext_power id resolution uevent
driver features name subsystem w1_slave
root@orangepizero2:/sys/bus/w1/devices/28-0721c061a6ac# cat w1_slave
bb 01 4b 46 7f ff 0c 10 74 : crc=74 YES
bb 01 4b 46 7f ff 0c 10 74 t=27687

显而易见大约27摄氏度,详细过程会在他的博客写好后在下方公开。(人比人气死人:)

给香橙派 Zero 2 适配 1-wire 总线

给香橙派 Zero 2 适配 1-wire 总线————William Goodspeed
在向Goodspeed抱怨此事之前,香橙派官方4群里邹明燊先生也曾经写过一个dts文件,也是根据其他已经支持1-wire的设备简单改写的(如下),但是我通过orangepi-add-overlay xxx.dts 添加后会在日志中看到错误信息,即我上一篇文章里写被占用的哪些错误信息,并且经过测试dts生成的dtb文件没有正常工作。而Goodspeed提供的截图中可以看到,这个dts文件并没有写错,只是设置的GPIO不同。

/dts-v1/;
/plugin/;

/ {
    compatible = "allwinner,sun50i-h616";

    fragment@0 {
        target = <&pio>;
        __overlay__ {
            w1_pins: w1_pins {
                pins = "PC9";
                function = "gpio_in";
            };
        };
    };

    fragment@1 {
        target-path = "/";
        __overlay__ {
            onewire@0 {
                compatible = "w1-gpio";
                pinctrl-names = "default";
                pinctrl-0 = <&w1_pins>;
                gpios = <&pio 2 9 0>; /* PC9 */
                status = "okay";
            };
        };
    };
};

二者的主要不同在于Goodspeed是在 arch/arm64/boot/dts/allwinner/overlay/Makefile 中加入一行 sun50i-h616-w1-gpio.dtbo,make dtbs让构建系统编译新的 overlay,而邹明燊先生试图让我直接通过orangepi-add-overlay将改写好的单总线支持dts文件编译并自动添加到overlay路径。
这两者方法不太一样,Goodspeed的方法是从orange-pi-5.16-sunxi64 linux分支源码中自动编译生成dtbo文件,而邹明燊先生是自己写dts从写好的dts去编译得到dtbo文件。但是不知道为什么后者无法生效,从内核日志里的报错看是和pinctl冲突了,也就是说比pinctl抢先占用了pin,但是理论上应该先由pinctl统一管理,驱动应该基于pinctl运行。从这点看,由linux分支源码去自动编译可能会得以避开这一问题,但是具体避开抢占问题的原理就不得而知了,我也不打算深究。

Goodspeed编译好的单总线设备树overlay文件

prebuilt-dtbs.tar

关于linux设备树,请参考如下内容深入浅出理解Linux设备树(DTS)
Dts:DTS即Device Tree Source,是一个文本形式的文件,用于描述硬件信息。一般都是固定信息,无法变更,无法overlay。
Dtsi:可以理解为dts的公共部分,添加、变更非常灵活。Dtsi包含在dts中。
Dtb:Dtb编译出来的二进制
Dtbo:Overlay编译出来的二进制
dtbo-base:指定overlay是以哪个dtb为base来覆盖的。
Node:树的节点
Property:属性

之前发了一篇文章说博客现在用的服务器2022年7月09到期,后来一直在思考迁移到哪里去。先是打算买国内大IDC的大陆境内服务器,发现还不如买香港划算,再后来想着挂博客,买个美国廉价VPS也不是不行,活动年付平均下来一个月不超过10块钱。但是除了带宽,其他配置也不高。

我的需求和现状

左思右想,我需要保证博客在常规网络环境下正常通过域名访问,也就是最低限度:IPv4可访问,最好IPv4+6 双栈。目前家里的宽带V6没有ban 80和443,但是在学校和一些网络欠发达地区,常常只有IPv4可用。如果把服务器放在家里本地,就必须考虑设备性能和功耗,已有的我家云1G内存已经不够了,因此我需要添置一个新的低功耗设备;无论是ARM架构还是x86架构均可,甚至可以是RISC-V。

- 阅读剩余部分 -