边界条件之场
尝试 btrfs 遇到的第一个问题: systemd "找不到"我放在同分区但不同 subvolume 里的 service file 🤔
GitHub
man: document explicitly that unit files on mount points that are established at late boot cannot be read · Issue #8307 · systemd/systemd
Submission type Bug report systemd version the issue has been seen with systemctl --version systemd 236 +PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +AC...
边界条件之场
昨天刚在实体机装 openSUSE Tumbleweed ,今天 opensuse.org 就宕机了 🫥 wiki、manpage、软件仓库全都无法访问。他要是昨天宕,那我连 ssh 都连不上,因为从来没用过 firewalld 不知道怎么开端口
我怎么感觉安装的时候我 btrfs 就配错了,根挂载点好像不是根 subvolume 🤦
先搞个 vm 研究研究
先搞个 vm 研究研究
边界条件之场
我怎么感觉安装的时候我 btrfs 就配错了,根挂载点好像不是根 subvolume 🤦 先搞个 vm 研究研究
16 GiB 内存还是太小了,开了两个带桌面环境的 vm 就只剩几百 MiB 可用(
边界条件之场
之前 framework 宣布这个的时候我还感觉有点可惜,用的是去年底发布的 core ultra series 1 meteor lake 而不是马上就要发布的 series 2 lunar lake 。 今天新闻出来了, lunar lake memory on chip ,焊死并且最大 32G 😁 这么下去的话像 LPCAMM2 这种新式内存标准根本就见不到市场需求,肯定发展不起来。 fuck you #intel #trash
YouTube
AMD’s New Laptops: Dumb Name, Wicked Performance - Strix Point Ryzen AI 300 Review
Check out Acronis Cyber Protect for businesses at https://go.acronis.com/LTT
Create your build at https://www.buildredux.com/linus
AMD just released their new AMD Ryzen AI (groan) HX 370 processor for laptops, and besides the naming this thing is great.…
Create your build at https://www.buildredux.com/linus
AMD just released their new AMD Ryzen AI (groan) HX 370 processor for laptops, and besides the naming this thing is great.…
边界条件之场
能用媒体控制键了 👀
刷上硬件试了一下,能用。
发现的新问题是 consumer 相关报文有 key repeat 问题,目前按下「音量加」会按照 polling rate 每 10ms 加一下,非常爆炸 🤪
发现的新问题是 consumer 相关报文有 key repeat 问题,目前按下「音量加」会按照 polling rate 每 10ms 加一下,非常爆炸 🤪
边界条件之场
刷上硬件试了一下,能用。 发现的新问题是 consumer 相关报文有 key repeat 问题,目前按下「音量加」会按照 polling rate 每 10ms 加一下,非常爆炸 🤪
在另一个问题上也获得了意外进展:
目前我日常使用的鼠标键盘会时不时抽风,表现为键盘随机漏几个键,鼠标随机重新连接无线接收器。由于完全看不出规律且不是非常严重,一直没有深入调查。
现在我可以稳定复现了。只要我把自己写的这个映射器插到电脑上,映射器上连着的键盘工作完全正常,但电脑另一端连接的 绿联 usb hub 上连着的键盘和无线鼠标就会非常稳定地开始抽风。
改天筛查一下看看到底谁是内鬼 👀
目前我日常使用的鼠标键盘会时不时抽风,表现为键盘随机漏几个键,鼠标随机重新连接无线接收器。由于完全看不出规律且不是非常严重,一直没有深入调查。
现在我可以稳定复现了。只要我把自己写的这个映射器插到电脑上,映射器上连着的键盘工作完全正常,但电脑另一端连接的 绿联 usb hub 上连着的键盘和无线鼠标就会非常稳定地开始抽风。
改天筛查一下看看到底谁是内鬼 👀
边界条件之场
把代码刷到 pi pico 上直接就 core panic。 排查了一会估计是炸 stack 了,不知道为什么我的一个数据结构有 115.8 KiB 大 🥴(pi pico 总共就只有 264 kB 内存)
这个问题它跑回来咬我了(上次偷懒直接把不用的特性关了,没实际解决问题
现在用自己写的映射器重新实现 kmonad 配置,内存需求涨回 112 KiB。经过一番
现在用自己写的映射器重新实现 kmonad 配置,内存需求涨回 112 KiB。经过一番
#[repr(packed)] 改写以及结构调整后压到了 36.1 KiB 🤔
边界条件之场
这个问题它跑回来咬我了(上次偷懒直接把不用的特性关了,没实际解决问题 现在用自己写的映射器重新实现 kmonad 配置,内存需求涨回 112 KiB。经过一番 #[repr(packed)] 改写以及结构调整后压到了 36.1 KiB 🤔
and ... everything works!
现在就差 LED 报文 pass through,这个映射器就算是初步完工了 🥰
下一步转到小型板上调试,然后就是打 pcb + 画外壳
现在就差 LED 报文 pass through,这个映射器就算是初步完工了 🥰
下一步转到小型板上调试,然后就是打 pcb + 画外壳
边界条件之场
在另一个问题上也获得了意外进展: 目前我日常使用的鼠标键盘会时不时抽风,表现为键盘随机漏几个键,鼠标随机重新连接无线接收器。由于完全看不出规律且不是非常严重,一直没有深入调查。 现在我可以稳定复现了。只要我把自己写的这个映射器插到电脑上,映射器上连着的键盘工作完全正常,但电脑另一端连接的 绿联 usb hub 上连着的键盘和无线鼠标就会非常稳定地开始抽风。 改天筛查一下看看到底谁是内鬼 👀
使用 scrcpy 串流手机屏幕或者用 rufus 写启动盘也有概率触发键鼠抽风,但并不是每次都会 🤔
啊? RPi Pico 2 / RP2350 几个小时前几十分钟前发布了?
目前官方页面好像都没 google 索引,这也太新鲜了吧 👀
+ https://www.raspberrypi.com/...
+ https://www.tomshardware.com/...
+ https://www.youtube.com/watch?v=oXF_lVwA8A4
又: 都 4202 年了,还来 USB Micro-B ??? 这回也是为了 drop-in 向后兼容吗??👎
目前官方页面好像都没 google 索引,这也太新鲜了吧 👀
+ https://www.raspberrypi.com/...
+ https://www.tomshardware.com/...
+ https://www.youtube.com/watch?v=oXF_lVwA8A4
又: 都 4202 年了,还来 USB Micro-B ??? 这回也是为了 drop-in 向后兼容吗??👎
Tom's Hardware
Raspberry Pi Pico 2 Launches with Arm + Risc V Cores: hands-on with the new, $5 microcontroller
24 hours with the latest Raspberry Pi Pico
手边只有一台笔记本、一块开发板,不得已对着黑盒疯狂 poke 了一天半,搞明白一件事情:
tinyusb 各种 api 里有一个参数叫
比如下面这个 usb 配置:
向 (
(
而是
(
我疯狂调试一天半最后是怎么搞清楚的呢?
靠的是 非常仔细 地阅读 tinyusb 的 多个 样例,最终注意到一些样例里收发数据用的
这种完全没有文档,全靠 example 的项目,使用体验确实酸爽 🥴
#wtf #高血压 #tinyusb
tinyusb 各种 api 里有一个参数叫
itf/instance , 它指的不是 usb 的 "interface number", 而是按照 usb class 划分后每个 interface 在各自 class 里的 index.比如下面这个 usb 配置:
usb
interface usb
number class name
------------------------------
0 | hid | hid1
1 | hid | hid2
2 | cdc | *cdc1
3 | data | cdc1data
4 | hid | *hid3
5 | cdc | *cdc2
6 | data | cdc2data
向 (
cdc1, hid3, cdc2) 发送数据需要使用的 itf 参数不是(
2, 4, 5)而是
(
0, 2, 1) 😐我疯狂调试一天半最后是怎么搞清楚的呢?
靠的是 非常仔细 地阅读 tinyusb 的 多个 样例,最终注意到一些样例里收发数据用的
itf 参数跟实际 interface number 不一样。一开始我以为样例写错了,但刷上硬件却发现它的这些样例都能正常工作。这种完全没有文档,全靠 example 的项目,使用体验确实酸爽 🥴
#wtf #高血压 #tinyusb
🤯2
边界条件之场
and ... everything works! 现在就差 LED 报文 pass through,这个映射器就算是初步完工了 🥰 下一步转到小型板上调试,然后就是打 pcb + 画外壳
现阶段需要的功能都写完了、bug 全都调通了、小型板上验证了没有新问题 🥰
开始学怎么用 KiCad 画 pcb ……
开始学怎么用 KiCad 画 pcb ……
边界条件之场
麻了,usb spec 通篇只说用 unicode,不说到底是 utf-8, 16, 还是 32,也不说 byte order 😇 根据样例里面每 ascii 字符 2 byte 来看猜测是 utf-16。再根据 usb 规范里面其它 multi-byte 数据的惯例,猜测是 little endian。 网上搜了搜好像都说是 UTF-16LE ,但就是没看到来自 usb.org 的官方说法 😇
在一份 "Engineering Change Notice" 里指明了是 UTF-16LE。新的 usb 标准里应该直接有写,但我看的是 usb2.0 标准,这份文件仅仅是跟 2.0 spec(和十几个其它文件)打包在了一个压缩包里 🤡