老旧笔记本改造成便携KVM(键盘显示器)

2023-05-16

老旧笔记本改造成便携KVM(键盘显示器)

  • 前言
  • 立项、拆机
  • 改造
    • 显示屏驱动
    • 键盘
    • 结构
  • 结项、测试
  • 后记

前言

本来是一时兴起晒在微信朋友圈的几张图,配文说明很短。想起网上有不少笔记本屏幕改造利用的帖子,但好像没发现把笔记本改造成KVM的。后来想也许有其他人也会对此感兴趣,毕竟还有点实用价值和环保意义,就稍微扩充了一点,放在这里。也是第一次在csdn上发文。

一个被当工程师耽误了的捡破烂修理工。女儿上幼儿园时曾经介绍说我爸爸是研究员,就是专门修理东西的。是的,就喜欢收藏、摆弄些乱七八糟的破烂,尤其是各种工具、零件、机械电子玩意,一方面觉得好玩,另外也总觉得有一天会用上。为了不负众望,防止老年痴呆症,还是经常动手修修东西吧。

家里有好多台各种上古年代的笔记本电脑,总舍不得扔,毕竟在上世纪那是要仰望的高科技产品。因为工作中经常遇到没有键盘显示器的嵌入式无头设备,每次调试要到处去找个显示器、提一串叮铃当啷的键盘鼠标,不胜其烦,就想能否把旧笔记本改造成个便携的KVM。

立项、拆机

睡梦中经过可行性分析和立项论证,项目启动。

拿了个联想的老本子拆了个稀烂,每一颗螺丝、每一个模块、每一根线缆,连电池包都拆了看看,就像小时候拆玩具一样(男人应该都有这个癖好吧?搞破坏并窥见少有人知的机巧和奥秘,发现科技之美,真的很好玩)。

主板、内存、硬盘、光驱、wifi、天线、摄像头、扬声器、Mic,屏幕、键盘、电池……那么多东西塞进个小盒子,真的不容易。散热设计尤其精巧。
在这里插入图片描述

具体拆机步骤就免了,反正不同机型结构不同,主板也是不要了,拆坏了没关系,就随便拆着玩呗。内存条、硬盘、光驱倒是可以在其他地方用。

最后发现真正有用的只有显示屏、键盘和壳子,显示屏和键盘还不完整,驱动电路都集成在主板上,根本没法用。最后就拆成这么个空壳子了。

在这里插入图片描述

这是最后要用的空壳子。这里有根白色的USB线是后来焊上的(原来是根FPC柔性电路板电缆),后面改造想用那个USB接口当键盘接口。

这是电池包,里面有充电模块,还有个温度传感器。一方面拆着玩,另外考虑有可能要把显示控制的按键板放到电池仓位置。对应的上方键盘面板处正好有空可以打孔。

在这里插入图片描述

改造

只剩个裸屏和键盘的矩阵按键,于是网上淘了一个LCD屏驱动模块和一个键盘驱动模块,硬件软件电工钳工一通操作,大功告成。麻烦点只有两处,一个是键盘矩阵的线序测试和键码烧录,一个是结构上怎么安装进那个奇形怪状的壳子里。踩过的坑稍微说一下。

显示屏驱动

LCD屏驱动板,某宝上找,把屏背面的型号拍下来给客服,会给你推荐个合适的配置型号。
在这里插入图片描述
在这里插入图片描述

要注意的是,原配的屏线电缆可能不够长(配套线是给专用的壳子配的),我们要把驱动板放到原主板附近,电缆要穿过铰链拉过来,距离有点长。

我买的那个店没有长屏线,定制都懒得做。只好自己去其他地方淘,这需要稍微研究一下LCD屏线接口,买错了用不了。一般大多数LCD屏都是LVDS接口,屏线根据屏分辨率有所谓单6、双6、单8、双8之分。

