2021 年的时候买过一个迷你小主机,¥150 顺丰包邮到手,那时候比 N1 便宜。璇玑小主机 Z8300(1G 内存+8G 内置 eMMC 存储),150mm*120mm*30mm(长*宽*高),对比斐讯 N1 盒子尺寸(110mm*110mm*40mm,主机重 254g)。
备用节点参考:大哥云、魔戒、飞机云、搬瓦工JMS、极客云……
璇玑小主机 Z025(Z8300)与 N1 配置对比
璇玑小主机 Z025 配置:Atom x5-Z8300 CPU(支持 AES),1G 内存+8G 内置 eMMC 存储,带一个 USB3.0 接口。 OpenWrt R21.3.27 / 内核版本 5.4.109,Intel(R) Atom(TM) x5-Z8300 CPU @ 1.44GHz : 4 Core 4 Thread (CpuMark : 22903.246795 Scores) 。
N1 使用晶晨 Amlogic S905D 为主芯片,S905D 芯片属于 S905 系列的最高阶芯片,采用 ARM Cortex-A53 架构,四核 1.5GHz CPU,GPU 为 5 核 ARM Mali-450,支持 4K@60fps H265/VP9 10bit 硬件解码,支持 HDR10 和 HLG HDR,2G RAM 内存,8G 内置 eMMC 存储,没有 USB3.0 接口。 OpenWrt R21.6.1 / 内核版本 5.4.125-flippy-60+o,Phicomm N1 ARMv8 Processor rev 4 (v8l) x 4,CPU CoreMark 18619.084562 。
前情回顾
那时候刷过网友的 X86 OpenWRT 软路由固件,一般 X86 OpenWRT 都能使用。
固件和刷写工具都在这里:▼展开
如果需要删除所有分区,分区助手 PE 版 9.1-WinPE (32 位) 就不错,绿色,免费,小巧,单文件,支持 PE 运行。
OpenWRT 软路由-写盘工具打包下载:绿皮火车(20210730,包含 DiskImage_1_6_WinAll.exe 、 rufus-3.14p.exe 、 physdiskwrite「GUI 版本需要 .Net 3.5 支持」和 分区助手 PE 版 9.1-WinPE (32 位).exe 以及简单使用说明,解压密码 1024)
当然,还有很多其它工具也可以写盘,如 DiskGenius 、 UltraISO 和 balenaEtcher……balenaEtcher 也不错,就是体积比较大,有需要可以下载使用「balenaEtcher-绿色版-1.5.121」。
默认管理地址:192.168.2.1,密码:无
V21.X.XX 基于 4.19 内核
P21.X.XX 基于 5.10 内核
R21.X.XX 基于 5.4 内核
源码插件日常更新/修复,在 ttyd 终端或者 ssh 工具里输入一键更新插件命令升级:
opkg update && opkg list-upgradable |awk '{print $1}' |xargs -r opkg install
固件备用下载:
- 20210729:Z8300-OpenWRT-xuanwumen-20210729
那时候还没怎么折腾过编译 OpenWRT 固件,体验完,又装上 Win 10 LTSC 系统,然后就吃灰了……
最近在编译、更新旁路由 OpenWRT 固件,N1 、 cudy tr3000 、玩客云、 x86 虚拟机……又把这小主机翻出来折腾上了。
璇玑小主机 Z025(Z8300) X86 OpenWRT 编译+写入 eMMC
还是使用 Github Actions 在线编译,方法跟普通的 x86 架构配置编译差不多,加上 eMMC 、网卡、 usb 网卡相关支持就行。
温馨提示:开始编译前先开启 workflow 读写权限,否则编译完成,固件无法发布到 releases
开启方法:Settings -> General -> 滚动到底部 Workflow permissions -> 勾选 Read and write permissions,然后 Save 保存即可。
Z025 内置千兆网卡貌似是 RTL81111,据网上资料称使用 r8168 配置驱动,进入 Kernel modules > Network Devices 按需选择编译的网卡驱动即可:
Kernel modules > Other modules 检查 kmod-mmc 支持是否选上:
Kernel modules > USB Support,按需选择需要的无线网卡、设备驱动,比如 kmod-usb-net 、 kmod-usb-net-rtl8152 、 kmod-usb3 等:
还有一些 eMMC 分区、读写相关工具可参考添加:
Languages -> Perl
-> perl-http-date
-> perlbase-file
-> perlbase-getopt
-> perlbase-time
-> perlbase-unicode
-> perlbase-utf8
Utilities -> Disc -> blkid 、 fdisk 、 lsblk 、 parted
-> Filesystem -> attr 、 btrfs-progs(Build with zstd support) 、 chattr 、 dosfstools 、
e2fsprogs 、 f2fs-tools 、 f2fsck 、 lsattr 、 mkf2fs 、 xfs-fsck 、 xfs-mkfs
-> Compression -> bsdtar 、 pigz
-> Shells -> bash
-> gawk 、 getopt 、 losetup 、 tar 、 uuidgen
* 光影猫 (Photonicat) 看门狗依赖包:
Utilities -> pcat-manager
* DM 路由监视器依赖包:
Applications -> luci-app-netdata
Github Actions 在线编译 workflows 文件参考:
# File: .github/workflows/openwrt-builder.yml
# Description: Build OpenWrt using GitHub Actions
name: OpenWrt Builder(x86_x64_z8300)
on:
repository_dispatch:
workflow_dispatch:
env:
REPO_URL: https://github.com/coolsnowwolf/lede
REPO_BRANCH: master
FEEDS_CONF: feeds.conf.default
CONFIG_FILE: x86_x64.config
DIY_P1_SH: diy-part1.sh
DIY_P2_SH: diy-part2.sh
UPLOAD_RELEASE: true
TZ: Asia/Shanghai
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: "Check Server Performance"
run: |
echo "分配的服务器性能有限,若选择的插件过多,务必注意 CPU 性能!"
echo -e "已知 CPU 型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n"
echo "--------------------------CPU 信息--------------------------"
echo "CPU 物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)"
echo -e "CPU 核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n"
echo "--------------------------内存信息--------------------------"
echo "已安装内存详细信息:"
echo -e "$(sudo lshw -short -C memory | grep GiB) \n"
echo "--------------------------硬盘信息--------------------------"
echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT
- name: Checkout
uses: actions/checkout@main
- name: Initialization environment
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo -E apt-get -qq update
sudo -E apt-get -qq install ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential bzip2 ccache clang cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib git gperf haveged help2man intltool llvm libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
sudo -E apt-get -qq autoremove --purge
sudo -E apt-get -qq clean
sudo timedatectl set-timezone "$TZ"
sudo chown $USER:$GROUPS $GITHUB_WORKSPACE
- name: Clone source code
working-directory: ./
run: |
df -hT $PWD
git clone $REPO_URL -b $REPO_BRANCH openwrt
- name: Load custom feeds
run: |
[ -e $FEEDS_CONF ] && mv $FEEDS_CONF openwrt/feeds.conf.default
chmod +x $DIY_P1_SH
cd openwrt
$GITHUB_WORKSPACE/$DIY_P1_SH
- name: Update & Install feeds
run: |
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
- name: Load custom configuration
run: |
[ -e files ] && mv files openwrt/files
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt/.config
chmod +x $DIY_P2_SH
cd openwrt
$GITHUB_WORKSPACE/$DIY_P2_SH
- name: Download package
id: package
run: |
cd openwrt
make defconfig
make download -j8
find dl -size -1024c -exec ls -l {} \;
find dl -size -1024c -exec rm -f {} \;
- name: Compile the firmware
id: compile
run: |
cd openwrt
pwd
df -hT $PWD
echo -e "$(nproc) thread compile"
make -j$(nproc) || make -j1 || make -j1 V=s
echo "status=success" >> $GITHUB_OUTPUT
grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME
[ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
- name: Check space usage
if: (!cancelled())
run: df -hT
- name: Organize files
id: organize
if: env.UPLOAD_RELEASE == 'true' && !cancelled()
run: |
cd openwrt/bin/targets/*/*
rm -rf packages feeds.buildinfo version.buildinfo sha256sums profiles.json *.sha *.manifest *.bin
echo "FIRMWARE=$PWD" >> $GITHUB_ENV
echo "status=success" >> $GITHUB_OUTPUT
- name: Generate release tag
id: tag
if: env.UPLOAD_RELEASE == 'true' && !cancelled()
run: |
echo "release_tag=$(date +"%Y.%m.%d-%H%M")" >> $GITHUB_OUTPUT
touch release.txt
echo "status=success" >> $GITHUB_OUTPUT
- name: Upload firmware to release
uses: softprops/action-gh-release@v3
if: steps.tag.outputs.status == 'success' && !cancelled()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.tag.outputs.release_tag }}
body_path: release.txt
files: ${{ env.FIRMWARE }}/*efi.img.gz
- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@main
with:
retain_days: 0
keep_minimum_runs: 6
- name: Remove old Releases
uses: dev-drprasad/delete-older-releases@master
if: env.UPLOAD_RELEASE == 'true' && !cancelled()
with:
keep_latest: 8
delete_tags: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.config 文件比较长,这里就不贴了,可以参考 Github
编译成功,固件会发布到 releases,下载 openwrt-x86-64-generic-squashfs-combined-efi.img.gz 解压;
U 盘启动进入 PE,使用 Diskgenius 等工具删除内置 8G eMMC 硬盘所有分区,使用 DiskImage_1_6_WinAll 将 openwrt-x86-64-generic-squashfs-combined-efi.img 写入到 eMMC 硬盘,然后重启即可。
最近编译几次,一个小时多点就完成了,看 Actions 编译日志发现服务器 CPU 从 7763 升级到 AMD EPYC 9V74 80-Core 了,还是 4 核心,内存还是 16G 。
解压密码 1024 | 任何服务均有跑路风险,请注意防范!
备用节点:大哥云、魔戒、飞机云、搬瓦工JMS、极客云、扬帆云……