WangQiFei

蒸 馏 器


思想提纯
  • 首页
  • 归档
  • 标签
  • 关于
  •     

© 2024  by  Wangqifei

360T7升级openwert

发布于 2023-10-27 11:10 OpenWrt 

360T7 写入 openwrt

360T7 配置

MT7981(filogic 820)

  • CPU:MT7981B 双核 A53 1.3GHz ,架构 aarch64_cortex-a53
  • RAM:256M DDR3
  • FLASH:128M SPI NAND
  • 无线 phy:MT7976CN AX3000
  • 交换机:MT7531A 2xHSGMII

原厂 UBoot 启动时,只能使用一个 ubi 分区存放固件,固件总体积(含 kernel+rootfs+rootfs_data)将限制在 36M 内,但仍然可以使用 plugin 分区(36M)存放其它数据。因此,原厂的 UBoot 只能使用小于 36M 的固件,较大的固件超过了存放 ubi 的分区就不能使用。

分区信息

  • Factory 为无线 EEPROM 分区
  • fip 为 uboot 分区
  • ubi 为固件分区,36M,ubi 格式
  • firmware-1 为固件分区,36M,ubi 格式
  • plugin 为原厂插件分区,36M,ubi 格式
  • factory 为原厂固件信息分区,保存有机器编号,MAC 地址等信息

