斐讯 n1 改造 ipkvm 设备

35次阅读
没有评论

共计 2562 个字符,预计需要花费 7 分钟才能阅读完成。

前言

当 NAS 机器身处离我几百公里的老家,总是会担心不小心某个操作导致机器不能启动,而且还不清楚是什么原因导致的,可能需要进入修复模式进行某些操作。

所以考虑能不能通过另外一台稳定运行的的机器远程操作,可以看见屏幕又可以使用鼠标键盘,就好像机器就在身边。通过网络可以进行远程排查,同时还可以进行 bios 级别的操作。

了解到向日葵控控 A2,当时价格是 400 多,现在已经涨价到 700 多,确实有点贵。后面又了解到 pikvm,于是当时就买好了一些设备,比如 hdmi 采集卡,usb 公对公线等等。由于当时 pikvm 搭建比较复杂和其他原因,所以就放弃了。

近日,又看见 one-kvm 项目,该项目基于 pikvm 二次开发,可以使用 docker 搭建并配置了本地化,属实是眼前一亮。最终也是功夫不负有心人,成功搭建属于自己的 ipkvm 设备了。

硬件

  • 斐讯 N1 盒子
  • HDMI 采集卡(需要带延长线的,否则会导致另外一个 usb 口空间被占用)
  • HDMI 传输线
  • USB 公对公线(用于模拟鼠标键盘,需要设备支持 OTG,否则需要 USB CH340+CH9329)
  • U 盘(用于重装系统)

斐讯 n1 改造 ipkvm 设备

OTG 与 CH9329 区别说明

  • OTG HID:大多数 ARM CPU 支持 USB OTG 接口,该接口可以配置为 USB Host 或 USB Device 模式。在 Linux 下,它能够充当虚拟 HID 设备(如键盘、鼠标等)。此外,OTG 还支持虚拟存储驱动器(MSD)、虚拟 USB 网卡等功能。

  • CH9329 HID:这是一款串口转 USB HID 的芯片,在计算机上表现为标准的 USB 输入设备。它适用于 X86 架构机器,因为它们通常不支持 USB OTG。

一、安装 armbian 系统

1. 下载系统镜像

github 下载 armbian 的 Jammy 版本系统镜像,N1 盒子下载包含如图所示关键词的镜像即可。

斐讯 n1 改造 ipkvm 设备

其他的机器可能要下载对应的镜像,关于镜像命名可以了解一下,以下是 gpt 的回复。

镜像名称:Armbian_25.05.0_amlogic_s905d_jammy_6.1.137_server_2025.05.05.img.gz

字段 含义
Armbian 基于 Armbian 系统
25.05.0 Armbian 项目版本号(第 25 年 05 月发布,第 0 次小更新)
amlogic_s905d 针对 Amlogic S905D 芯片的定制构建(DTB 和启动适配)
jammy 基于 Ubuntu 22.04 LTS(代号 Jammy Jellyfish)
6.1.137 Linux 内核版本为 6.1.137(LTS 内核)
server 无桌面的最小化版本
2025.05.05 镜像构建时间(2025 年 5 月 5 日)
.img.gz .img 是裸磁盘镜像,.gz 是压缩格式(需解压)

最主要是查看机器的芯片,再下载对应的镜像。

2. 镜像写入 U 盘

下载写入工具 rufus

斐讯 n1 改造 ipkvm 设备

选择好设备,以及镜像,然后点击开始。

3. 开始重装

将 U 盘插入 N1,默认使用 U 盘启动系统,这里首先会提示安装系统,比如创建用户、设置密码等操作,过程略。

安装系统完成后,使用 armbian-install 命令将镜像写入 eMMC,后面选项根据机器类型选择,比如 N1 选择 101,系统格式选择 ext4 格式。

斐讯 n1 改造 ipkvm 设备

完成后输入 poweroff 关闭系统,拔掉 U 盘。

二、安装 one-kvm

1. 修改 dts

这一步骤的操作是为了将 USB 控制器的模式从主机模式切换为外设模式,否则不能使用鼠标键盘控制其他主机。

反编译 dts 文件:

dtc -I dtb -O dts -o n1.dts /boot/dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb

修改 dts 文件,vim n1.dts将 USB 设备的 dr_mode 从 "host" 改为 "peripheral"。

斐讯 n1 改造 ipkvm 设备

编译修改后的 dts 文件:

dtc -I dts -O dtb -o n1.dtb n1.dts

将编译好的 dtb 文件移动至 /boot/dtb/amlogic/ 目录下。

mv n1.dtb /boot/dtb/amlogic/

vim /boot/uEnv.txt 修改 uEnv.txt 文件使用 n1.dtb

斐讯 n1 改造 ipkvm 设备

2. 安装 docker

切换 apt 源:

sudo armbian-apt

斐讯 n1 改造 ipkvm 设备```

安装 docker:

sudo apt update
sudo apt install docker.io

3. 安装 one-kvm

直接运行:

docker run -d \
  --name kvmd \
  --privileged \
  --network host \
  -v /lib/modules:/lib/modules:ro \
  -v /dev:/dev \
  -v /sys/kernel/config:/sys/kernel/config \
  -e OTG=1 \
  -e NOMSD=0 \
  -e VIDEONUM=1 \
  -e USERNAME=admin \
  -e PASSWORD=admin \
  --restart unless-stopped \
  dockerpull.pw/silentwind0/kvmd

compose 运行:

services:
  kvmd:
    image: dockerpull.pw/silentwind0/kvmd
    container_name: kvmd
    privileged: true
    network_mode: host
      #ports:
      #- "8080:8080"
      #- "4430:4430"
      #- "5900:5900"
      #- "623:623"
    volumes:
      - /lib/modules:/lib/modules:ro
      - /dev:/dev
      - /sys/kernel/config:/sys/kernel/config
    environment:
      - OTG=1
      - NOMSD=0
      # 双公头线插入usb0即靠近hdmi接口,采集器插入usb1即外侧
      - VIDEONUM=1
      - USERNAME=admin
      - PASSWORD=admin
    restart: unless-stopped

4. 插入外设

如果 usb 插入顺序和下图不同,那么可能用上面的启动方式无法运行。

斐讯 n1 改造 ipkvm 设备

5. 访问 kvm

访问 kvm 的地址为 https://ip:4430,默认用户名和密码为 admin

效果如下:

斐讯 n1 改造 ipkvm 设备

6. 配置异地组网或内网穿透

搭建完成以后,肯定就是需要让外网能够访问到 one-kvm 了,过程略。


参考文档:

参考视频:

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2025-06-25发表,共计2562字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2023-2025 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 又拍云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock