来自远方 https://www.runyf.cn/ zh-CN 总有一个远方在等着我们奔赴,阳光肆意,人潮拥挤,你一定会成为更好的自己。 There is always a distant waiting for us to go, the sun wanton, crowded, you will certainly become a better self. Thu, 11 Dec 2025 19:31:00 +0800 Thu, 11 Dec 2025 19:31:00 +0800 ZXV10 B860AV3.2-M机顶盒刷armbian教程 https://runyf.cn/archives/364/ https://runyf.cn/archives/364/ Thu, 19 Oct 2023 14:52:00 +0800 远方 1.制作armbian启动盘

使用rufus工具制作启动盘,也可以使用balenaEtcher-Portable工具
liang23_20240129174608.jpg

2.短接刷机安卓9.0系统

短接机顶盒,使用烧录工具刷入安卓9.0系统

屏幕截图 2023-10-19 145535.png

3.使用u盘启动armbian

附件有提供相关文件,制作好之后不需要修改u盘里面的文件,默认就行

开机进入安卓9安装rebootupdate.apk之后打开,系统会自动重启,然后进入路由器查看armbian获取的ip地址

然后通过ssh连接工具连接即可

Welcome to ARMBIAN!

Documentation: https://docs.armbian.com | Community: https://forum.armbian.com

IP address: 192.168.6.9

Create root password: ******
Repeat root password: ******

Warning: Weak password, it is too simplistic/systematic!

Support status: community support (looking for a dedicated maintainer)

Choose default system command shell:

1) bash
2) zsh
   1

Shell: BASH

Creating a new user account. Press  to abort

Please provide a username (eg. your first name): arounyf
Create user (arounyf) password: ******
Repeat user (arounyf) password: ******

Warning: Weak password, it is too simplistic/systematic!

Please provide your real name: Arounyf

Dear Arounyf, your account arounyf has been created and is sudo enabled.
Please use this account for your daily work from now on.

Detected timezone: Asia/Shanghai

Set user language based on your location? [Y/n] y
y

Generating locales: zh_CN.UTF-8

root@armbian:~#

4.国内源配置

文件位置/etc/apt/sources.list

deb http://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
#deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

deb http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free

deb https://mirrors.ustc.edu.cn/debian-security/  bullseye-security main contrib non-free
#deb-src http://security.debian.org/ bullseye-security main contrib non-free

#### 5.安装异地组网(推荐)

6.安装docker

root@armbian:~# apt-get update -y  && apt install docker.io -y

7.刷入emmc

刷入emmc之后,无需再借助U盘启动

root@armbian:~# armbian-install

[ OPTIONS ] Please Input ID: 125
[ INFO ] Input Box ID: [ 125 ]
[ INFO ] Model Name: [ IP103H,TY1608,BV310,B860AV-2.1M ]
[ INFO ] FDTFILE: [ meson-gxl-s905l3b-m302a.dtb ]
[ INFO ] MAINLINE_UBOOT: [  ]
[ INFO ] BOOTLOADER_IMG:  [  ]
[ INFO ] UBOOT_OVERLOAD: [ u-boot-s905x-s912.bin ]
[ INFO ] NEED_OVERLOAD: [ no ]
[ STEPS ] Which type of filesystem do you want for your root?
-------------------------------------------------------------

ID   TYPE
---------

1    ext4
2    btrfs
----------

[ OPTIONS ] Please Input ID (1/2): 1
[ INFO ] Input Type ID: [ 1 ]
[ INFO ] Type of filesystem: [ ext4 ]
[ STEPS ] Partitioning eMMC...
[ INFO ] Start backing up the default bootloader.
4+0 records in
4+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.257277 s, 16.3 MB/s
[ STEPS ] Successfully partitioned internal eMMC with amaprt.
[ INFO ] Start create MBR and partittion.
[ INFO ] 03. Write the mybox bootloader: [ /usr/lib/u-boot/mybox-bootloader.img ]
444+0 records in
444+0 records out
444 bytes copied, 0.00453976 s, 97.8 kB/s
8191+0 records in
8191+0 records out
4193792 bytes (4.2 MB, 4.0 MiB) copied, 0.435442 s, 9.6 MB/s
[ STEPS ] Processing BOOTFS partition...
[ INFO ] Formatting BOOTFS partition...
mkfs.fat 4.2 (2021-01-31)
[ INFO ] Copying BOOTFS ...
[ INFO ] Update the [ uEnv.txt ] file.
[ STEPS ] Start processing the rootfs partition...
[ INFO ] Formatting ROOTFS ...
[ INFO ] Copying ROOTFS ...
[ INFO ] Copying [ etc ] ...
[ INFO ] Copying [ home ] ...
[ INFO ] Copying [ lib64 ] ...
[ INFO ] Copying [ opt ] ...
[ INFO ] Copying [ root ] ...
[ INFO ] Copying [ selinux ] ...
[ INFO ] Copying [ srv ] ...
[ INFO ] Copying [ usr ] ...
[ INFO ] Copying [ var ] ...
[ INFO ] Generate the new fstab file.
[ INFO ] Update the relevant parameters.
[ SUCCESS ] Installation successful. Run [ poweroff ], remove the installation media then re-insert the power supply to boot new system.
root@armbian:~# poweroff
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(armbian) at 13:12:37.

Type `help' to learn how to use Xshell prompt.
[D:\~]$

Connecting to 192.168.6.9:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
_              _      ____  ___   ___  ____  _ _____ _
/ \   _ __ ___ | |    / ___|/ _ \ / _ \| ___|| |___ /| |__
/ _ \ | '_ ` _ \| |____\___ \ (_) | | | |___ \| | |_ \| '_ \
/ ___ \| | | | | | |_____|__) \__, | |_| |___) | |___) | |_) |
/_/   \_\_| |_| |_|_|    |____/  /_/ \___/|____/|_|____/|_.__/

Welcome to Armbian 23.08.0-trunk Bullseye with Linux 5.15.133-ophub

System load:   24%               Up time:       0 min    
Memory usage:  7% of 1.77G      IP:           192.168.6.9
CPU temp:      48°C               Usage of /:    19% of 6.8G       
RX today:      117.9 KiB

[ General system configuration (beta): armbian-config ]

Last login: Sun Oct 15 12:57:12 2023 from 192.168.6.5
root@armbian:~#

附件

参考链接

]]>
468 https://runyf.cn/archives/364/#comments https://runyf.cn/feed/
ArmKVM基于buildroot部署tailscale教程 https://runyf.cn/archives/515/ https://runyf.cn/archives/515/ Thu, 11 Dec 2025 19:31:00 +0800 远方 ArmKVM分区调整与 Tailscale 部署文档

一、操作概述

本文档详细描述buildroot系统中调整tf卡分区、挂载指定目录,并部署 Tailscale 守护进程的完整流程

二、分区调整操作

2.1 分区创建说明

通过fdisk工具对/dev/mmcblk1(tf卡)进行分区调整:

  • mmcblk1p3:大小 1GB,用于挂载/opt目录,存放tailscale使用
  • mmcblk1p4:用于挂载/userdata/jetkvm/images目录,存放iso使用

操作步骤:

使用ssh工具连接ArmKVM,账号root,密码root

fdisk /dev/mmcblk1 <<EOF 
d
3
p
n
p
3
180224
+1g
p
n
p 
2277376

p
w
EOF
# 查看分区情况
fdisk -l

# 重启系统使分区表生效
reboot

2.2 分区格式化

将新建的 p3、p4 分区格式化为 ext4 文件系统:
请分开执行以下两条命令

mkfs.ext4 /dev/mmcblk1p3
mkfs.ext4 /dev/mmcblk1p4

2.3 配置开机自动挂载

修改/etc/fstab文件,添加分区挂载规则,确保系统启动时自动挂载:

cp /etc/fstab /etc/fstab.bak
cat <<EOF >> /etc/fstab
/dev/mmcblk1p3  /opt  ext4  defaults  0  2
/dev/mmcblk1p4  /userdata/jetkvm/images  ext4  defaults  0  2
EOF

mount -a
cat /etc/fstab

2.4 注释原有挂载项

编辑/etc/init.d/S11partition文件,注释掉/userdata/jetkvm/images的原有挂载逻辑(避免冲突):

nano /etc/init.d/S11partition

# 找到对应挂载行,在行首添加 #注释
# 示例:# mount /dev/mmcblk1p3/userdata/jetkvm/images

三、Tailscale 部署

3.1 准备文件

  1. 将 Tailscale 程序包上传至/opt目录(需提前下载对应架构的 Tailscale 二进制包,也可以使用下面命令直接下载)
curl -L -o tailscale http://files.runyf.cn/headscale/arm/tailscale
curl -L -o tailscaled http://files.runyf.cn/headscale/arm/tailscaled
  1. 赋予程序执行权限:
chmod u+x /opt/tailscale*
  1. 上传 SSL 证书(pem 格式)至/opt目录,并创建证书目录:(如您自建tailscale控制器才需要此操作)
mkdir -p /etc/ssl/certs
# 可将pem证书复制到/etc/ssl/certs目录(若需要)
# cp /opt/*.pem /etc/ssl/certs/

3.2 创建 Tailscale 守护进程启动脚本

创建/etc/init.d/S99tailscaled脚本,实现 Tailscale 服务的开机自启、启停管理(使用默认数据目录和端口):

cat <<EOF >> /etc/init.d/S99tailscaled

#!/bin/sh

### BEGIN INIT INFO
# Provides:          tailscaled
# Required-Start:    $network $local_fs
# Required-Stop:     $network $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop tailscaled daemon
### END INIT INFO

DAEMON="/opt/tailscaled"
DAEMON_NAME="tailscaled"
PIDFILE="/var/run/$DAEMON_NAME.pid"

# 构建完整的启动命令(使用默认数据目录和端口)
DAEMON_OPTS=""

start() {
    printf "Starting %s: " "$DAEMON_NAME"
    start-stop-daemon -S -q -b -m -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_OPTS
    status=$?
    if [ "$status" -eq 0 ]; then
        echo "OK"
    else
        echo "FAIL"
    fi
    return "$status"
}

stop() {
    printf "Stopping %s: " "$DAEMON_NAME"
    start-stop-daemon -K -q -p "$PIDFILE"
    status=$?
    if [ "$status" -eq 0 ]; then
        echo "OK"
    else
        echo "FAIL"
    fi
    return "$status"
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart|reload)
        stop
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit $?

EOF
  • 赋予脚本执行权限:
chmod +x /etc/init.d/S99tailscaled
ln -s /opt/tailscale /usr/bin/tailscale

3.3 启动 Tailscale 服务

# 启动服务
/etc/init.d/S99tailscaled start

# 重启服务(如需)
/etc/init.d/S99tailscaled restart

# 停止服务(如需)
/etc/init.d/S99tailscaled stop

四、验证操作

  1. 验证分区挂载:

    df -h # 查看/opt和/userdata/jetkvm/images是否正常挂载
  2. 验证 Tailscale 进程:

    ps -ef | grep tailscaled # 查看进程是否运行
  3. 验证开机自启:重启系统后,再次执行上述命令,确认分区挂载和 Tailscale 进程正常。
  4. 执行tailscale up登录到控制器
]]>
0 https://runyf.cn/archives/515/#comments https://runyf.cn/feed/
zerotier自建服务器客户端接入教程 https://runyf.cn/archives/508/ https://runyf.cn/archives/508/ Fri, 05 Dec 2025 14:43:00 +0800 远方 一、windows客户端接入
  1. 下载安装zerotier

  2. 替换planet文件

    • 打开c:\programdata\zerotier\one目录
    • 替换掉planet
  3. 重启zerotier服务

    • 打开任务管理器,切换到服务找到该服务右键重启

    runyf_20251205144441.png

  4. 加入到自建网络

    • 打开cmd执行 zerotier-cli.bat join {替换成你的网络id}

二、安卓客户端接入

  1. 下载安装zerotier

  2. 设置planet

runyf_20251205145553.png
[scode type="yellow"]如何获取planet文件的base64 text?[/scode]
文件转base64链接直达 https://www.lddgo.net/convert/filebasesix

runyf_20251205145918.png

runyf_20251205150224.png

三、linux客户端接入

  1. 安装zerotier
curl -s https://install.zerotier.com | sudo bash
  1. 替换planet路径 /var/lib/zerotier-one
  2. 执行 zerotier-cli.bat join {替换成你的网络id}
  3. 重启zerotier服务
service zerotier-one restart
]]>
0 https://runyf.cn/archives/508/#comments https://runyf.cn/feed/
Arm-KVM使用教程 https://runyf.cn/archives/506/ https://runyf.cn/archives/506/ Tue, 25 Nov 2025 21:08:00 +0800 远方 runyf_20251124214830.jpg
runyf_20251124215055.jpg
runyf_20260111195156.jpg

按照上图接好线之后,浏览器输入ip地址访问即可,注意请使用http协议

]]>
0 https://runyf.cn/archives/506/#comments https://runyf.cn/feed/
One-kvm基于私家云使用教程 https://runyf.cn/archives/486/ https://runyf.cn/archives/486/ Tue, 17 Dec 2024 20:12:00 +0800 远方 1、开始使用

runyf_20241217200622.jpg
私家云.jpg

如上图,私家云线连接好之后通电等待开机,获取私家云ip地址

  • 方法一、等待小屏幕显示ip地址
  • 方法二、在路由器后台找到主机名为khadas-vim1之后在浏览器中输入ip地址访问
  • 方法三、接显示器或者网络扫描的方式找到pikvm的ip地址

    runyf_20241124172014.jpg

2、重要说明

初始WEB和VNC账号密码都为admin/admin且同步,root用户密码默认为1234
ssh默认端口:22
web默认端口:80,443
vnc默认端口:5900

3、如何切换到root用户

runyf_20241124171037.jpg

runyf_20241124171140.jpg

4、如何连接wifi

在连接wifi前请先连接网线,访问后台页面,然后切换到root用户
输入nmtui进入 Activate a connection即可选择wifi进行连接
runyf_20241217202523.png

5、如何设置静态IP?

需先切换到root用户操作

输入nmtui命令可修改私家云ip地址
runyf_20241217202036.png
runyf_20241217202056.png

6、如何修改MAC地址

暂无

7、如何修改后台登录密码

需先切换到root用户操作

kvmd-htpasswd set admin
#输入密码
#重启服务,使修改生效
systemctl restart kvmd kvmd-nginx

8、ATX电源控制

image.png

9、挂载硬盘/TF卡

#查看硬盘位置
fdisk -l
#将其格式化为ext4文件格式(将sdx替换为你的设备地址)
mkfs.ext4 /dev/sda

#查看系统所有分区
df -h

#在文件末尾添加如下挂载
nano /etc/fstab

/dev/sda /var/lib/kvmd/msd  ext4  nofail,nodev,nosuid,noexec,rw,errors=remount-ro,data=journal,X-kvmd.otgmsd-root=/var/lib/kvmd/msd,X-kvmd.otgmsd-user=kvmd  0 0

#如果挂载操作报错请检查并修正错误
systemctl daemon-reload
mount /dev/sda

chown kvmd -R /var/lib/kvmd/msd/
systemctl restart kvmd-otg kvmd

10、制作ventoy引导

目前支持超过2.2g大小的iso,不再推荐使用

11、参考链接

]]>
2 https://runyf.cn/archives/486/#comments https://runyf.cn/feed/
使用openssl自签ssl证书 https://runyf.cn/archives/479/ https://runyf.cn/archives/479/ Fri, 11 Oct 2024 17:31:00 +0800 远方 新建脚本
# build_cert.sh

#!/bin/bash

CERT_HOST=$1
CERT_DIR=$2
CONF_FILE=$3

echo "[req]
default_bits  = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
countryName = XX
stateOrProvinceName = N/A
localityName = N/A
organizationName = Self-signed certificate
commonName = $CERT_HOST: Self-signed certificate

[req_ext]
subjectAltName = @alt_names

[v3_req]
subjectAltName = @alt_names

[alt_names]
IP.1 = $CERT_HOST
" > "$CONF_FILE"

mkdir -p "$CERT_DIR"
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout "$CERT_DIR/$CERT_HOST.key" -out "$CERT_DIR/$CERT_HOST.crt" -config "$CONF_FILE"

执行

./cert.sh ip地址 /root/cert/ /root/cert/cert.conf

nginx配置

ssl_certificate  /etc/nginx/ssl/ssl.crt;
ssl_certificate_key  /etc/nginx/ssl/ssl.key;
]]>
1 https://runyf.cn/archives/479/#comments https://runyf.cn/feed/
小远异地组网Linux客户端安装教程 https://runyf.cn/archives/475/ https://runyf.cn/archives/475/ Sun, 01 Sep 2024 23:57:00 +0800 远方 一、安装客户端

输入此命令安装

curl -fsSL https://tailscale.com/install.sh | sh

二、添加节点

该命令在后台指令中复制
runyf_20250427143757.png

tailscale up --login-server=https://xxx.xxx.xx

runyf_20240902000248.jpg

三、复制nodekey值到后台添加

runyf_20240901232054.jpg

]]>
2 https://runyf.cn/archives/475/#comments https://runyf.cn/feed/
小远异地组网安卓客户端安装教程 https://runyf.cn/archives/473/ https://runyf.cn/archives/473/ Sun, 01 Sep 2024 23:44:00 +0800 远方 一、下载客户端

二、安装软件

三 、设置自定义服务器

001.jpg

四、添加账户

002.jpg

]]>
1 https://runyf.cn/archives/473/#comments https://runyf.cn/feed/
小远异地组网windows客户端安装教程 https://runyf.cn/archives/467/ https://runyf.cn/archives/467/ Sun, 01 Sep 2024 22:40:00 +0800 远方 一、下载客户端

二、打开cmd执行该命令

该命令在后台指令中复制
runyf_20250427143757.png

