作者: xiaomi

  • 🚀 S905 系列盒子刷入 fnOS/Trim 全攻略 (含 Headless 修复)本教程适用于 S905L3 (g12a) 等同类设备,解决“不接 HDMI 无法启动”及“应用商店空白”等顽疾。

    其他的 s905 设备应该是一样的方法:

    Image Image Image
    🛠️ 第一步:环境准备与分区
    先刷入 Armbian 作为跳板,目的是利用其自带的脚本完成 eMMC 分区。

    执行 Armbian 写入: 运行 armbian-install,在选择文件系统时务必选择 btrfs。

    手动格式化分区:

    mkfs.fat /dev/mmcblk2p1
    mkfs.btrfs /dev/mmcblk2p2
    写入镜像: 断电,将 fnOS 镜像写入 U 盘,插上 U 盘启动。

    💻 第二步:进入系统
    进入 web 界面设置用户名和密码。

    SSH 登录: ssh 用户名@ip地址。

    切换 Root: 执行 sudo su 切换到 root 用户。

    📂 第三步:拷贝文件
    将 U 盘中的系统数据迁移至内置 eMMC:

    Bash

    同步根目录(排除动态目录)
    rsync -aAXv –exclude={“/dev/“,”/proc/“,”/sys/“,”/tmp/“,”/boot/“,”/vol00/“,”/run/“,”/mnt/“,”/media/*”,”/lost+found”} / /vol00/RemovableDisk_1/

    同步引导目录
    rsync -aAXv /boot /vol00/RemovableDisk/
    🔑 第四步:重新指定 UUID
    为了让系统从 eMMC 启动,需要更新挂载标识。

    获取新分区 UUID:

    lsblk /dev/mmcblk2p1 -o UUID
    lsblk /dev/mmcblk2p2 -o UUID
    Image
    替换以下三个文件中的旧 UUID 为新 UUID:

    /vol00/RemovableDisk/uEnv.txt

    /vol00/RemovableDisk/extlinux/extlinux.conf

    /vol00/RemovableDisk_1/etc/fstab (注意: fstab 有两个替换项目)

    Image
    重启进入系统: 执行 systemctl reboot -i 后重启。

    ⚡ 第五步:进阶修复
    按照 @zys1310992814 的 issues/317 修改引导防止在不接 HDMI 的情况下出现内核恐慌。

    引导参数补充
    在 /boot/extlinux/extlinux.conf 和/boot/uEnv.txt这两个文件内加上启动参数: splash video=card0-HDMI-A-1:1920×1080@60e extraargs=fbcon=map:11
    [!TIP] 更极端一点的方法是在 DTB 里把 vpu,cvbs-connector 和 hdmi-tx 状态设为 status = “disabled”;。

    禁用显示辅助服务
    执行以下命令关闭初始化小屏幕的服务(不接屏幕时该服务会导致内核异常):
    systemctl disable trim_miniscreen
    修复应用商店空白
    手动强制写入正确的 device_id 并锁定权限:
    echo -n 07f3e89c806148a1954a09dfd27f4b2f94f5ab80 > /etc/device_id
    chmod 444 /etc/device_id
    chattr +i /etc/device_id
    创建自动检查脚本与服务
    如果担心 ID 被重置,建议创建一个 30 分钟检查一次的计划任务。
    创建脚本: sudo nano /usr/bin/changeid.sh

    !/bin/bash

    FILE_PATH=”/etc/device_id”
    TARGET_ID=”07f3e89c806148a1954a09dfd27f4b2f94f5ab80″

    解锁并检查 (tr过滤空字节)

    chattr -i “$FILE_PATH” 2>/dev/null
    if [ “$(cat $FILE_PATH 2>/dev/null | tr -d ‘\0’)” != “$TARGET_ID” ]; then
    echo -n “$TARGET_ID” > “$FILE_PATH”
    systemctl restart sysinfo_service.service trim_app_center.service trim_main.service
    fi
    chattr +i “$FILE_PATH”
    创建服务: sudo nano /etc/systemd/system/changeid.service

    [Unit]
    Description=change Device ID Service
    After=network.target

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/changeid.sh

    [Install]
    WantedBy=multi-user.target
    创建定时器: sudo nano /etc/systemd/system/changeid.timer

    [Unit]
    Description=Run changeid every 30 mins

    [Timer]
    OnUnitActiveSec=30min
    AccuracySec=1s

    [Install]
    WantedBy=timers.target
    最后执行:systemctl daemon-reload && systemctl enable –now changeid.timer 即可。

    Image
    最后祝你刷机愉快哈哈!

  • ubuntu开机启动服务

    1.路径cd /etc/systemd/system/
    2.重新加载配置文件systemctl daemon-reload
    3.允许开机启动systemctl enable frps.service
    4.启动systemctl start frps.service
    5.查看状态systemctl staus frps.service
    6.查看日志journalctl -u frps.service

  • 晶晨S905X3刷机教程

    1.正常情况下按住AV内reset、或后面板的reset按钮就可以,前提是刷入正确的安卓包
    2.如果没有刷对安卓包,需要拆机进行短接
    3.armbian通过timeshift进行恢复,需要UUID正确,但是常规写入可能导致UUID不同,需要修改分区UUID和备份相同
    4.使用u盘启动盘修改emmc的uuid后,可以从emmc启动,再运行timeshift恢复即可
    5.emmc启动是通过lable找到root的,不是通过uuid
    tune2fs -U c0737951-184b-4b03-a0e7-d203e4e2e713 /dev/mmcblk1p2
    fatlabel /dev/mmcblk1p1 A10A-3F1C