技术手记

奇怪的电子设备修理经历

最近“修”好了几台电子设备,给“修”字加引号,是因为其实也没有修这个动作,莫名其妙地坏,又莫名其妙的好了

红米 X65 电视 L65M5-RK 背光不亮

故障表现

这台电视机是 2021 年买了在家里客厅使用的,这个夏天的某一天,娃突然说屏幕没显示,仔细分辨后并不是机器彻底坏了或屏坏了,而是屏下背光不亮了。具体表现是开机后屏幕不亮,或闪一下,但是有声音,贴近看能看到非常暗的画面

排查定位

先用重启大法,长按开关和拔电源长按开关都试过,怎样都不行

上网搜各种表现,说大概率是背光坏了。打电话问官方售后,因为已经过保,且这个屏幕尺寸相对偏大,报价大几百,还不确定能弄好,这个价格就不如换个新的了。在 B 站上搜换背光的视频,还是有点麻烦的,主要就是要两人操作且小心点别把液晶面板给弄坏了

自己动手更换小米电视L65M5-AD背光,省了500块!教程!#小米电视#L65M5-AD#小米65寸电视 BV1U7421K7Am

最终决定还是给家里换个新电视,这个旧的弄来公司,如果能修好就给某个会议室用,修不好么就换铁盆吧

「维修」过程

在淘宝上按型号买好背光条,把家里之前用来拆集成吊顶的吸盘也带来公司,以备拆机时吸液晶面板用

还好有一辆MPV能把电视机扛来办公室

还好有一辆MPV能把电视机扛来办公室

某天中午吃过饭,拉上伞破一起开搞,期间引来一堆人路过围观「原来电视机里面是这样的呀!」「电视机还能修?」

在公司先确认故障表现还是一样的,各种哼哧哼哧拆,螺丝真的多,而且还有好几处是隐藏的,要拆掉前面部分才能露出来

面板拆下来时发现是用胶粘在框上的,看起来跟之前办公室那批面板脱落的 Dell P2418D 显示器一样,难怪现在大部分电视机都说不允许吊装时倾斜向下

最后拆到背光后那层导光纸时,原来是粘上去的,贼难揭下来,中间还撕破了一点

在最后准备换背光条时,还插电验证了一下,还是原来的问题表现,背光闪一下就不亮了。等真正看从哪根开始换时,随口说要不再通电看下?于是插电按了一次开关,亮瞎狗眼的整片背光亮起来,好了!

各种验证,背光的确是好了,就这样莫名其妙也不知道动了哪里,如果是接触不良啥的,那凭什么拆的过程和准备换之前的第一次验证又不行

然后就是继续哼哧哼哧装回去,过程中继续验证面板没被整坏,期间有出现过面板左右两边亮度不一样的情况,估计是走的不同的排线没插好,重新插拔面板排线后没再出现这个情况。后来还发现面板周围那圈胶估计不太牢了,就用宽的打包胶带给四周贴了下,挂到一个电视推车架上,留在公司会议室里给充公吧

后面几天持续验证,确认不是一时的回光返照,而是真的持续可用,但家里新电视都买了,也懒得再拖回去,至于已经到货的背光条,问过淘宝商家说不影响二次销售可以无理由退货,那就退了吧

ThinkPad X1 Carbon Gen6 屏幕无显示

故障表现

这台 X1C2018 笔记本是从闲鱼收的,给娃拿来学编程用,大致配置是 i7-8650U / 16G / 256G / 2560x1440 高分屏 / LTE。机器是好机器,也是一代经典,之前还有一台 i5 处理器 1080p 屏幕的给老爸用了

先是在家偶尔遇到使用过程中屏幕黑掉,调整一下屏幕开合角度可能就会恢复,后面是在带去上课的时候遇到黑屏,开合屏幕也无法自愈,但是关机回家放了半天就好了

再就是月初某次去上课,黑了就再没点亮

排查定位

