ZHYQ118

一个太过正常的人的自白

前几天准备将openwrt升级时,发现无法写入emmc,尝试了几种方法都没有解决,最后觉得最大的问题可能是emmc分区乱掉了,遂决定来个彻底恢复。方法也比较简单,但长时间不操作了容易忘,记录一下:

制作一个能够从U盘正常启动的armbian系统

测试过几个版本之后,只有这个版本最简单好用,不需要修改任何内容,直接把镜像通过写盘软件写入优盘即可,下载链接Armbian_5.44_S9xxx_Ubuntu_bionic_3.14.29_server_20180729.zip

进入armbian系统使用ddbr恢复分区

1、进入armbian

启动盘制作好后插入N1机身,然后插上网线后通电,正常情况下就可以直接启动了,到路由器中找出新出现的有线设备(一般带一个aml后缀的设备),复制ip地址,使用终端ssh进入armbian,用户名root,密码1234,进入系统后后要求强制修改。修改好后reboot设备再次进入系统即可。

2、下载ddbr原版恢复包

地址如下

-emmc.img.gz

3、ddbr恢复

进入系统后使用命令

1
ddbr

然后输入b(backup),在进度条开始后即可Ctrl+C取消,这样可以获取到ddbr备份的文件的名称。

1.jpg

打开winscp用sftp加你的ssh登录信息登陆,进入/ddbr目录,可以看到一个*-emmc.img.gz文件,将它的文件名复制下来然后删除该文件。把从网盘下载的原版系统ddbr包上传到该目录,上传完成后把文件名改成刚才复制的文件名。

2.jpg

然后回到终端,输入ddbr指令,这回键入r(restore),它会询问你是否使用了压缩(DID YOU USED COMPRESSION),选择y即可

3.jpg

成功后,输入poweroff关机,大功告成。

然后可以继续用优盘制作openwrt启动盘,插入启动,写入emmc,一切就像新的一样丝滑。

参考链接:

斐讯N1探索手记#1

斐讯N1探索手记#2

在蜗牛星际的 BIOS 中关闭串口(Serial Port/COM Port),通常是为了避免与黑群晖引导程序冲突(尤其是使用 TinyCore RedPill 等引导时,未使用的串口可能导致内核报错或干扰正常启动)。以下是详细步骤:


📌 关闭串口的 BIOS 操作步骤

  1. 开机进入 BIOS:

    • 将显示器、键盘连接到蜗牛星际主板。

    • 开机后立即反复按 DeleteF2(具体按键需看开机画面提示,通常是 DelF2)进入 BIOS 设置界面。

  2. 定位串口设置选项:

    • 在 BIOS 主界面,使用 方向键 切换到 Advanced(高级) 选项卡。

    • 找到 Super IO ConfigurationSerial Port Configuration 选项(不同 BIOS 名称可能略有差异,重点找 SerialCOM 字样)。

  3. 禁用串口:

    • 进入 Super IO Configuration 后,你会看到类似以下选项:

      • Serial Port 1COM1(对应主板背板的 DB9 接口)

      • Serial Port 2COM2(对应主板上的排针接口)

    • 将需要关闭的串口状态设置为 Disabled

      • 选中 Serial Port 1 → 按 Enter → 选择 Disabled

      • 同理关闭 Serial Port 2(如果存在)。

  4. 保存并退出:

    • F10 键 → 选择 Yes 保存设置并退出 BIOS。

    • 系统将自动重启。


⚠️ 注意事项

  1. 安全操作:

    • 修改 BIOS 前建议断开所有硬盘数据线(避免意外损坏数据)。

    • 操作时保持主板供电稳定(防止 BIOS 设置丢失)。

  2. 串口位置:

    • COM1 一般对应蜗牛星际机箱背部的 DB9 串口(大号梯形接口)。

    • COM2 通常对应主板上的 4针/9针排针(需用线缆扩展,默认可能未使用)。

  3. 黑群晖兼容性:

    • 关闭串口后,可减少引导时出现 ttyS* 相关内核错误(如 "Could not set serial console"),提升黑群晖启动稳定性。

🔧 替代方案(若 BIOS 无关闭选项)