tailscale up --login-server=https://xxx.xxx.xx

cmd执行

三、复制nodekey值到后台添加

runyf_20240901225849.jpgrunyf_20240901232054.jpg

]]>
0 https://runyf.cn/archives/467/#comments https://runyf.cn/feed/
使用docker安装postgres14数据库与常见问题解决 https://runyf.cn/archives/465/ https://runyf.cn/archives/465/ Mon, 26 Aug 2024 11:53:00 +0800 远方 docker-compose.yml
services:
postgres-container:
image: postgres:14
container_name: postgres
environment:
POSTGRES_PASSWORD: postgres
ports:

- "5432:5432"
  restart: unless-stopped
  volumes:
- ~/postgres/data:/var/lib/postgresql/data/

修改密码

进入容器:docker exec -it postgres bash
使用postgres登录:su postgres
连接数据库:psql -U postgres
修改postgres用户密码:Alter user postgres with password ‘123456’;
退出数据库连接:\q

docker php74-fpm安装pgsql驱动

apt-get update
apt-get install -y libpq-dev
docker-php-ext-install pgsql pdo_pgsql pdo

更新id_seq

手动导入数据之后可能会出现插入数据会提示主键重复,就需要更新id_seq值

SELECT setval('users_id_seq', (SELECT max(id) FROM users));

创建id_sql

CREATE SEQUENCE
acls_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START WITH 1
CACHE 1; 

参考链接

docker修改postgresql密码
How to use docker php ext install pgsql postgres Command
pgsql.sql在新版本(pg版本大于10)报pg_attrdef.adsrc不存在的解决办法
postgresql14报错
Laravel启用postgreSQL数据库过程中遇到的问题

]]>
1 https://runyf.cn/archives/465/#comments https://runyf.cn/feed/
One-kvm基于玩客云使用教程 https://runyf.cn/archives/464/ https://runyf.cn/archives/464/ Mon, 19 Aug 2024 17:02:00 +0800 远方 1、开始使用

runyf_20250331112619.jpg

如上图,玩客云线连接好之后通电等待前面板显示绿灯,然后在路由器后台找到主机名为one-cloud之后在浏览器中输入ip地址访问,如果路由器还是没有出现ip或者无法打开路由器后台,可以使用接显示器或者网络扫描的方式找到pikvm的ip地址
runyf_20241124172014.jpg

2、重要说明

初始WEB和VNC账号密码都为 admin/admin且同步,root用户密码默认为 1234
ssh默认端口:22
web默认端口:80,443
vnc默认端口:5900

3、如何切换到root用户

runyf_20241124171037.jpg

runyf_20241124171140.jpg

4、如何设置静态IP?

需先切换到root用户操作

nano /etc/systemd/network/99-eth0.network

[Match]
Name=eth0

[Network]
#DHCP=yes
Address=192.168.6.8/24
Gateway=192.168.1.1
DNS=192.168.1.1

[Link]
MACAddress=B6:AE:B3:21:42:0C

5、如何修改MAC地址

需先切换到root用户操作,执行以下命令将生成随机MAC地址,最后将执行reboot命令重启系统

MAC="$(echo 2a:01:`openssl rand -hex 4 | sed 's/\(..\)/\1:/g; s/.$//'`)"
echo $MAC
sed -ie "s/MACAddress=B6:AE:B3:21:42:0C/MACAddress=$MAC/g" /etc/systemd/network/99-eth0.network
reboot

6、如何修改后台登录密码

需先切换到root用户操作

kvmd-htpasswd set admin
#输入密码
#重启服务,使修改生效
systemctl restart kvmd kvmd-nginx

7、系统安装

runyf_20250430193926.png

runyf_20250430194109.png

runyf_20250430200321.png

runyf_20250430200540.png

runyf_20250430200552.png

8、ATX电源控制

电源控制线连接到被控机开关机针脚 POWER SW

image.png

9、重刷固件

One-KVM固件更新或者系统出错使用

刷机工具以及刷机包文件下载地址

首先安装烧录软件 USB_Burning_Tool
将下载的固件 One-KVM_by-SilentWind_Onecloud_XXXXXX.burn.img.xz 解压,导入烧录工具

runyf_20250118222449.png

插上usb公对公的线,一头插在电脑上,另外一头插在玩客云靠近HDMI的USB口,然后找个牙签或者顶针插入玩客云背面小孔,接着插上电源,出现连接成功后点击开始即可

如果刷机报错,建议换台电脑重试

10、OLED驱动代码

11、参考链接

]]>
81 https://runyf.cn/archives/464/#comments https://runyf.cn/feed/