巨款购买手机K20P

路由器,机顶盒,都玩腻了,现在轮到手机了。

首先要庆祝一下,我也是个米粉了现在,巨款259.00元包邮 全款拿下 红米K20 Pro顶配 : 晓龙855 12+512G

2026.05.25 陆陆续续又买了2台,一共三台了,价格分别是 259,220,249,一算:728元.我真的是管不住自己啊,需要一个年轻貌美小姐姐来管管我!!

捡垃圾就是爽,下面准备刷 debian(ubuntu), win11个人不喜欢玩。你肯定要问,速度多块,功耗多高。

功耗是1瓦左右(开7个docker容器),CPU速度是3倍J1900.

2026-05-26T13:51:18.png

2026-05-19T13:45:12.png
2026-05-19T13:45:31.png
2026-05-19T13:45:43.png
2026-05-19T13:45:53.png

项目地址

https://github.com/GengWei1997/linux-xiaomi-raphael-uboot/tree/master

刷机前(解锁bootloader)

  • 注册一个小米账号
  • 官网下载 miflash_unlock_7.6.727.43.zip (里面有驱动,手动安装)
  • 解锁 bootloader (重点,手机要插小米账号那个sim卡,关闭wifi,然后在手机解锁界面绑定),否则出下图

2026-05-22T14:26:59.png

  • 绑定后,就可以成功解锁了,不用等几天。

2026-05-22T14:27:45.png

刷机中

按官网 https://github.com/GengWei1997/linux-xiaomi-raphael-uboot/tree/master 步骤,
其中adb fastboot 在 https://dl.google.com/android/repository/platform-tools-latest-windows.zip 下载

# 1. 进入 Fastboot 模式
adb reboot bootloader ## 用 `下按键+pwr按键` 也一样的。

# 2. 擦除分区
fastboot erase dtbo
fastboot erase boot
fastboot erase cache
fastboot erase userdata

# 3. 刷入 boot 镜像
fastboot flash cache xiaomi-k20pro-boot.img
fastboot flash boot u-boot.img

# 4. 刷入系统镜像(需要先解压 rootfs.7z)
fastboot flash userdata rootfs.img  ##这里文件太大

# 5. 重启设备
fastboot reboot

登录设备

支持 USB NCM(USB连电脑),添加微软 NCM网卡 网络共享,电脑直连设备 SSH

设备默认 IP:172.16.42.1,SSH 连接命令:ssh user@172.16.42.1

终端输入 nmtui 可视化连接 Wi-Fi ,启用连接-选接入点 输入密码
2026-05-30T06:36:00.png
2026-05-30T06:36:32.png

MAC地址固定一下

防止ip经常变换.
2026-05-30T07:11:24.png

默认ssh登录密码

普通用户:user / 1234
超级用户:root / 1234

遇到问题

`fastboot flash userdata rootfs.img
libc++abi: terminating due to uncaught exception of type std::bad_alloc: std::bad_alloc`

方案:转换为稀疏镜像(老师给我的版本)

# 安装工具
sudo apt install android-tools-fsutils

# 转换
img2simg rootfs.img rootfs_sparse.img

# 回到 Windows 用 fastboot 刷入
fastboot.exe flash userdata rootfs_sparse.img

2026-05-22T14:30:23.png

ssh 修复

  • osc 导致 SecureCTR 无法正常使用
# 删除软链接,创建同名空文件
rm /etc/profile.d/80-systemd-osc-context.sh
touch /etc/profile.d/80-systemd-osc-context.sh
chmod -x /etc/profile.d/80-systemd-osc-context.sh

先设置好时间

date -s "$(curl -sI http://baidu.com | grep -i '^date:' | cut -d' ' -f2-)"

安装docker

# 安装依赖
apt update
apt install -y ca-certificates curl gnupg

# 添加 官网Docker GPG 密钥
install -m 0755 -d /usr/share/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
chmod a+r /usr/share/keyrings/docker.gpg

# 添加 官网 Docker 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable" | tee /etc/apt/sources.list.d/docker.list

# 添加清华的 GPU密钥
rm /usr/share/keyrings/docker.gpg
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg

# 添加 清华 Docker 源

cat > /etc/apt/sources.list.d/docker.list << 'EOF'
deb [arch=arm64 signed-by=/usr/share/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu noble stable
EOF


# 安装
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 检查版本和是否可以运行
docker --version
docker run hello-world
  • 设置自启动
systemctl enable docker
systemctl start docker
##普通用户可以访问
usermod -aG docker user

IO测试

dd if=/dev/zero of=./testfile bs=1G count=10 oflag=direct  && dd if=./testfile of=/dev/null bs=1G count=10 && rm ./testfile

2026-05-22T15:23:16.png

CPU测试 Coremark

Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 87142.805272 / GCC13.2.1 20240309 -O2 -DMULTITHREAD=8 -DUSE_FORK -DPERFORMANCE_RUN=1  -lrt / Heap / 8:Fork
芯片soc内核数多核跑分备注
mt798128914RAX3000M
s905l3b416000移动盒子 功耗1.2瓦
ipq8071218000
ipq6000420658亚瑟
intel 1037U223170
IPQ6010424160太乙.雅典娜
s905l3a424286移动盒子 功耗1.2瓦
mt7986427226
RK3566427692JPTV
intel J1900434060蜗牛星际
RK3399632548 /37428(openwrt)
骁龙855887142(ubuntu26)

网速测试

docker run --rm \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e PASSWORD=123456 \
  -p 3000:80 \
  lscr.io/linuxserver/librespeed:latest

通过局域网 http://ip:30000

系统相关信息

sys_info

#!/bin/bash

# 通过 CPU part 识别型号
get_cpu_model() {
  PART=$(grep 'CPU part' /proc/cpuinfo | head -1 | awk '{print $NF}')
  case $PART in
    0x804|0x805) echo "Qualcomm Snapdragon 865 (Kryo 585)" ;;
    0x802|0x803) echo "Qualcomm Snapdragon 845 (Kryo 385)" ;;
    0xd44)       echo "ARM Cortex-A76" ;;
    0xd03)       echo "ARM Cortex-A53" ;;
    *)           echo "Unknown (CPU part: $PART)" ;;
  esac
}

