2025年3月27日,我的好友大彬送了我一台没有屏幕的SurfacePro4,这是到我手上快两个月它的变化。

 title=

图为2025年5月,服务器正常运行的样貌

折腾之始

从拿快递说起

3月27日晚上,我收到了一堆快递。内容物包含视频采集卡、HDMI线、MiniDP转HDMI转接头、USB2.5G网卡、USB-HUB、网线。
一切都是为了一台无屏幕的SurfacePro4服务。

进行初次尝试

我将MiniDP转HDMI转接头和HDMI线与视频采集卡接一起插我电脑上,打开OBS,进入全屏预览。不出意外的话,意外就发生了:
我起初不知道Surface如何进BIOS界面,当时还以为在硬盘无系统的情况下,不进BIOS会无任何显示内容。
但是过了很久之后,朋友告诉我本应该会显示一个无法引导的提示框,可是不知为何采集卡无法采集到这个界面:
 title=

“无法引导”的提示框

后来通过自主摸索,得知需要按住音量上键和电源键才能进入BIOS。
可是,这个BIOS看起来并不正常:
 title=

几乎全部错位,鼠标无法点按任何交互按钮

这让我坚定了是采集卡的问题

跌宕起伏

于是我安装了win10LTSC2022,可谁又还记得,我U盘里这位系统大哥是我N年前给学校希沃定制的LTSC,删除了大多数系统组件,连最基本的系统休眠都没办法做到。
这导致后来我通过RDP远程进入服务器后,发现分辨率无法自动识别,在平板上进行RDP,也会导致触摸无法正常使用。
后来我咨询大彬,他告诉我驱动安装不应该这么快,他说安装需要十多分钟,期间在某个阶段卡住一段时间才对。可是我两分钟内就安装完了,而且还不止安装了一次。于是我开始怀疑上了这个定制LTSC。

"平稳"落地

我无奈地插回了视频线,这次我直接安装了22H2普通版win10,手动注入了IoT版激活码,就没出现过问题了。

大起大落

无奈妥协

过了一星期,由于HTTP Proxy经常睡死,故删除了Windows Server转战Linux Debian.可谁知这将成了一切的开始。

安装困难

由于这台Pro4是无屏幕版本,我使用采集卡采集画面后,无法正常输出TTY界面:文字、命令行混在一起,颜色也是糊在一起,这使得我放弃了使用采集卡安装。
 title=

图片糊在一起

好在Debian有一个分支叫Armbian,这款系统的好处是不用配置,烧入即用。于是我烧入了硬盘中,开机后使用SSH连接进去,这才终于将它安装好了。
 title=

SSH能够正常输出字符

软件源更新与1panel安装失败

由于我的网络由CPE提供,许多软件源会重置来自我的IP的访问。
好在,后续安装1panel时,面板安装所自带的安装脚本帮我自动选择了镜像源,可是,安装面板又成了个问题。

Docker安装失败,无法安装面板

由于1panel面板依赖Docker,可是限于国内优良的网络环境,我无法使用脚本安装Docker。

系统代号不匹配,手动安装困难

由于Armbian和Debian的系统代号不一致,需要将代号更改方可手动安装。
只需要将添加的APT源中的系统代号全部替换成Debian12的代号就行。

OpenWRT防火墙限制

由于之前配置了OpenWRT防火墙,关闭了一些端口(可在我安装1panel时忘记了这回事),导致我查了好久都没搞清楚为什么我就是进不去1panel后台。

安装完成

经历多重磨难终于将1panel安装了进去
 title=

拿来做什么用?

多亏了Debian和1panel的加持,我可以在这台服务器上跑各种服务:
 title=

配置是怎样的?

硬件/软件详情
CPUIntel Core I5-6100U
RAM4GB LPDDR3
ROM128G SAMSUNG NVME
SYSLinux Debian
Kernel6.1.0-32-amd64
       _,met$$$$$gg.          root@K-server 
    ,g$$$$$$$$$$$$$$$P.       ------------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 12 (bookworm) x86_64 
 ,$$P'              `$$$.     Host: Surface Pro 4 124000000000000000000000D:0B:08F:1C:03P:38 
',$$P       ,ggs.     `$$b:   Kernel: 6.1.0-32-amd64 
`d$$'     ,$P"'   .    $$$    Uptime: 8 hours, 56 mins 
 $$P      d$'     ,    $$P    Packages: 856 (dpkg) 
 $$:      $$.   -    ,d$$'    Terminal: /dev/pts/0 
 $$;      Y$b._   _,d$P'      CPU: Intel i5-6300U (2) @ 3.000GHz 
 Y$$.    `.`"Y$$$$P"'         GPU: Intel Skylake GT2 [HD Graphics 520] 
 `$$b      "-.__              Memory: 1469MiB / 3837MiB 
  `Y$$
   `Y$$.                                              
     `$$b.                                            
       `Y$$b.
          `"Y$b._
              `"""

一共花了多少钱?

这一切都需要归功于大彬,在他的帮助下,给我省了不少钱
虽说是送的,但该算的账还是得算

项目价格
无屏幕 无硬盘SurfacePro4100元
USB2.5G网卡38元
网络线 视频线 采集卡 HUB62元
NVME128G48元

合计248元

现状怎样?

由于经常会在休眠时CPU占用100%,我设置了定时任务,用于监控CPU状态并在合适的时间内重启服务器:

休眠占用

 title=
 title=

定时任务

 title=
监控CPU并重启

#!/bin/bash

# 设置监测时间间隔(秒)
INTERVAL=10
# 设置 CPU 高占用的阈值(百分比)
THRESHOLD=95
# 计数器变量
COUNT=0
# 目标次数 (3 分钟,每 10 秒一次,需 18 次)
TARGET_COUNT=18

while true; do
    # 获取 CPU 使用率
    CPU_USAGE=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}')

    # 判断 CPU 使用率是否超过阈值
    if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then
        ((COUNT++))
    else
        COUNT=0
    fi

    # 如果超过目标次数,则重启服务器
    if [ "$COUNT" -ge "$TARGET_COUNT" ]; then
        echo "CPU 使用率持续超过 $THRESHOLD%,系统即将重启..."
        reboot
    fi

    sleep "$INTERVAL"
done