tips:
屏线中的LVDS信号,包括1对差分时钟信号CLK+/-,和n对差分数据信号RXO+/-;
区别在于数据信号的对数n。3对就是6根线叫单6;4对是8根叫单8;如果再double就叫双6或双8。

分析了一下,我的屏线应该是单6(加上时钟共4对差分线,就是图中那4对蓝白相绞的线),买来一试,Bingo!蒙对了。

另外,这个板板还带了个小按键板,控制屏幕开关机和设置的,想到还要找地方安装,头疼(最后装在电池盒位置了,要打孔把按键露出来)。想用扬声器的话,这上面也有接口。其他没什么,通电开机就可以显示。

在这里插入图片描述

键盘

键盘看似简单,其实有点麻烦。一般本本里面的键盘都是定制的,很难找到资料,裸键盘矩阵、FPC扁带接口、没法接线,信号多、线序完全不知道,又很难测。
在这里插入图片描述

根据网上帖子找了个矩阵键盘驱动控制模块Monkey,做的真的很精巧,只有口香糖大小。
在这里插入图片描述

为了和键盘的FPC连接,又找了个FPC24p1.0—2.54的转换板,焊上线就可以把monkey板和键盘连接起来了。
在这里插入图片描述

真正头疼的才来了,矩阵键盘有24根线,那些是行线,那些是列线?跟monkey版上Col1-Col8 以及Row1-Row18怎么对应连接?

用万用表试了下,挨个按键试,理论上可行,但24根线的组合太多了,太费工夫了,放弃。

好在这个monkey板做的不错,调试软件工具给力。随便挑了18根键盘线按顺序接到Row1—Row18,剩下的随便接到Col1-Col8,按说明连接计算机USB口,运行调试软件,挨个按键测试。每按一个键,软件会显示是那个行线与那个列线相接了,比万用表效率高多了。
在这里插入图片描述

如果键盘上所有键按完,发现某行或某列总没反应,就把对应的那两个行列线对调,再试。我反复了差不多3次就所有键都找到了。只要键盘上所有键都找到有反应了,也无所谓顺序,赶紧固化状态,同时按说明把每个键的行列编码烧录写入板子flash,就可以了。

关于键盘矩阵行列线序测试问题,在网上其他地方有很多童鞋问过怎么测。这里就顺便多啰嗦几句。注意接线时用那种单根的杜邦插头,便于测试时来回更换行列线的位置。
在这里插入图片描述

结构

最后剩下的就是结构问题了,笔记本壳子掏空了,看着空间不小,但内部隔板结构件九曲十八弯的,板子要放进去还要把接口外露,只能靠边找有缺口的地方,还是有点费神。我是把内部碍事的隔条都切掉了,侧面也挖了一大块才勉强固定进去了,打孔、螺丝、胶带等等都用了,有点丑,但简单粗暴实用,不是作为商品就不讲究了。
在这里插入图片描述
在这里插入图片描述

结项、测试

完工测试,因为功能简单,就是个集成的键盘和显示器,连接主机,显示正常,键盘输入、大小写、控制键等均没问题,通过!家里用的机会不多,放办公室用吧。

鉴定意见:完成预期目标,达到家内领先水平,通过结项验收。
在这里插入图片描述

后记

其实做完还有个想法,想建议所有的笔记本电脑厂商,将集成在主板上的显示驱动模块和键盘控制模块接口引出来(可以与现有的显示接口和USB口共用,不需要增加物理接口),通过跳线开关或软件设置可以将笔记本设置成KVM模式,这样CPU坏了键盘显示器还可以用,我们也不用这么费劲了。

技术实现上没难度,但环保意义重大,真的,环保,每年那么多淘汰的笔记本都不知道怎么处理。

这应该可以申请个专利。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

