1-openwrt-one(MT7981B+MT7976C)项目工程搭建

为了庆祝openwrt项目20周年,官方和香蕉派合作推出openwrt-one开发板,本专栏将从零开始解剖整个开发过程,定制自己的MT7981B路由器平台。

openwrt-one关键参数如下:

  • 联发科 MT7981B (Filogic 820) SoC主控芯片
  • 联发科MT7976C 双频 WiFI 6 芯片组 (2×2 2.4 GHz + 3×3/2×2 + zero-wait DFS 5Ghz)
  • 1GB DDR4 内存
  • 1 x 2.5GbE 网口和 1 x 千兆网口
  • 256 MB SPI NAND 和 16 MB SPI NOR flash 保证板载系统的不可破法性。
  • M.2 2242/2230 接口支持 NVMe SSD (PCIe gen 2 x1)
  • RTC 实时时钟
  • PoE 网络供电支持(可选)
  • MikroBUS 扩展模块插座
1、官方资料查看

在购买到Banana Pi OpenWrtOne 路由器开发板后,可以先大概浏览官方的一些资料文档,路径如下:

硬件参数介绍:https://docs.banana-pi.org/zh/OpenWRT-One/BananaPi_OpenWRT-One

原理图与PCB:https://one.openwrt.org/hardware/

官方介绍:https://openwrt.org/toh/openwrt/one

2、编译环境搭建

openwrt的代码位于https://github.com/openwrt/openwrt,官方推荐使用openwrt-24.10的分支版本。

在这里插入图片描述

新版本的openwrt在编译的时候对于gcc或者python的版本也有要求,所以我们使用的ubuntu版本也有要求,否则编译的时候会出现如下错误:

Build dependency: Please install the GNU C Compiler (gcc) 8 or later
Build dependency: Please reinstall the GNU C Compiler (8 or later) - it appears to be broken
Build dependency: Please install the GNU C++ Compiler (g++) 8 or later
Build dependency: Please reinstall the GNU C++ Compiler (8 or later) - it appears to be broken
Build dependency: Please install Python >= 3.7
Build dependency: Please install Python >= 3.7

所以这边建议直接使用较新版本的ubuntu,比如ubuntu24.04或者ubuntu24.10之类的,官方iso路径如下:https://ubuntu.com/download/desktop

增对虚拟机的安装这边不介绍,自己解决。

安装完ubunut后,先把一直工具包安装好,大概如下:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim git gcc tig g++ binutils patch bzip2 flex bison make autoconf libtool unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev gawk zlib1g xz-utils lrzsz libssl-dev swig curl jq -y
3、代码编译

代码克隆

git clone https://github.com/openwrt/openwrt.git

切换到openwrt-24.10分支

git checkout openwrt-24.10

更新安装feed包

./scripts/feeds update -a
./scripts/feeds install -a

选择编译平台

make menuconfig

选择如下:

Target System (MediaTek ARM)  --->
Subtarget (Filogic 8x0 (MT798x))  --->
Target Profile (OpenWrt One)  ---> 

在这里插入图片描述
把web配置也开启

LuCI  --->
   1. Collections  --->
       <*> luci. LuCI interface with Uhttpd as Webserver (default)

开始编译

make -j4 V=99

第一次编译会比较久,需要下载dl包,编译交叉工具链等,保持网络畅通,慢慢等。

编译完成后,在openwrt\bin\targets\mediatek\filogic路径下,生产如下固件文件

config.buildinfo
openwrt-mediatek-filogic-openwrt_one-snand-bl31-uboot.fip
feeds.buildinfo
openwrt-mediatek-filogic-openwrt_one-snand-factory.bin
openwrt-mediatek-filogic-openwrt_one-factory.ubi
openwrt-mediatek-filogic-openwrt_one-snand-preloader.bin
openwrt-mediatek-filogic-openwrt_one-initramfs.itb
openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb
openwrt-mediatek-filogic-openwrt_one.manifest            
packages
openwrt-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip
profiles.json
openwrt-mediatek-filogic-openwrt_one-nor-factory.bin     
sha256sums
openwrt-mediatek-filogic-openwrt_one-nor-preloader.bin
version.buildinfo

默认spi nor flash和spi nand flash的固件都会编译,实际使用时介绍每个文件。