电脑能开机,外接显示器可用,说明主板啥的都没坏。进到系统里还能看到有内屏,并且分辨率啥的信息都正确,说明至少主板上的显卡部分都是好的,面板大概率也没坏

拆机,插拔各种排线,试图排除接触不良的情况,无果

找 ChatGPT 问,说大概率是屏线坏了,或者是屏线靠面板侧的接触有问题。搜对应的 Hardware Maintenance Manual,看起来自己也能拆,后面又找了视频看,拆到面板这一层还是能自己搞定的

ThinkPad X1 Carbon 6th更换天马2K 120hz屏幕,详细教程 BV1B94y1x7To

「维修」过程

吸取了上次修电视机背光的经验,这次在没有百分百确定故障原因前先别着急下单买屏线

拆到屏幕侧,重新插拔屏线在面板侧的接口,还是不行

拆到这一步再把屏轴卸了就能把面板拿下来的 ThinkPad X1 Carbon Gen6

拆到这一步再把屏轴卸了就能把面板拿下来的 ThinkPad X1 Carbon Gen6

期间伞破拿他的同款 X1Cg6 来,说看看能不能直接上 2K 屏,行的话回头他整个 2K120Hz 的天马屏看(就是上面 B 站视频里那个),换到他那,也是点不亮,但系统能读到屏幕信息

好了,各种排除法,我的电脑其他部位没问题,这个屏带线插到另一台电脑上故障表现一样,去淘宝下单屏线准备再抢救下呗

把裸面板加屏线接回自己电脑,准备移到空工位放着等淘宝屏线到货再说。鬼使神差又按了下电源键,突然发现屏幕上红底的 Lenovo 标志出来了……

对,就是这样又好了,后面任我各种晃悠屏线都没问题,换到伞破电脑上试过也没问题,再继续装回来,跟淘宝商家商量还没发货可以退单的吧,倒是屏幕的 B 面是粘上去的,另外下单胶带来弄

后面自己用胶把 B 面粘回去,有点偏差,而且把摄像头遮挡滑盖的黑阀拨片给卡住了,不过倒是问题不大,继续用吧

ThinkBook 14+ 2022 无法开机

故障表现

某台被当测试机用的 ThinkBook 14+ 2022,i5-12500H 款,正式的型号应该叫 ThinkBook 14 G4+ IAP 21CX

某天被同事反馈开不了机,过去看不管是否插外接电源,按开机键要么没反应,要么键盘背光灯亮几秒,但屏幕没显示,也没听到系统风扇转,然后就完全掉电

此处注意到插外接电源时,机身侧面 USB-C 口旁边的电源指示灯,是黄色闪烁状态,这不符合官方说明里只有白色或黄色常亮或熄灭的状态,看起来整个电源系统都可能有问题

排查定位

既然插电有问题,那先换个电源看?不行。用不同电源插不同的 USB-C 口?也不行。拔电只用电池呢?还是不行

最近这些年的 ThinkPad 和 ThinkBook 都有 EC 重置孔,之前遇到 USB-C 口不能用,几乎都通过重置 EC 的方法解决。那戳 EC 孔 20 秒,再试,依旧不行。除了戳 EC 孔重置,也长按电源键释放可能的残电?不出意外并没有任何反应

拆机,断掉电池和主板的排线,只接外部电源呢?故障表现一模一样

想断掉主板 BIOS 电池,但这个在主板副板的背面,要挑开那个排线得把主板副板整个取下来,觉得太费劲就没在这一段来做这个尝试

最小化主板,把 SSD、无线网卡、屏幕排线、散热风扇、主板副板 这些能从主板上断开的通通断开,用机器原配电源和另一个 ThinkPad 原配电源在两个 USB-C 口交替尝试,依旧是插电闪黄灯

「维修」过程

都拆成这样还不行,也没有更多工具来定位或修复,就这样吧,各种排线装回去,在把电池接上后,心有不甘习惯性没接电源按了下开机键,就,开机了