老旧笔记本改造成便携KVM(键盘显示器) 的相关文章

  • 虚拟机开机连接的时候显示novnc_Linux-KVM虚拟化+websockify(noVNC)

    kvm安装 环境 xff1a centos7 1 查看CPU是否支持inter或AMD的虚拟技术 cat proc cpuinfo grep E 34 vmx svm 34 支持显示 2 安装kvm yum install qemu kvm
  • KVM interface passthrough

    nbsp nbsp nbsp nbsp kvm passthrouth sr iov nbsp nbsp https blog csdn net yzy1103203312 article details 81092647 nbsp nbs
  • 虚拟机隔离和容器隔离机制及区别

    1 虚拟机隔离机制 通过虚拟化技术虚拟出资源完全独立的的主机 支持虚拟化的层是hypervisor hypervisor是一种虚拟化服务器的软件 2 Docker容器的隔离机制 Docker利用Namespace实现系统环境隔离 采用Cgr
  • CentOS 7 virt-install 命令行方式(非图形界面)安装KVM虚拟机

    环境及网卡配置请参考 https blog csdn net mshxuyi article details 98305715 创建镜像目录 mkdir p home vms virt install 配置文件 virt install n
  • Linux上启用kvm嵌套虚拟化功能

    kvm支持嵌套虚拟化 即可以在虚拟机中创建虚拟机 本文主要介绍如何在使用Intel处理器的CentOS7中开启KVM的嵌套虚拟化功能 kvm主要是通过内核模块来实现的 因此我们查看系统是否开启了kvm嵌套虚拟化 只需要 cat sys mo
  • Proxmox VE(PVE) 进行网卡直通

    文章目录 我的设备 介绍 添加CPU支持 开启iommu 查询网卡信息 Intel CPU AMD CPU 新增所需模块 添加PCI设备 命令模式添加 web页面模式添加 验证IOMMU有效 IOMMU中断重映射 查看中断重映射 启用中断重
  • Linux 桌面虚拟化技术 KVM

    KVM 是 Kernel based Virtual Machine 的简称 是一个开源的系统虚拟化模块 自Linux 2 6 20之后集成在Linux的各个主要发行版本中 它使用Linux自身的调度器进行管理 所以相对于Xen 其核心源码
  • 使用VMware完成KVM虚拟化实验并运行Centos

    本次实验在VMware中的Ubuntu18内安装KVM并运行centos 首先 在VMware下开启虚拟化 更新软件索引 apt get update 安装依赖 apt get install qemu kvm qemu virt mana
  • 29 KVM管理系统资源-调整虚拟CPU绑定关系

    文章目录 29 KVM管理系统资源 调整虚拟CPU绑定关系 29 1 概述 29 2 操作步骤 29 KVM管理系统资源 调整虚拟CPU绑定关系 29 1 概述 把虚拟机的vCPU绑定在物理CPU上 即vCPU只在绑定的物理CPU上调度 在
  • ovirt-node和ovirt-engine相连遇到的问题解决办法

    1 Host 192 168 70 7 does not comply with the cluster Default emulated machines The Hosts emulated machines are
  • kvm-ovirt-vdsm安装记录

    小技巧 1 fedaro 19自动查找最快yum源 yum install yum fastestmirror 2 libvirt启动sasl添加用户 saslpasswd2 c a libvirt admin 3 查看kvm模块 lsmo
  • qemu-guest-agent windows下的监控开发

    windows下的qemu guest agent 简称qga 的名字叫做qemu guest agent win32 目前最新版的版本号是qemu guest agent win32 0 12 1 2 2 355 el6 4 9 x86
  • kvm CPU绑定与查询

    cpu绑定 格式 virsh vcpupin domain name vcpu hostcpu config live 例如 virsh vcpupin 16 3 15 config live 说明 将kvm虚拟机第4个vcpu与宿主机第1
  • kvm之多网卡队列开启设置

    背景 目前基于dpdk数据平面开发套件的应用越来越多 而dpdk对于上层应用运行时 服务的进程数多于1时 要求网卡支持多队列 否则项nginx这种多进程应用程序只能再默认配置下运行 只能启动一个worker 要求 在kvm虚机中将网卡设置支
  • Android 模拟器在 Ubuntu 18.04 上因 SIGSEGV 崩溃

    Android Studio版本 Android Studio 3 1 2 内部版本 AI 173 4720617 建于 2018 年 4 月 14 日 它是从 Ubuntu 的 snap 商店安装的 我使用安装了kvm1 在 Ubuntu
  • KVM/桥接器:没有到主机的路由

    我已经在 Fedora 17 上使用 KVM 设置了虚拟机 并为 KVM 配置了桥接网络 主机和虚拟机均采用手动IP配置 主机IP为192 168 0 2 虚拟机IP为192 168 0 10 从虚拟机我可以毫无问题地连接到主机 但从主机我
  • Linux x86-64 上的物理内存中的用户空间和内核之间是否存在明确的划分?

    也就是说 给定一个物理地址 我可以判断这个地址是否来自用户空间吗 据我所知 在虚拟地址空间中 内核将使用 上半部分和用户空间将使用下半部分 但是关于 在物理地址空间 让问题变得复杂的是我想检查KVM中的客户物理地址 这意味着我无法调用客户操
  • x86 PIC,QEMU 在所有 CPU 上引发中断是否正确?

    我最近不得不解决 x86 PIC 的专有操作系统问题 其中操作系统预期定时器中断仅在 CPU0 上 我启用了 IO APIC 来解决这个问题并进行了 CPU 控制 因此中断仅到达 CPU0 问题解决了 有人告诉我 我们的硬件已经损坏 无法做
  • Xen、QEMU 和 KVM 之间有什么区别?

    我知道Xen使用QEMU 而KVM是QEMU的一个分支 那么 KVM 包括 Xen 添加到 QEMU 中吗 是什么名字 Thanks QEMU 是一个功能强大的模拟器 这意味着它可以模拟多种处理器类型 Xen 使用 QEMUHVM http
  • 虚拟机上奇怪的程序延迟行为

    我编写了一个程序来读取 256KB 数组以获得 1 毫秒的延迟 该程序非常简单并附带 然而 当我在Xen上的VM上运行它时 我发现延迟不稳定 它具有以下模式 时间单位是ms totalCycle CyclePerLine totalms 2