<think>好的,用户的问题是关于如何使用TFTP命令下载特定版本的OpenWRT固件。首先,我需要确认用户的需求。他们提到的是“openwrt-ramips-mt76x8-alfa-network_awusfree1-squashfs”这个固件文件,并且想通过TFTP下载。首先,我需要回忆TFTP的基本用法,以及OpenWRT固件下载的一般步骤。 首先,TFTP(Trivial File Transfer Protocol)是一个简单的文件传输协议,通常用于局域网内传输小文件,尤其是在没有复杂验证的情况下。用户可能需要通过TFTP将固件上传到路由器进行刷机。不过,通常OpenWRT刷机可能使用scp或者web界面,但TFTP在某些情况下也是可行的,特别是当设备支持从TFTP服务器启动恢复模式时。 接下来,用户需要下载特定版本的固件。OpenWRT的固件命名通常包含硬件架构、型号和版本信息。用户提供的文件名“openwrt-ramips-mt76x8-alfa-network_awusfree1-squashfs”看起来像是特定设备的固件,可能属于Alfa Network的AWUSFREE1型号,基于ramips架构的mt76x8芯片组。用户可能需要确认这个固件的正确性,确保与设备兼容。 接下来,使用TFTP下载的过程通常涉及设置TFTP服务器,将固件文件放在服务器的指定目录,然后配置客户端(如路由器)从服务器获取文件。不过,用户的问题是如何下载固件到本地,可能是指从本地计算机通过TFTP上传到设备,或者从远程服务器下载到本地。需要进一步明确,但根据问题描述,可能是指将固件从本地计算机通过TFTP传输到设备。 可能步骤包括: 1. 在本地计算机上搭建TFTP服务器,确保固件文件存放在正确目录。 2. 配置设备的网络设置,使其能连接到TFTP服务器。 3. 进入设备的恢复模式或启动加载程序,执行TFTP命令下载固件。 但用户的问题可能更偏向于如何从互联网下载特定版本的固件到本地,然后通过TFTP上传到设备。因此,可能需要先指导用户如何从OpenWRT官网或镜像站点下载正确的固件文件,然后设置TFTP服务器进行传输。 需要注意的是,不同设备的TFTP刷机方法可能不同,可能需要特定的步骤,比如在设备启动时按下某个键进入恢复模式,设置计算机的IP地址与设备在同一子网,配置TFTP服务器参数,然后触发设备的TFTP客户端下载固件。 另外,用户提到的引用中有一个文件名“openwrt-ramips-mt7621-mt7621-squashfs-sysupgrade.bin”,但用户需要的是mt76x8的型号,可能存在混淆,需要确认设备型号和固件的匹配性,避免刷错导致设备变砖。 总结步骤: 1. 下载正确的固件文件到本地计算机。 2. 设置本地计算机为TFTP服务器,配置正确的目录和权限。 3. 连接设备到计算机,确保网络连通。 4. 进入设备的TFTP恢复模式。 5. 执行TFTP命令上传固件到设备。 6. 等待刷机完成,重启设备。 需要详细说明每一步的具体操作,包括如何下载固件、安装和配置TFTP服务器(例如使用tftp-hpa或atftpd),设置静态IP,以及设备端的操作步骤。 可能遇到的问题包括:固件版本不匹配、TFTP服务器配置错误、网络连接问题、设备无法进入恢复模式等,需要给出相应的解决建议或注意事项,比如备份原固件、确认MD5校验等。</think>### 如何使用 TFTP 下载 OpenWRT 固件文件 #### 步骤 1:下载正确的固件文件 1. 访问 OpenWRT 官方固件仓库: - 官方地址:<https://downloads.openwrt.org> - 根据设备型号选择路径。例如,`openwrt-ramips-mt76x8-alfa-network_awusfree1-squashfs` 的固件可能位于: $$ \text{https://downloads.openwrt.org/releases/[版本号]/targets/ramips/mt76x8/} $$ - 确保文件名包含 `squashfs-sysupgrade.bin` 或 `squashfs-factory.bin`,表示刷机文件[^1]。 2. **校验文件完整性**: - 下载后对比文件的 SHA256 或 MD5 校验值,避免损坏。 --- #### 步骤 2:配置 TFTP 服务器 1. **安装 TFTP 服务器**(以 Ubuntu 为例): ```bash sudo apt install tftpd-hpa ``` - 配置文件路径:`/etc/default/tftpd-hpa`,需指定固件存放目录(如 `/var/lib/tftpboot`)。 2. **放置固件文件**: ```bash sudo cp openwrt-ramips-mt76x8-alfa-network_awusfree1-squashfs-sysupgrade.bin /var/lib/tftpboot/ sudo chmod 666 /var/lib/tftpboot/*.bin ``` 3. **重启 TFTP 服务**: ```bash sudo systemctl restart tftpd-hpa ``` --- #### 步骤 3:设备端操作 1. **连接设备与计算机**: - 通过网线直连,并设置计算机的 IP 为 `192.168.1.100`(子网掩码 `255.255.255.0`)。 2. **进入设备的 TFTP 恢复模式**: - 断电后长按复位键(或特定组合键)再通电,进入刷机模式。不同设备操作可能不同,需参考手册。 3. **通过 TFTP 上传固件**: - 设备启动时会自动从 TFTP 服务器获取文件。若需手动触发,可通过设备的 U-Boot 命令行输入: ``` tftpboot 0x80060000 openwrt-ramips-mt76x8-alfa-network_awusfree1-squashfs-sysupgrade.bin erase 0x9f050000 +0x200000 cp.b 0x80060000 0x9f050000 0x200000 reset ``` --- #### 注意事项 1. **网络配置**:确保设备与 TFTP 服务器在同一子网。 2. **固件兼容性**:刷错固件可能导致设备变砖,务必验证文件名与设备型号匹配。 3. **备份配置**:刷机前备份原系统配置(如有)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Creator_Ly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值