确认进了系统,这时候再把电源插上,机身侧面的电源指示灯常亮黄色,表示当前通电且在充电,看电池电量接近满格,一会充满指示灯转常亮白色,说明通电且没在充电,一切正常

这里有一个细节是第一次能进系统时似乎看到了 BIOS 升级的「正在升级系统,请不要关闭电源」的提示,所以可能是上次关机重启过程中有在升级 BIOS 但被断了电?不过一般电池也还在的啊,不至于电池电量都不够升级的

最后这台电脑能进之前的系统,确认原系统不再有用后,抹盘装成 Omarchy 尝了下鲜,最后装回 Windows 重置成初始状态,还回公司备件库

外接键盘映射苹果 Globe/Fn 键

曾经在 macOS 实用小工具记录 2 里提到苹果修改了锁屏快捷键,可以用 Ctrl+Cmd+Q 锁屏,而不用模拟之前的 Power 键,对 Karabiner 不再有需求,结果最近还是装了回来

macOS 26 开始的全屏快捷键变化

在 macOS 26 Tahoe 之前,对应用全屏(新建占据整个桌面)的快捷键是 Ctrl+Cmd+F,这个在外接键盘上也能直接按出来,但后面改成了 Globe+F,这个 Globe 键就是苹果笔记本电脑或原装外置键盘上原来的 fn 键,上面有个小地球图标的,俗称地球键

这下好了,要全屏要么点窗口左上角的红绿灯按钮,要么用苹果笔记本机身键盘上的 Globe+F 的快捷键,在外接键盘上都无法使用

在外接键盘上切换全屏的尝试

macOS 系统设置里改快捷键

这个方式是说在 macOS 的系统设置里,增加一个「切换全屏」或「Enter Full Screen」的快捷键,然后映射成自己想要的键

我自己试过一下,不是那么灵光,也不太好用,放弃

使用第三方窗口管理工具如 Rectangle

Rectangle 是我近年来替换 Spectangle 后的窗口管理工具,本来随着新版本 macOS 把左半屏、右半屏、最大化等几个操作支持后,连这个工具都可以不用,但偏偏 macOS 原生的都是 Ctrl+Globe+Left、Ctrl+Globe+Right、Ctrl+Globe+F,都还是无法在外接键盘上使用的

等为了在外接键盘上更方便使用窗口布局且不用去改系统快捷键,把 Rectangle 装回来后,发现 Rectangle 无法支持系统级的全屏操作,所以这条路也走不通

使用 QMK/VIA 改键位映射

我现在在办公室使用的 Keychron K8P 支持 QMK/VIA,那么去 usevia.app 可以快速改键映射

但是苹果这里又搞事情,原生的 Globe 键并没有相关键位码,网络上找到的方法要么是通过 QMK 改固件,要么说的用 Any 键传入 0x2100 但现在也不生效,至少没法起到 Globe 键的作用

使用 Karabiner-elements 改键位映射

参照 https://github.com/the-via/releases/issues/92#issuecomment-3805418968 这个 VIA 项目里 Issue 的讨论,最后还是用 Karabiner Elements 解决问题

我把自己 K8P 的截屏快捷键先改成 F24(默认行为是发送 Cmd+Shift+4 调用系统截屏快捷键),然后再到 Karabiner Elements 里把 F24 映射成 fn (globe),现在尝试按 F24+F,可以在支持的应用里切换全屏

现在就是这个键并不在右手小拇指周边,不是太方便,本来考虑把 Fn+L_Option 改成 F24 来达到映射,后来发现不行,因为按下 Fn 后,原来 F 键的逻辑也变了,这时候键盘工作在第二层键位上,而 F 键默认是在改键盘灯光 RGB 的参数

剩余对当前 macOS 里全屏快捷键的吐槽

之前 Ctrl+Cmd+F 的快捷键用的好好的,偏偏要改一个外接键盘无法支持的 globe+F,而且原来的快捷键几乎所有的应用都支持,改的这个好多应用又不响应,比如 VSCode 就不行,Ghostty 也不行