随机推荐

  • 代码复现问题以及解决

    问题 cuda版本不匹配 xff0c 对于版本不匹配问题真的很难受CPU版本还有GPU版本问题包安装 xff0c apex加速的安装 xff0c transformer版本也会限制python的版本程序运行 xff0c 如果程序写的是比较好
  • one-hot向量形式

    one hot向量 one hot向量将类别变量转换为机器学习算法易于利用的一种形式的过程 xff0c 这个向量的表示为一项属性的特征向量 xff0c 也就是同一时间只有一个激活点 xff08 不为0 xff09 xff0c 这个向量只有一
  • c语言中的位移位操作

    先要了解一下C语言里所有的位运算都是指二进制数的位运算 即使输入的是十进制的数 xff0c 在内存中也是存储为二进制形式 lt lt 用法 xff1a 格式是 xff1a a lt lt m xff0c a和m必须是整型表达式 xff0c
  • iOS动画(Core Animation)

    一 CABaseAnimation 移动动画 void testPositionAnimation CGFloat tempViewWidth 61 50 CGFloat tempViewY 61 300 UIView tempView 6
  • 使用Linux命令生成随机密码

    使用SHA算法来加密日期 xff0c 并输出结果的前10个字符 xff1a span class token function date span 43 s span class token operator span sha256sum
  • CoreData 从入门到精通(三)关联表的创建

    CoreData 从入门到精通 xff08 三 xff09 关联表的创建 上篇博客中讲了 CoreData 里增删改查的使用 xff0c 学到这里已经可以应对简单的数据存储需求了 但是当数据模型复杂起来时 xff0c 例如你的模型类中除了要
  • 安装golang开发环境,vscode

    官网 https golang google cn dl span class token builtin class name cd span data www span class token function wget span ht
  • Ubuntu16.04 display setting (xfce4-display-settings) segmentation fault 闪退

    虚拟机里装好Xubuntu16 04后 打开设置想调分辨率 不想一点开Display就闪退 使用命令行xfce4 display settings 来调用的话 报错语句为 segmentation fault 解决办法 初始化一下分辨率设置
  • 远程桌面无法连接远程计算机是什么原因?

    很多人在准备用 远程控制 另一台电脑进行相关操作的时候 xff0c 会出现提示说 远程桌面由于以下原因无法连接到远程计算机 xff0c 那么为什么会发生这种问题 xff0c 以及出现这种问题该怎么解决呢 xff1f 一起来看看吧 其实 xf
  • 安卓开发--连接到聚合网,获取JSON数据并解析(踩了好多好多坑)

    本文将会以从聚合网获得数据为例 xff0c 介绍如何在Android Studio中获取JSON并解析 这里做一个简单的天气查询的应用 文章目录 1 准备工作 导入依赖2 核心代码部分2 1 Get方式的http请求2 2 写出查询函数 x
  • W: GPG error: http://repo.mysql.com/apt/ubuntu bionic InRelease: (签名失败)

    签名失败了 安装MySQL8 0的时候遇到的问题 xff0c 当时执行了 apt get update的指令 xff0c 然后出现了下面一大堆 Hit 1 https download docker com linux ubuntu bio
  • 无需修改bios即可让任意主板实现NVME启动

    使用Clover四叶草引导加载NVMe驱动 除了对BIOS的硬改之外 xff0c 还有一种更安全的软件方案 xff1a 使用Clover四叶草引导加载NVMe驱动 Clover是著名的黑苹果引导软件 xff0c 这里借用它来实现对预引导 x
  • PC改电视盒子 无需配置 Android x86 TV 9镜像

    这几天在折腾将旧电脑改成安卓电视盒子 xff0c 发现网上的镜像着实麻烦 xff0c 如果没有vpn xff0c 每次装都要用命令跳过谷歌的自动更新 配置兼容arm 完事了还只能远程安装apk 这个镜像直接配置好了谷歌自动更新 兼容问题 自
  • ubuntu18.04中更换源

    安装很多软件时提示 unable to locate package 手动更换了阿里的软件源就顺畅了 xff0c 速度也很快 方法 xff1a 备份原文件 sudo cp etc apt sources list etc apt sourc
  • (Linux)Debian下安装JDK1.8.0

    昨晚花了两个多小时查资料 xff0c 在Debian下安装了jdk和tomcat xff0c 记录一下 查看Linux版本 xff1a uname span class hljs operator a span 我的是64位的 在oracl
  • 最全的Anaconda虚拟环境操作及Python常用命令 (持续更新---)

    Welcome to My Blog 文章唯一地址 xff1a https blog csdn net REAL liudebai article details 126185097 涵盖常见的Anaconda虚拟环境操作及Python常用
  • 提高Interface Builder高效工作的8个技巧

    原文转载自破船之家的博客 xff1a http beyondvincent com blog 2014 03 19 18 tips for working effectively with interface builder 提高Inter
  • C++ enum类型转换为string

    enum类型的值为int类型 xff0c 如 xff1a enum ElemName People Tree Car Text Cave QRcode Pillar xff0c 其中People的值是0 xff0c Tree的值是1 xff
  • KEIL5烧写成功,但是程序运行不了的原因

    很多种原因 xff0c 可能是配置原因 xff1a 比如
  • 老旧笔记本改造成便携KVM(键盘显示器)

    老旧笔记本改造成便携KVM xff08 键盘显示器 xff09 前言立项 拆机改造显示屏驱动键盘结构 结项 测试后记 前言 本来是一时兴起晒在微信朋友圈的几张图 xff0c 配文说明很短 想起网上有不少笔记本屏幕改造利用的帖子 xff0c