# 最大主频
get_max_freq() {
  MAX=0
  for f in /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq; do
    VAL=$(cat $f 2>/dev/null)
    [ "$VAL" -gt "$MAX" ] && MAX=$VAL
  done
  awk -v f=$MAX 'BEGIN{printf "%.0fMHz", f/1000}'
}
echo ""
echo "系统:     $(. /etc/os-release && echo "$PRETTY_NAME") ($(uname -m))"
echo "CPU型号:  $(get_cpu_model)"
echo "CPU核心:  $(nproc) 核  (小核x4 Kryo585 Silver + 大核x4 Kryo585 Gold)"
echo "CPU主频:  $(get_max_freq)"
echo "内存:     $(free | awk 'NR==2{printf "%.1fGB / %.1fGB", $3/1024/1024, $2/1024/1024}')"
echo "存储:     $(df -h / | awk 'NR==2{printf "%s / %s", $3, $2}')"

echo ""
BAT=/sys/class/power_supply/qcom-battery
CAPACITY=$(cat $BAT/capacity)
FULL=$(cat $BAT/charge_full_design)

echo "===== 电池 ====="
echo "电量:     ${CAPACITY}%"
echo "状态:     $(cat $BAT/status)"
echo "电压:     $(awk '{printf "%.3fV", $1/1000000}' $BAT/voltage_now)"
echo "电流:     $(awk '{printf "%.1fmA", $1/1000}' $BAT/current_now)"
echo "温度:     $(awk '{printf "%.1f°C", $1/10}' $BAT/temp)"
echo "设计容量: $(awk -v f=$FULL 'BEGIN{printf "%dmAh", f/1000}')"
echo "剩余容量: $(awk -v cap=$CAPACITY -v full=$FULL 'BEGIN{printf "%.0fmAh / %dmAh (%d%%)", cap*full/1000/100, full/1000, cap}')"

echo ""
echo "===== CPU温度 ====="
echo "小核簇:   $(awk '{printf "%.1f°C", $1/1000}' /sys/class/thermal/thermal_zone5/temp)"
echo "大核簇:   $(awk '{printf "%.1f°C", $1/1000}' /sys/class/thermal/thermal_zone6/temp)"
for zone in 1 2 3 4 7 8 9 10 11 12 13 14; do
  TYPE=$(cat /sys/class/thermal/thermal_zone${zone}/type)
  TEMP=$(cat /sys/class/thermal/thermal_zone${zone}/temp)
  awk -v t=$TEMP -v name=$TYPE 'BEGIN{printf "%-26s %.1f°C\n", name, t/1000}'
done

echo ""
echo "===== GPU温度 ====="
echo "gpu:      $(awk '{printf "%.1f°C", $1/1000}' /sys/class/thermal/thermal_zone15/temp)"

echo ""

2026-05-23T00:07:01.png

查看防火墙状态

# 查看 ufw 状态和已开放端口
ufw status verbose

开放 3000-5000 端口

# TCP
ufw allow 3000:5000/tcp

# UDP
ufw allow 3000:5000/udp

# 重载生效
ufw reload

验证

ufw status verbose | grep 3000

如果 ufw 未启用

# 查看状态
ufw status

# 启用(注意:启用前确保 SSH 端口已放行,否则会断连)
ufw allow 22/tcp
ufw enable

WIFI AP模式

setup_sta_ap.sh.txt

需要改直供电

用电池总不安全,特别是锂电池,特别是软包锂电池,有鼓包着火风险,所以很有必要改直供电。

先买一个小的dcdc模块,3A的比较好,手机全速需要 4.2V2A (仅CPU工作,GPU不工作)

2026-05-27T06:40:09.png

拆外壳装dc板

  • 热风吹后背,加热3分钟
  • 拿个塑料薄片 插进去拉一圈,把胶水弄掉,就可以打开后盖了
  • 拆11颗螺丝,打开背板
  • 拆电源线,屏幕线
  • 拆电池的保护板
  • 焊接dcdc输出端到保护板上,代替电池。
  • 接上dc头子。
  • 开孔(玻璃开孔,得用玻璃钻头)慢慢来,我太急,把玻璃干碎了。

2026-05-27T06:41:15.png

2026-05-27T06:45:59.png

2026-06-03T07:29:43.png

装好后的效果

coremark 全速跑,稳定在6瓦左右,需要手动开机(稍后解决它)

全速跑 4.2V (空载差不多4.25V)

2026-05-27T14:53:03.png

2026-05-27T06:44:53.png
2026-05-27T06:44:59.png

通电开机

  • 默认通电2秒后,要手动开机
  • 如果不想手动开机,那么通电2秒后,给usb插个电,5秒后就会自动开机。