多年前让苹果成为开发者友好的设备,据说是 @dhh 及 Ruby on Rails 这帮人推动,现在 dhh 也对目前 macOS 的状态不满,在推动 Omarchy 项目,看看会不会三十年河东三十年河西,回头 Linux 变成开发者更友好的环境

同一网页引入两个不同版本jQuery引发的问题

昨天在前端工程遇到一个以前没有想到过的问题

在维护了十多年的主项目上,最近完成了把 Knockout.js 从用户侧前端子工程 acorn 完全移除的工作,原来的要么迁移成 React 实现,要么把自家运营运维侧的工作移到 staff 子工程。在 staff 子工程里目前还有 Knockout.js 的前端页面逻辑和组件,以及一些以前仿照 bootstrap 写的样式和 js 组件,以及基于 jQuery 的日期选择器 datepicker 和时间选择器 timepicker

但昨天发现某个页面一个封了 datepicker 的 input,通过 data-bind=“textInput” 跟 knockout.js 绑定有奇怪的行为。鼠标点选,input 输入框内文本改变,用 $(el).val() 取的值也正常,但 ko 绑定的值不变。如果直接在 input 框里输入,ko 绑定的值就能正常更新

直接 input 输入可以改变 ko 绑定值,说明 ko 绑定没出问题,鼠标点选后 ko 绑定值不变,说明监听机制哪里有问题。因为这一波迁移里把原来多个版本混用的 ko 统一到了 3.x,先查是不是 ko 跨版本有监听事件的变化,ko 官网没说,某 AI 说 ko 3.x 开始还是现代浏览器有啥啥啥事件不再绑定,但尝试手工验证, $(el).trigger("input") 和 $(element).trigger("change") 这些明确说应该有效的,也不能让 ko.observable 的值更新

自己看业务代码和 datepicker 的代码(都是十年前自己写的),git 记录都显示没变啊,调试过程该有的事件都正常触发。把问题代码涉及的链路和表现丢给 Codex GPT-5.4 xhigh,一开始还说需要检查 ko 绑定机制和 vm 初始化顺序,但这些跟之前正常工作时都没变化。后面揪出来在 jinja2 模板层,渲染 HTML 时引入了两次不同版本的 jQuery,在 ko 绑定时用的第一版,后续 datepicker 初始化时关联到第二版,两边 $.event 不通?两套 jQuery 各自维护了自己的事件缓存和 handler 列表,所以 datepicker 库通过第二套 jQuery 发出的事件到不了 ko 在第一套 jQuery 上注册的 handler,而人肉改 input 里的内容走的浏览器原生 DOM 事件,ko 用的那一版 jQuery 有正常监听能生效。最终移除没必要多引入了一次的 jQuery 后,确保 Knockout.js 和 datepicker 使用的是同一版 jQuery 后恢复正常

前端这些诡异的大坑啊,以前为了弥补浏览器能力不足而需要 jQuery 去封装的各种基础能力,现代浏览器都原生支持(主要是选择器和事件触发监听),未来能走原生都走原生吧

断电长按电源键可解决绝大部分USB-C/雷电口设备问题

个人和公司都遇到过笔记本电脑或显示器或别的设备的 USB-C 或雷电口,不能充电、传输信号等问题,大部分情况下,断电后长按电源键做重置就可以解决绝大部分问题

  • 断电

    • 笔记本电脑需要拔外接电源,最好在 BIOS 里断掉内置电池供电,取下一切连在笔记本电脑上的外设,包括但不限于 U 盘、无线鼠标接收器、网线等
    • 显示器拔掉电源线,最好也把所有数据线也拔掉
  • 长按电源键

    • 笔记本电脑在 BIOS 断内置电池的情况下长按电源键不会开机,保持按下 10 秒以上,最好 15 秒或 20 秒。如果没有 BIOS 断内置电池的机型,大概率长按下会先开机,再自动关机,不管他一样按够时间
    • 显示器就是长按电源键,按够时间
  • 恢复

    • 笔记本电脑插外接电源适配器,正常开机就行
    • 显示器插好电源线和数据线,正常开机就行