极少部分精简版 BIOS 可能隐藏串口设置,此时可通过 修改引导参数 强制忽略串口:

  1. 适用于 TinyCore RedPill / RR 引导:

    • 编辑引导盘的 grub.cfguser_config.json 文件。

    • 在内核参数(cmdline)中添加 console=ttyS0,115200n8console=tty0(强制指定输出到第一个串口或虚拟终端)。

    • 或添加 ignore_loglevel 参数抑制串口初始化错误(临时方案):

      1
      2
      3
      4
      5
      "extra_cmdline": {
      ...,
      "console": "ttyS0,115200n8", # 指定串口
      "ignore_loglevel": "1" # 忽略日志级别错误(部分情况有效)
      }

💎 总结

步骤 操作要点
1. 进入 BIOS 开机按 DelF2
2. 定位串口设置 AdvancedSuper IO Configuration
3. 禁用串口 设置 Serial Port 1/2Disabled
4. 保存退出 F10Yes

关闭串口是优化蜗牛星际运行黑群晖的关键步骤之一,配合正确的引导驱动(如网卡驱动)和 VID/PID 设置,可显著减少启动故障。如仍有问题,建议结合 上一篇回复 中的网络驱动排查方法综合解决。

补充说明:在蜗牛星际主板中关闭所有串口(Serial Port)不会影响 USB 启动盘的正常工作

在windows中安装fastboot驱动一直比较头疼,默认的android fastboot驱动总是处于不可用状态,尤其是重新安装系统后,总要经过一番折腾。
默认就像这样,黄色感叹号。
1.png
输入fastboot devices后没有反应。需要手动安装,步骤如下:

  • 1、打开设备管理器,找到上面的黄色感叹号Android,右键“更新驱动程序”,选择“浏览我的电脑以查找驱动程序”
    2.png
  • 2、继续,让我从计算机上的可用驱动程序列表中选取

3.png

  • 3、显示所有设备
    4.png

  • 4、下一步,选择“从磁盘安装”
    5.png

  • 5、浏览,找到自己存放驱动的位置,选择android_winusb,后缀应该是inf,不过你的可能不显示。
    6.png
    7.png

  • 6、下一步选择“Android Bootloader Interface”
    8.png
    弹出警告信息后选“是”就可以安装成功了,如图
    10.png
    如上,就完成了,回到设备管理器,查看状态
    11.png

大功告成。

需要下载的驱动建议官网下载。

安装 debian 后,中文环境下home目录下文件夹显示的是中文,不方便使用cd命令,用到的软件xdg-user-dirs-gtk(Gnome 环境已默认安装),可以方便更改为英文。

1
2
3
4
5
6
#临时转换系统语言为英文,重启后会自动恢复原值的
export LANG=en_US
#执行转换命令,弹出的窗口中会询问是否将目录转化为英文路径,同意并关闭
xdg-user-dirs-gtk-update
#转换回系统语言为中文,也可以不执行下面的命令,直接重启也一样的
export LANG=zh_CN

下次进入系统后,会提示是否把目录转化为中文,选择不,并选择不再提示,并取消修改。

又从disqus切换到了gitalk

简介

gitalk是一个基于github开发的评论插件,它将文章评论以issues形式保存在github仓库中

实现步骤如下:

  1. 注册github应用
  2. NexT配置

注册github应用

进入github注册页面:Register a new OAuth application

  • Application name:应用名,方便起见直接填github用户名
  • Homepage URL:网站地址
  • Application description:应用描述
  • Authorization callback URL:网站地址

注册成功后会生成Client IDClient Secret

提示:Homepage URLAuthorization callback URL如果绑定了自己的域名,最好填写自定义域名,不要填写***.github.io ,否则可能会出现The redirect_uri is not associated with this application 的提示。

NexT配置

修改主题_config.yml(根目录下)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# Gitalk
# For more information: https://gitalk.github.io
gitalk:
enable: true
github_id: zjykzj # GitHub repo owner
repo: guestbook # Repository name to store issues
client_id: e15xxxxx63dce # GitHub Application Client ID
client_secret: 76cxxxxxf766 # GitHub Application Client Secret
admin_user: zjykzj # GitHub repo owner and collaborators, only these guys can initialize gitHub issues
distraction_free_mode: true # Facebook-like distraction free mode
# When the official proxy is not available, you can change it to your own proxy address
proxy: https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token # This is official proxy adress
# Gitalk's display language depends on user's browser or system environment
# If you want everyone visiting your site to see a uniform language, you can set a force language value
# Available values: en | es-ES | fr | ru | zh-CN | zh-TW
language: zh-CN
  • 设置enabletrue
  • github_id填入github帐号(用户名,不是邮箱)
  • repo填入github仓库名(注意:是仓库名不是仓库地址),评论将会以issues形式保存在该仓库下
  • client_id填入注册生成的值
  • client_secret填入注册生成的值
  • admin_user填入github帐号,用于初始化评论账户(用户名,不是邮箱)