开启 telnet

  1. 拆机。
    用卡片撬动,可以无损开机。
    从底部中间部位插入翘片,需要注意卡扣方向,卡扣的结构为外壳扣在底座里的,使用翘片使底座向外正面外壳向内方向撬动,沿边缘走。
    注意四个角的卡扣。
  2. 找到 UART 串口。
    拆机后找到,主板正面(贴芯片的一面),左上方侧边三个圆孔,线序从上到下一次为 RXD,TXD,GND,分别对应读、写、地。波特率为`115200
  3. 使用串口工具,连接路由器,串口工具的读对应路由器 UART 的写,地对地。不要接错!
  4. 使用串口助手,路由器通电,等待启动,不断按 F和回车键,直到出现以下提示进入 failsafe 模式。
1
2
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
  1. failsafe 下执行以下操作
1
2
3
4
5
6
7
8
9
# 开启uboot控制台菜单
fw_setenv bootmenu_delay 3

# 挂载rootfs并开启telnet
mount_root
sed -i 's/.*local debug=.*/\tlocal debug=1/' /etc/init.d/telnet

# 修改root密码
passwd root
  1. 重启。 reboot
  • Putty 串口操作
    putty 可替代替代 串口助手 ,具体用法如下:
    1. session
      Serical Line:选择设备使用的串口,speed:115200,connection type:serical
    2. Connection-Serical
      Flow control: none 。流控制基本不再使用了
    3. Teminal
      Teminal-Imolcit CR in every IF \ Imolcit LF in every CR 勾选
      Local echo: force on
      Local line editing:force on
    4. Opne 运行即可。

telnet 连接

在 failsafe 模式下打开 telnet 以后,重启路由器,使用 telnet 连接路由器,ip 地址为路由器的后台管理页面地址,密码为在 failsafe 下设置的密码(也就是路由器的𭙃密码)。

windws

  • 开启 telent
    win+R 运行 ctrol-程序-程序和功能-启动和关闭 windows 功能-Telnet 客户端勾选。
    xin+R 运行 cmd,运行 telent 即可

也可使用 termius 等工具。

uboot

基于 bl-mt798x 项目
mt798x uboot

  • CPU : mt798
  • BOARD : 360t7
  • 默认地址 :192.168.1.1
  • 固件分区 108M,原厂固件分区 36M
  • 带有 webui 恢复页面
    UBoot 升级:192.168.1.1/uboot.html
    FirmwareUpdate:192.168.1.1/uboot.html
    可以在 webui 刷 uboot 或者固件。
  • 支持多种 Flash 分区布局切换

刷入 UBoot

  1. 下载该修改版 UBoot:mt798x-uboot-202206-fip.tar.xz,解压缩出 bin 文件。
  2. 将 Uboot bin 文件上传到路由器,并写进 fip。
    使用 telnet 将文件上传到/tmp,直接使用 wegt 下载到/tmp 也可以。上传文件以后,执行 mtd write mt7981_360t7-fip-fixed-parts.bin fip写入 UBoot 文件,刷 UBoot 完成。

刷入固件

  1. 完成 UBoot 写入以后,断电,修改电脑 IP 为 192.168.1.2,子网掩码 255.255.255.0,网关 192.168.1.1,dns 192.168.1.1.按住路由器 RESET 按键,通电,等待 8s 后使用访问 192.168.1.1 进入 uboot 恢复页面。
  2. 选择固件,写入。
  3. 重启完成。

failsafe webui 使用方法

  1. 按住路由器 RESET 键孔后通电,保持 10-15 秒后松开按键,路由器自动进入 failsafe 模式。
  2. uboot 不支持 DHCP,需要电脑网线接路由期 lan 口,配置电脑 ip 为固定 IP 设置 192.168.1.100。
  3. 使用浏览器的 隐身模式 访问路由器 ip 192.168.1.1
  4. 选择固件上传,支持 sysupgrade 和 factory 格式的固件,上传完毕后点击开始刷机。
  5. 固件写入后,路由器会自动撑起,请将电脑 ip 地址重新设置成 DHCP 自动获取。
  6. 要使用 webui 更新 uboot,可以访问 http://<路由ip>/uboot.html ,选择 FIP 格式的 uboot 二进制文件并上传刷如即可。

刷机

openwrt 固件

官方 openwrt

⚠️ 注意: 这里仅限原厂分区即 36M UBoot 使用的,修改版的 Uboot 运行情况没测试。
因为没有 NMBM,所以需要刷机前在 failsafe mode 备份所有 mtd 分区。

需要文件

  • openwrt-23.05.0-mediatek-filogic-qihoo_360t7-bl31-uboot.fip
    ATF uboot 文件,不支持 108M Uboot。

  • openwrt-23.05.0-mediatek-filogic-qihoo_360t7-initramfs-recovery.itb

  • openwrt-23.05.0-mediatek-filogic-qihoo_360t7-preloader.bin
    ATF BL2 文件

  • openwrt-23.05.0-mediatek-filogic-qihoo_360t7-squashfs-sysupgrade.itb

hanwckf 版

hanwckf 编译版

恩山论坛

在 github 上有个一个基于 hanwckf 的编译版,在这里可以找到。
基于修改的 108M 的 Uboot,比较纯净。

潘多拉版

immortaiwrt

openwrt 的文件系统

cat /proc/filesystems 查看当前可读取的文件系统
lsblk 列出可用块设备的信息
openwrt 使用的是 mini_fo 文件系统,可以看作是 squash fs 和 jffs2 的文件系统实现了连接,如果用户读取只读文件,则连到 squash 文件系统个,如果读取可修改文件则连接到 jffs2 上。
squashfs 是把 rom 压缩到一个文件刷进路由器,然后剩下的空间格式化成 jffs2 并且优于 ROM 文件,rom 的只读分区挂载到/rom 下,另一个读写 jffs2 分区挂到/overlay,当两个目录下有同名文件就优先读这个,相当于覆盖了 rom 文件,实际并没有覆盖,这种情况的优点是 rom 压缩率高,可写分区就大一些,其次只要备份/overlay 就可以把 rom 以为的所有文件备份下来,以后可以全部还原不用配置了,格式化/overlay 分区就相当于恢复 Openwrt 出厂设置了。
路由器的 flash 上,内核中常使用的是 MTD 设备驱动。查看 MTD 分配 cat /proc/mtd cat /proc/partitions

flash 分区

1
2
3
4
5
6
7
8
9
10
u-boot: 设备初始化程序和引导程序代码本身
u-boot-enr: 引导程序的配置数据
factory: 路由器芯片的初始化参数,通常挂载到/dev/mtd2
kernel:固件分区,存放系统内核的二进制代码,不存放文件系统
rootfs: 固件分区,完整的系统文件包含只读和读写
rootfs_rom:固件分区,rootfs的只读部分,同时挂载到 `/rom` 和 `/`目录
rootfs_data:固件分区,在rootfs中的读写部分的位置,通常挂载到 `/overlay`目录,再将 `/overlay`透明挂载到`/`目录
art: EEPROM分区,主要保持无线的硬件参数
firmware: 固件分区,完整的固件位置,包含了除 u-boot 和 art 之外的全部内容
rootfs 挂载完成以后,剩余的内存会挂载到`/tmp`目录

文件系统 df -h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- /
|- dev
| |- root # 根文件系统
| |- ubi0_2 # UBI 设备的第二个分区
|
|- tmpfs # 基于内存的临时文件系统
|
|- overlayfs:/overlay # Overlay 文件系统的挂载点,用于系统修改和用户自定义
|
|- ...

---------------------
1. `/dev/root`:这是根文件系统(root filesystem),它通常是只读的。它包含了操作系统的核心组件和基本文件。在启动过程中,它通常被挂载为只读文件系统。

2. `tmpfs`:`tmpfs` 是一种基于内存的临时文件系统。它在内存中创建一个文件系统,用于存储临时数据,例如临时文件、日志文件等。`tmpfs` 是易失性的,意味着在系统重启后,其中存储的数据将丢失。

3. `/dev/ubi0_2`:这表示 UBI(Unsorted Block Images)设备的第二个分区。UBI 是用于处理闪存设备的抽象层,它允许将闪存分区虚拟化为逻辑块设备。`/dev/ubi0_2` 可能是一个可读写的分区,用于存储用户数据或配置。

4. `overlayfs:/overlay`:`overlayfs` 是一种联合文件系统,允许将多个文件系统层叠在一起。`/overlay` 表示一个 overlayfs 文件系统的挂载点,它是用于存储系统修改和用户自定义的文件系统。通常,`/overlay` 是可读写的,并且用于存储用户安装的软件包、配置更改和其他系统修改。

这些文件系统在 OpenWrt 中扮演着不同的角色。其中,根文件系统包含了操作系统的核心组件和基本文件,`tmpfs` 用于临时存储,`/dev/ubi0_2` 可能是存储用户数据的分区,而 `overlayfs:/overlay` 则用于存储系统修改和用户自定义的文件系统。


文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//
├── dev
│ ├── mtdblockX # 存储闪存芯片上的分区
│ ├── mmcblk0pX # SD卡或eMMC存储器的分区
│ └── sdXN # 外部USB存储设备的分区
├── etc # 系统配置文件
├── bin # 可执行文件
├── sbin # 系统可执行文件
├── usr # 用户程序和数据
│ ├── bin # 用户可执行文件
│ ├── sbin # 用户系统可执行文件
│ ├── lib # 库文件
│ ├── lib64 # 64位库文件
│ ├── include # 头文件
│ ├── share # 共享数据
│ └── ...
├── tmp # 临时文件
├── proc # 内核和进程信息
├── sys # 系统相关信息
├── mnt # 挂载点
├── var # 可变数据
├── www # Web服务器根目录
└── ...

openwrt 常用口令

用户名:root
密码:password 或者 空

SSH

  • ssh <usr>@<ip>
    ssh 连接
  • ssh-keygen -R <ip>
    ssh 连接密钥重置
  • cat /proc/mtd
    查找分区的名称。在列出的输出中,可以看到每个分区的名称、起始地址和大小。
  • df -h
    硬盘空间查看
  • du -h
    查看指定文件或目录的磁盘占用
  • ls <dir> -all -h
    查看指定目录下的文件大小
  • fdisk -l
    查看当前磁盘分区情况
    openwrt 是基于 linux 的,linux 一般情况下第一个磁盘的名称通常是 sda,第二个是 sdb 以此类推,而 sda1 就是 sda 磁盘的第一个分区,sda2 就是 sda 磁盘的第二个分区
  • opkg files <package>
    查看指定软件包的安装位置,会列出安装路径下的所有文件
  • opkg info <package>
    显示指定软件包的详细信息

软件源

推荐使用国内软件源,地址自行替换。
地址格式大多为:

  • 域名/releases | snapshots/<版本号>/packages/<cpu架构>/base | luci | packages | routing | telephony | feeds.conf
    • luci: 包含 Luci(openwrt 的 web 图形化界面)的扩展应用程序、插件,如额外的网络设置、vpn 客户端、文件管理等。
    • packages: openwrt 社区维护的软件仓库,包含了大量的额外的软件包,社区的成员可以提交软件包到这个仓库。
    • routing: 路由软件包,提供路由相关功能的软件包。
    • telephony: 电话通信相关的软件包。
    • feeds.conf: 软件源的配置文件。
  • 域名/releases | snapshots/<版本号>/targets/<芯片平台>/<芯片型号> | filogic
    主要是对应平台的固件包,

passwall 的安装及配置

  1. 到 这里 去下载 passwall 文件,对照自己的路由器芯片下载对应的版本。
  2. 低版本的 openwrt 安装缺少 luci-lua-runtime 依赖,需要下载 luci-lua-runtime-fake 单独安装。 这里 还有一些 openwrt 的其他装依赖。
  3. 使用 文件传输 或者 文件助手 ,将 passwall 文件,luci-lua-runtime 依赖上传至 openwrt 的 /tmp 路径下,比如 /tmp/upload/路径下。
  4. 使用 ssh 连接 openwrt,进入/tmp/upload/目录,解压压缩文件到当前目录。
  5. 在当前目录执行安装命令opkg install *.ipk --force-reinstall
  6. 进入 passwall 检查各组件安装情况及版本型号。sing-box 可能显示无,没关系,点击检查更新就行了。
  7. 手工更新各组件的方法,比如 sing-box:
  • 找到发行包,当然要确保的你 openwrt 版本及芯片支持,下载文件包sing-box-1.7.0-alpha.2-darwin-arm64.tar.gz。
  • 上传 sing-box-1.7.0-alpha.2-darwin-arm64.tar.gz 到 openwrt 的/tmp/upload/文件夹并解压tar -zxvf sing-box-1.7.0-alpha.2-darwin-arm64.tar.gz修改解压后文件名字为 sing-box。
    <
    为什么要这么做,没有执行自动检查更新?
    当然是因为 /overlay 空间不够,自动解压不成功了!!
    / >
  • 将文件覆盖到 passwall 的 singbox 文件位置,默认/usr/bin/sing-box,执行mv sing-box /usr/bin/sing-box
  • 安装完成。
  1. 不必要的组件可以删除,也可以在第 5 步时直接忽略安装。(空间足够的话都安装吧,没必要精简,指不定哪就用到了不是)

小内存运行 passwall 的 Tips

  • 组件更新问题参考上面手动安装步骤。
  • 关于 geoip.dat 和 geosite.dat 文件的处理。

    调整位置路径为/tmp/share/v2ray,但是/tmp 目录不稳妥每次重启、断电都会抹掉,可以设置一个开机脚本实现自动下载。
    脚本及设置方法如下:
    具体的是设置贴在这里,等我从air上复制过来!

这是使用的是增强版的 geoip.dat 和 geosite.dat,来自 这里 。

<
这里就要吐槽一下,v2ray 使用的.dat 文件,sing-box 使用的是.db 文件,还不通用,通用的话直接调用同同一个文件多好。
/>

  • 当然如果你愿意,所有的组件文件都可以这么干。

IPV6

设置参考

我是自动配置的 ipv6 发现极其不稳定,网络里的设备总有几台偶尔抽风,影响体验,就在 openwrt 的 DHCP\lan\wan 里全部禁用了 ipv6,把 wan6 也删除了。毕竟 ipv6 目前不是刚需,没折腾。

 上一篇: win与mac之间的文件共享 

下一篇: Ios 捷径 (ShortCuts)笔记 

© 2024  by  Wangqifei