原理:设备的 USB-C 控制器或雷电控制器进入了奇怪的工作状态,断电长按电源键是让其恢复默认状态,就是重置

优派VX2478-4K-HD使用12V5A电源可以消解绝大多数故障

公司在 2020 年开始分批采购了不少优派 VX2478-4K-HD 这款 23.6 英寸的 4K 显示器,官网在 https://www.viewsonic.com.cn/products/lcd/VX2478-4K-HD

从前两年开始,我们陆续有同事反馈这个显示器点亮后需要很久才能让电脑有显示信号传输过来,开机后也不会立即出现优派那三只彩色小鸟的 Logo,一度以为这么快就到使用寿命,后来在 https://www.v2ex.com/t/1068514 这里看到一个闲鱼大佬神奇的说法,这款机型的电路设计有问题,把原装的 19V 2.2A 的外置电源适配器换成 12V 5A 的就好

实践的确如此,我司已经有超过 70% 的这款显示器通过更换电源重获新生,淘宝上买的广东汕头发货十几块钱的「台达12V5A电源,接口55*25」都能用

使用 Advanced Font Settings 在 Chrome 系浏览器中正确显示中日韩字体

众所周知浏览器在某些场所会错误判断当前文字隶属的语言,然后会调用不同的语言对应的字体来显示,比如中日韩(CJK)共享的大量汉字,在不同的语言里显示字体不一样就会看着很别扭,对,就是 Twitter,现在叫 x.com 的上面,经常看到犬牙交错别扭的显示

哪怕在浏览器里修改了字体,但只对操作系统默认语言生效,并不对所有语言都有效,还是可能会回落到其他语言的默认字体上,所以需要 Advanced Font Settings 这个插件来解决显示不一致的问题

CJK 地区比较推荐使用 Noto 系列的字体,可在 GitHub 上 noto-cjk 这个仓库免费下载使用,虽然有下载说明,但我个人体验下来还是有一些奇怪,只下载通用文件可能是不够的,需要下载区域或语言特定的字体,所以我装完后一共有十个字体

  • Noto Sans
    • Noto Sans JP
    • Noto Sans KR
    • Noto Sans SC
    • Noto Sans TC
  • Noto Serif
    • Noto Serif JP
    • Noto Serif KR
    • Noto Serif SC
    • Noto Serif TC

在 Advanced Font Settings 里对默认语言选 Noto Sans / Noto Serif 不带后缀的这个,特别是浏览器和系统语言是英文的情况。其他几个语言必须要选带后缀的字体才能正确显示,对应关系分别为

  • 韩语 Korean: Hangul - KR
  • 日语 Japanese: Japanese - JP
  • 简体中文 Simplified Chinese: Simplified Han - SC
  • 繁体中文 Traditional Chinese: Traditional Han - TC

设置好后可以访问 /blog/font_test.html 来确认是否都正常渲染

Win11 宿主机在远程链接时 WiFi 掉线的处理

在公司连的内网无线网络是通过 WPA/WPA2 加 Radius 走 LDAP 认证的,最近有一个奇怪的现象在多台 Win11 宿主机上出现,明明网络是连接状态,但从别的机器发起远程连接,接通的瞬间宿主机切到登录界面时网络就掉了

宿主机连有线没有这个问题,连 WPA2-PSK/WPA3-SAE 模式只用 WiFi 密码连接的无线网没问题

网上各种找解决办法,包括但不限于 设置网卡的电源配置以免节能模式关闭了网卡、升级补丁和驱动、导出网络配置文件并应用到所有用户 等,因为都没起作用所以也不在这里给引用链接了

最终的解决办法是「从已知网络里忘记这个接入点,重新添加一次」就好了,就是这么无厘头……

