![](http://image.lceda.cn/pullimage/xZmnAE2b2B46r5yAGJP5W0B5RV1jS3YdyIHugXEl.jpeg)
MT7628超低成本路由器
简介
MT7628超低成本路由器
简介:MT7628超低成本路由器开源协议
:GPL 3.0
描述
写在开头
本项目基于亿佰特E103-W20 MT7628模组,实现了一款超低成本路由器。MT7628是一款高性价比的路由器芯片,推出时间较长,资料比较丰富,可以用来当作学习Openwrt的入门芯片,也可以用于物联网网关,实现设备到云端的联网。
参考项目
感谢大佬的项目,致谢大佬:https://oshwhub.com/toolchen/mini-router
更新日志
2023-11-19 首次发布
2023-11-22 增加5.10内核固件,增强WIFI稳定性,推荐更新
基本特性
- 五个10M/100M以太网口,内部集成交换机(其中一个默认用于WAN口,四个默认用于WAN口)
- 2.4G Wifi 2T2R
- 580Mhz MIPS内核处理器
- USB 5V供电
- USB 2.0接口,可用于外挂网口或USB存储器
- 32MB Flash
- 128M DDR2 RAM
- 2个TTL串口,其中一个用于Linux日志打印
- 1个I2C接口
芯片方案
- 主芯片模组:E103-W20 MT7628模组
- SY8089A1AAC 5V TO 3V3 DCDC
- SY6280 USB 2A限流保护芯片
- HR911105A 网口内置网络变压器
OpenWRT固件的烧录
MTK Breed,不死Uboot的烧录
由于模组本身自带的uboot比较难用,而且无法查看烧录进度,为了便于固件开发,我们选择烧录大神开发的不死uboot
刷入前首先需要进入自带的uboot,下面说明刷写流程:
首先将设备LAN口接入网线,另外一端接入电脑,确保连接正常,然后修改网口地址与uboot更新地址保持一致(如下图)。
设置完成后,按住PERST_N按键,将设备连入USB供电,等待几秒,等UBOOT启动后打开浏览器访问192.168.1.111,正常情况下可以看到已经进入了自带的UBOOT更新界面:
按照上方图片所示,选择breed固件(附件中breed-mt7688-reset38.bin给出),然后点击Update U-Boot,等待更新完成,更新过程如下图所示:
烧写完成后,系统自动重启,由于这边没有进度显示,建议多等待几秒钟,防止刷坏UBOOT!!
不死Uboot界面的进入,选项修改
等待上方烧录完成后,我们重新断开板子的电源,将网口IP改成自动获取
接着按住PERST_N(与刚刚按键一致)按键,将板子连入电源,如果正常进入Uboot,可以发现网口灯会闪几下,同时以太网会分配到IP。
在浏览器中输入192.168.1.1,进入不死Uboot界面,界面参数应显示正常
(可选)点击固件备份,对当前的系统分区进行备份(系统分区内有原厂EEPROM,这部分普通用户是拿不到的,只有厂商开发的时候才能拿到,出厂的时候烧录进去),后续如果刷坏需要使用编程器救砖。
点击固件更新,刷入新版OpenWRT固件,如图所示(可用附件中的测试固件):
更新过程如下图所示:
更新完成后,系统自动重启,如果使用测试固件,系统启动后能搜索到名为OpenWRT的WIFI热点,连入后输入密码password即可进入后台
测试固件说明
基于LEDE最新源码编译,包含了基本插件以及Flow Offloading提高转发效率,适合养老使用。
OpenWRT固件的开发
基本环境的搭建
本文将使用WSL(Windows Subsystem for Linux)来实现OpenWRT固件的开发以及编译,需要先开启WSL(具体过程可参考百度资料),开启后在应用商店中下载Ubuntu20,下载完成后启动完成初始密码等配置。
关闭Windows路径包含
该配置会导致源码编译失败,需要关闭
编辑/etc/wsl.conf,增加以下内容
[interop]
appendWindowsPath = false
接着在Windows终端下输入wsl --shutdown,重启wsl环境。
重启后输入以下命令,安装基础的编译环境:
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev python3-setuptools
源码源码的下载
由于官方OpenWRT的MT7628 WIFI使用的是开源驱动,无法解锁更高的功率,同时官方最新版不支持5.4内核,最新内核会导致WIFI频繁掉线,所以选用lean大佬的lede源码,本项目基本兼容openwrt,可以完全替代开发。
源码GITHUB地址:https://github.com/coolsnowwolf/lede
输入下列命令,下载lede仓库,同时下载附带的库,然后进入配置界面:
git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
选择要开发的目标
参考下图
Luci插件配置
Luci用于在网页上配置OpenWRT的相关信息,lede提供的一系列插件也是以网页的形式提供,我们可以开启需要的插件,如下图所示:
测试固件中开启的Application
<*> luci-app-arpbind............................................. ARP Binding
<*> luci-app-autoreboot.................... LuCI support for Scheduled Reboot
<*> luci-app-filetransfer........................... LuCI page for IPK upload
-*- luci-app-firewall................ Firewall and Portforwarding application
<*> luci-app-ttyd...................................... LuCI support for ttyd
<*> luci-app-turboacc............ LuCI support for Flow Offload / Shortcut-FE
[*] Include Flow Offload
[*] Include BBR CCA
[*] Include Pdnsd
<*> luci-app-upnp................. Universal Plug & Play configuration module
<*> luci-app-vnstat.................................. LuCI Support for VnStat
内核模块的配置
在第一个界面选择Kernel modules,进入内核模块配置界面
USB存储设备的配置
Block Devices --->
-*- kmod-scsi-core....................................... SCSI device support
Filesystems --->
<*> kmod-fs-ext4..................................... EXT4 filesystem support
<*> kmod-fs-ntfs3.......... NTFS filesystem read & write (new driver) support
<*> kmod-fs-vfat..................................... VFAT filesystem support
USB Support --->
<*> kmod-usb2................................... Support for USB2 controllers
-*- kmod-usb-storage..................................... USB Storage support
<*> kmod-usb-storage-extras.................... Extra drivers for usb-storage
<*> kmod-usb-storage-uas.................... USB Attached SCSI (UASP) support
开启USB网卡
USB Support --->
-*- kmod-usb-net............... Kernel modules for USB-to-Ethernet convertors
<*> kmod-usb-net-asix...... Kernel module for USB-to-Ethernet Asix convertors
<*> kmod-usb-net-asix-ax88179
<*> kmod-usb-net-rndis......................... Support for RNDIS connections
OCHI
USB Support --->
<*> kmod-usb-ohci............................... Support for OHCI controllers
按钮
Input modules --->
<*> kmod-input-gpio-keys.................................... GPIO key support
相关工具的配置
Utilities --->
<*> usbutils................................... USB devices listing utilities
Network --->
<*> iperf3........................ Internet Protocol bandwidth measuring tool
内核版本的配置
降级内核到5.4
vim target/linux/ramips/Makefile
将以下两个选项配置为5.4,参考下列内容:
KERNEL_PATCHVER:=5.4
KERNEL_TESTING_PATCHVER:=5.4
设备树的配置
我们可以在原版配置的基础上,按照需求配置IO映射,相关的节点可以参考mt7628an.dtsi文件,我们需要修改的是mt7628an_hilink_hlk-7628n.dts(建议用附件中的文件),位于lede\target\linux\ramips\dts,可以参考下方我修改好的文件:
编译
输入下列命令开始编译:
make download -j8
make V=s -j16
编译完成的文件存放在targets\ramips\mt76x8中,sysupgrade.bin结尾的文件就是要烧录的文件
展示图片
设计图
![](/_next/static/media/empty2.28562477.png)
BOM
![](/_next/static/media/empty1.f115c8c9.png)
![](/_next/static/media/clone.4d8f0c21.png)
评论