Error: Not Found

问题描述:在文章底部评论框中出现错误信息

1
Error: Not Found

解决:和配置选项的填写有关,注意填写的内容

备注:填写主题中的配置的时候一定要小心,否则可能就出现此问题。我折腾了一个小时,最后发现是填写仓库名称的时候#号漏删了。
另外,如果配置都正确的情况下,如果还是出现此问题,那么请注意把评论所在仓库设置为public

未找到相关的issue进行评论

错误提示:Related Issues not found:未找到相关的issue进行评论,出现这种情况是因为文章评论还未初始化,只需要点击下面的按钮,登录 GitHub 账户即可。

文章少的话记得登录github账户后一篇一篇打开进行初始化,如果已有文章较多,建议查找脚本操作。

隐藏评论框

设置gitalk评论系统后,将会在每篇文章末尾添加评论框,而对于标签页/类别页等不需要评论的文章,可在front-matter设置属性进行隐藏

1
comments: false

因为一加Ace3切换成OxygenOS后会伴随有信号丢失的问题,解决办法就是刷ocdt分区和oplusstanvbk分区,但是这个也不是一劳永逸的方法,每次ota后都要重新操作一遍,为了方便自己使用,特在此记录。

恢复信号

1
2
3
adb reboot fastboot
fastboot flash ocdt ocdt.img
fastboot flash --slot=all oplusstanvbk oplusstanvbk.img

这里面的ocdt.img和oplusstanvbk.img是自己在买回新机后备份的原ColorOS系统的分区,一直保留使用,据说这个是和自己的手机绑定的,所以使用别人的,以及其它版本的不知道是否可行。

Root

现在使用APatch进行root,虽然从Apr 4, 2024已经没有再进行更新了,但截止到目前依然可用,目前最新版本的oos为CPH2609_15.0.0.400(EX01) 。使用它的原因是感觉比Magisk好用,内核级别的root,不容易被检测到。第一次安装刷入的步骤不难,也不是自己的目的,升级后进行的操作步骤如下:

获取boot镜像文件

  • 1、下载全量包,可通过oxygen Updater 获得
  • 2、解包
    • 通过解压软件获取payload.bin 文件
    • 通过payload dumper 获取boot.img文件

修补镜像

将获取到的原系统boot.img传输到手机,打开APatch,点击右上角手机图标,选择选择一个启动镜像并修补 ,找到文件,选择进行修补,之后修补好的文件会被保存到download文件夹,名称类似于apatch_patched_10763_0.10.7_prob.img

刷入修补后的boot文件

将修补后的apatch_patched_10763_0.10.7_prob.img传到电脑,在相应文件夹内打开终端,输入

1
2
adb reboot bootloader
fastboot flash boot xxx_boot.img

完成

补充:

在oos14时代,可能是内核版本没变,一次修补好的boot文件连续用了好几次,升级后直接刷入,免除了解包的麻烦。

但在oos15时代,不知道什么原因,第一次大版本升级后修补的boot镜像,直接用在后面的小版本OTA后都导致了无法进入系统的问题,所以,还是不要偷懒,每次都解包重新修补比较保险。

当然,出现无法启动的问题后,只需要刷入原版boot.img即可重新开机。

附:Linux环境下payload dumper使用方法

系统要求

  • Python3, pip
  • google protobuf for python pip install protobuf

准备工作

1
python -m pip install -r requirements.txt

这里要注意,如果不能安装,要进入python虚拟环境,方法在这一篇 ,这一点至关重要,我在这里花费了不少时间。

全量包解包

1
python payload_dumper.py payload.bin

python虚拟环境

一、安装虚拟环境包

在使用虚拟环境之前,首先需要安装虚拟环境管理工具。Python提供了多种工具来创建虚拟环境,最常用的是venv和virtualenv。

  • 安装venv
    Python 3.3及以上版本自带venv模块,因此无需额外安装。只需确保Python版本符合要求。
  • 安装virtualenv
    对于Python 2或者需要额外功能,可以选择安装virtualenv。使用以下命令安装virtualenv:
1
pip install virtualenv

二、创建虚拟环境

  • 使用venv创建虚拟环境
    在命令行中导航到项目目录,然后使用以下命令创建虚拟环境:
1
python -m venv myenv

其中myenv是虚拟环境的名称,可以根据需要更改。

  • 使用virtualenv创建虚拟环境
    同样,在项目目录下,使用以下命令创建虚拟环境:
1
virtualenv myenv

三、激活虚拟环境

在Unix或MacOS上激活

1
source myenv/bin/activate

四、在虚拟环境中安装和管理包

激活虚拟环境后,所有的包安装和管理操作都会在该虚拟环境中进行,而不会影响全局的Python环境。

1. 安装包

例如,安装requests库:

1
pip install requests

2、查看已安装包

1
pip list

3、退出虚拟环境

1
deactivate

五、在项目中使用虚拟环境

1. 项目文件结构

建议将虚拟环境目录排除在版本控制之外(例如Git),可以在项目根目录中创建一个.gitignore文件并添加以下内容:

myenv/

2. 使用requirements.txt管理依赖

在项目开发中,可以使用requirements.txt文件来管理依赖。在虚拟环境中,生成requirements.txt文件:

1
pip freeze > requirements.txt

在新的环境中,可以使用以下命令安装所有依赖:

1
pip install -r requirements.txt

六、其它

1、包冲突问题

在虚拟环境中安装包时,可能会遇到包冲突问题。可以使用pipdeptree工具查看包依赖关系,并解决冲突:

1
2
pip install pipdeptree
pipdeptree

2、使用不同版本的Python

可以在创建虚拟环境时指定Python版本。例如,使用Python 3.8创建虚拟环境:

1
virtualenv -p python3.8 myenv

3、使用venv和virtualenv同时管理多个项目

可以在不同的项目中使用不同的虚拟环境,以便独立管理各个项目的依赖关系。

获取docker镜像

拉取homeassistant最新docker镜像
终端登入执行以下命令

docker pull homeassistant/home-assistant:latest

创建docker容器

创建homeassistant的docker容器
点击Docker>容器菜单,然后 点击添加按钮

点击 命令行 按钮

在弹出的弹窗中 准备输入以下代码

docker run -d --name="hass" -v 你的挂载点/hassistant:/config -p 8123:8123 homeassistant/home-assistant:latest

挂在点在 openwrt>系统>挂载点 查看,就是结尾带docker字样的那个

由此最终得出 弹窗中需要输入的命令行 即为

docker run -d --name="hass" -v /mnt/mmcblk2p4/docker/hassistant:/config -p 8123:8123 homeassistant/home-assistant:latest

然后在创建docker容器处,配置以下两项:

  • docker镜像:选择homeassistant/home-assistant:latest
  • 网络:选择host | host

启动docker容器

找到容器,点击启动,稍微等待一会儿

最后在浏览器 输入你的http://软路由IP地址:8123 就可以登录homeassistant后台

安装hacs

到现在为止,我们的Home Assistant系统已经安装完毕并正常运行了,但它仍然是一个空壳子。本质上,现在的Home Assistant,就相当于刚刚买回来的手机或者笔记本电脑,只有操作系统,还需要安装各种软件(应用/App),才能够真正满足日常使用需求。
HACS(Home Assistant Community Store,HA社区商店) 是一个应用商店,我们推荐安装!

网上找到的教程基本都是针对国内访问优化过的商店,不放心,我找到了官方原版,安装步骤也很详细,姑且复制过来。
官方地址
1、进入终端
2、进入容器:

docker exec -it <name of container running homeassistant> bash

上面创建的容器名称为hass,所以最终命令应为

docker exec -it hass bash

3、下载运行bash脚本

wget -O - https://get.hacs.xyz | bash -

4、重启homeassistant

最后你的homeassistant的左侧就多出了 hacs 的菜单,就可以使用了。

保存备用
netsh int ip reset
netsh winsock reset
ipconfig /flushdns

git安装

debian系

sudo apt install git

arch linux

sudo pacman -S git

macos

brew install git

设置git

设置提交用户名

git config --global user.name "Mona Lisa"

设置提交电子邮件

git config --global user.email "YOUR_EMAIL"

验证一下

git config --global user.name
git config --global user.email

设置GitHub

现在github已不能使用传统token的方式验证,网上大部分教程已失效,可采用官方推荐的gh(GitHub CLI)方式验证自己的账户。

安装gh

macos

brew install gh

debian系

1
2
3
4
5
6
type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y

arch linux

sudo pacman -S github-cli

验证账户

gh auth login

一直下一步即可完成账户验证。