在 Win11 里忘记已知网络的设置入口在 设置 - 网络和 Internet - WLAN - 管理已知网络

使用 ZeroOmega 替代 SwitchyOmega

在 Chrome 系浏览器上,包括 Chrome、Edge、Arc 等,SwitchyOmega 作为开发测试和科学上网的必备工具,一直是新机优先装的插件,或等待插件自动同步赶紧配好

不过由于 SwitchyOmega 的开发者已经不再维护 [1][2],Chrome 对插件的 manifest meta 要求从 v2 到 v3,再加上原版的 SwitchyOmega 在 Arc 的弹层总有些问题,所以最近一直在找替代方案

在 SwitchyOmega 作者建议有维护能力的人去 fork 一个 v3 版本的推文后,发现了 ZeroOmega [3],看了下项目代码就是直接 fork 然后改各种兼容配置项,界面和文档里好多地方还是 SwitchyOmega,一开始还不太好用,不过这两天用下来已经可以平替了,除了插件 Logo 相比之前略有不协调,但在浏览器插件栏显示的还是之前的圆环,完美替代

安装地址:Chrome Web Store、Microsoft Edge Addons

注:
[1] SwitchyOmega 的项目地址 https://github.com/FelisCatus/SwitchyOmega
[2] SwitchyOmega 不再维护的推文 https://x.com/_catus/status/1759413399270936672
[3] ZeroOmega 的项目地址 https://github.com/suziwen/ZeroOmega

ThinkPad X1 Carbon 2018 2K 屏会卡死的解决

收了一台 X1 Carbon 2018,配置是 i7-8650U / 16G / 512G / 2K / FPR / 4G LTE,重装系统后发现偶尔会出现屏幕卡死的情况,具体表现是屏幕上任何东西都不动,鼠标光标无法移动,但按大小写锁定等按键,键盘上的灯是在正常响应的,说明系统没卡死。做了如下排查尝试

  1. 有软件冲突。把各种第三方软件都删过,甚至输入法都删过,问题依旧
  2. 电源管理问题。把电源性能都开到最高,问题依旧
  3. 驱动问题。把各种驱动从系统默认到 ThinkPad System Update 都升了一遍,问题依旧
  4. 发现插电时会好转,但没有稳定复现或稳定消除的规律
  5. 跟 CPU 降频有关?但一直开着任务管理器也没发现有什么特别的,其他磁盘等也没有满负载被卡住

最后搜到 https://club.lenovo.com.cn/forum.php?mod=redirect&goto=findpost&ptid=5559793&pid=65060757 这个帖,在 Intel 显卡控制中心里把面板自适应刷新的开关关掉就好了,具体路径在 系统 - 功率 - 使用电池/使用外接电源 下的 面板自刷新

这个奇葩的问题只出现在屏幕型号为 LEN40AA 的 2K 屏的版本上,普通的 1080p 和 4K 屏都没有这个问题,难怪没搜到太普遍的解决办法。之前我的排查思路有遗漏,是因为大部分我插电的时间都连了外接显示器,在外接显示器上这个 bug 触发不出来,而有时候我又是没外接屏幕插电用,所以没有找到稳定复现的条件

改注册表以在旧 CPU 电脑上升级 Windows 11

公司有一批旧 i5-7200u 的笔记本电脑,打算装 Win11Pro 提供远程访问,做一些测试用,发现直接切换专业版序列号提示错误,准备把系统默认的系统通过 ISO 文件先升级到 Win11 23H2 的 Pro 版也提示处理器不支持

通过新增注册表项解决此问题,在 Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup 路径下,新增一个 DWORD (32-bit) 字段,命名为 AllowUpgradesWithUnsupportedTPMOrCPU 并将值设为 1,再运行 ISO 里的 setup.exe 就不报错了

方法参考自 https://www.theverge.com/22715331/how-to-install-windows-11-unsupported-cpu-intel-amd-registry-regedit