admin 管理员组文章数量: 887021
嵌入式系统之-小米路由器3G v1
相关汇总:嵌入式系统系列目录
第一篇 嵌入式系统之-小米路由器3G V1
第二篇 …
未完待续,欢迎收藏关注。
目录
- 嵌入式系统之-小米路由器3G v1
- 前言
- 一、开箱和拆机
- 二、硬件配置
- 三、开启ssh
- 3.1 升级到开发版ROM
- 3.1.1 下载ROM
- a. web管理端手动更新固件
- b. U盘更新固件
- 3.2 刷入ssh解锁包
- 3.3 修改root密码及开启密钥登录
- 四、重写Bootloader
- 4.1 安装breed BootLoader
- 五、刷入OpenWrt系统
- 六、配置OpenWrt系统
- 6.1 配置opkg镜像
- 6.2 配置luci管理界面语言
- 6.2 配置ddns服务
- 6.2.1 安装ddns脚本包和luci界面包
- 6.2.2 安装ddns-scripts_aliyun_1.0.0-1_all.ipk
- 6.2.3 启用阿里云DDNS解析
- 6.3 配置frp服务
- 七、升级OpenWrt系统
- 总结
前言
在2016年末入手了1台小米路由器3(至今健在,还能正常使用),入手之后发现可玩性比以前的传统路由器高了非常多,然后就开始了路由器折腾之路,一发不可收拾。19年又淘了一个二手的小米路由器3G V1,也进行了一通折腾,拖拖拉拉现在才来写这篇文章记录一下折腾的过程。主要包括解锁ssh,写入breed Bootloader,刷入OpenWrt系统,升级OpenWrt,进行相关配置等等。
提示:本篇文章算是处女作,下面的代码和方案仅供参考,搞机请注意安全。
一、开箱和拆机
这部分略过,这里放几个其他大神的开箱图和拆机图,有兴趣的可以去翻翻。
- 小米路由器3G开箱评测 有一些基本的测试
- 低调的新品,小米路由器3g开箱及【全网首拆】以及翻车撒花
- 拆个小米路由3G(R3G) 需要登录才能看大图
总体上外观中规中矩,内部设计也算对得起它的价格,家庭使用基本够用。
二、硬件配置
这里简单罗列一些主要部件的配置:
- SoC:MediaTek MT7621AT, 880MHz, 双核
- Flash:128MB
- RAM:256MB
- 以太网口:千兆口 x 3(1个WAN口与2个LAN口)
- WLAN芯片:MediaTek MT7603EN, MediaTek MT7612EN
- 2.4G:b/g/n
- 5G:a/n/ac
- USB:3.0 x 1
硬件详情可查阅OpenWrt上的toh mir3g详情
硬件技术数据可查阅OpenWrt上的techdata mir3g技术规格
三、开启ssh
3.1 升级到开发版ROM
3.1.1 下载ROM
官方ROM下载首页:小米路由器ROM
小米路由器3G 开发版ROM 版本2.25.124(2018年10月30日更新)
下载后将ROM文件存放到文件系统格式为FAT或FAT32的U盘中。按照以下两种方式之一,将路由器升级到开发版。
a. web管理端手动更新固件
插上U盘,路由器上电启动后,使用电脑连接到路由器,使用管理密码(第一次上电初始化的时候设置的,如果忘记,请重置路由器),进入 常用设置->系统状态:升级检测 界面,选择系统升级,然后选择ROM进行手动升级,等重启完成后即可。
b. U盘更新固件
- 将3.1.1步骤中下载好的ROM包放到U盘的根目录下,并命名为“miwifi.bin”。
- 断开路由器电源,插入U盘,用细长工具按住reset,接通电源,待路由器指示灯变为黄灯闪烁时,松开reset。
- 大约3-5分钟后,指示灯变成黄色常亮状态时刷机已经完成正在重启,稍等片刻路由器指示灯变蓝就可以正常使用了。
如果在刷机过程中,指示灯黄灯闪烁几秒后变为黄灯常亮状态,说明此次U盘刷机过程失败,请检查以上的刷机过程并重新进行刷机操作。附指示灯说明:
- 蓝灯:正常运行(长亮)
- 黄灯:系统升级中(闪烁),系统启动中(长亮)
- 红灯:安全模式(闪烁),系统故障(长亮)
3.2 刷入ssh解锁包
刷完开发版ROM后,先确定路由器是否可以正常工作,然后按下列步骤开启SSH管理功能,这样我们就能像操作Linux一样操作路由器了。
- 先用小米账户绑定路由器(通过手机客户端“小米WiFi”操作),如果已经绑定则跳过。
- 到https://d.miwifi/rom/ssh下载SSH工具包,同时记下你的root密码。
- 将下载的工具包bin文件复制到U盘(FAT或FAT32格式)根目录下,保证文件名为miwifi_ssh.bin。
- 断开小米路由器的电源,将U盘插入USB接口。
- 按住reset按钮之后重新接入电源,指示灯变为黄色闪烁状态即可松开reset键。
- 等待3-5秒后安装完成之后,小米路由器会自动重启,指示灯变为蓝色即正常运行,之后您就可以尽情折腾啦 😃 。
ssh root@192.168.31.1
即可登录到路由器上。密码是前面下载SSH包时记下的密码,如果不出意外,将顺利登录路由器,显示“Welcome to XiaoQiang”和“ARE YOU OK”,这时我们就可以给路由器安装想要的软件了。
3.3 修改root密码及开启密钥登录
-
以root用户登录后,在命令行输入
passwd
,按照提示即可重设root账户的密码,密码可以为空。一定要牢记。否则会很麻烦。 -
用密钥登录,需要先生成密钥对,可以使用
ssh-keygen
或其他工具软件。密钥对生成后,将其导入到/etc/dropbear/authorized_keys
文件中。具体操作可以参考如下代码:scp ./id_rsa.pub root@192.168.31.1:/home/ #将公钥复制到路由器的/home目录 ssh root@192.168.31.1 #ssh登录路由器 cat /home/id_rsa.pub >>/etc/dropbear/authorized_keys #将公钥追加写入到authorized_keys文件 /etc/init.d/dropbear restart
到这里路由器原生系统相关的操作就告一段落了,下一步就要开始激动人心的时刻了。😃
四、重写Bootloader
路由器原生系统使用U-boot作为BootLoader,U-boot是德国大神弄的一个非常强大的BootLoader,在不少嵌入式系统中都有应用。但是为了发扬生命不息,折腾不止的精神,本文使用hackpascal大神的breed作为Bootloader,具体操作过程如下。目前也有很多其他的BootLoader,如opboot等,各有其优缺点,在此不一一评述。
4.1 安装breed BootLoader
喝水不忘挖井人,在此先膜拜一下hackpascal大神。相关连接:
- 在恩山无线论坛的主页:https://www.right/forum/space-uid-200302.html
- 个人主页:https://www.hackpascal/
- 恩山论坛上Breed开发blog:https://www.right/forum/forum.php?mod=viewthread&tid=161906
- Breed BootLoader官方下载页:https://breed.hackpascal/
下面开始我们的正菜。
- 从Breed BootLoader官方下载页下载breed固件包,一个bin文件,小米路由器3G v1对应的固件下载地址:https://breed.hackpascal/breed-mt7621-xiaomi-r3g.bin
- 然后将文件重命名为breed.bin后,上传到小米路由器,可以使用U盘或者使用SCP上传,上传到/tmp目录下。
- ssh登录到小米路由器,使用
cat /proc/mtd
查看系统的固件和分区布局,然后开始将breed写入到BootLoader区mtd -r write /tmp/breed.bin Bootloader
- 刷入后,机器会自动重新启动,默认会进入原来的小米路由器固件。
- 如果按住reset键开机,等到路由指示灯闪烁时,松开reset键,然后浏览器中输入192.168.1.1即可进入breed web恢复控制台。
- 进入breed web恢复控制台,备份原有系统的所有信息。
- 重启路由器,回到原来的小米路由器固件,然后ssh登陆准备刷入openwrt。
五、刷入OpenWrt系统
目前OpenWrt中已经上线了小米路由器3G v1的稳定版(release),点这里。
如果喜欢尝鲜可以试试开发版(snapshot),也是点这里。
在这里我们刷入稳定版,具体操作过程如下:
-
下载稳定版的固件包 注意版本
openwrt-19.07.4-ramips-mt7621-xiaomi_mir3g-squashfs-kernel1.bin
openwrt-19.07.4-ramips-mt7621-xiaomi_mir3g-squashfs-rootfs0.bin
下载完成后,使用scp或者U盘,将这两个文件复制到路由器的/tmp
目录。 -
将固件写入系统,ssh登录到小米路由器
cd /tmp mtd write openwrt-19.07.4-ramips-mt7621-xiaomi_mir3g-squashfs-kernel1.bin kernel0 mtd write openwrt-19.07.4-ramips-mt7621-xiaomi_mir3g-squashfs-kernel1.bin kernel1 mtd write openwrt-19.07.4-ramips-mt7621-xiaomi_mir3g-squashfs-rootfs0.bin rootfs0 reboot
-
重新启动后,ssh登录路由器,按照前面所述重新设置root密码。
至此,openwrt系统安装完毕。
六、配置OpenWrt系统
6.1 配置opkg镜像
镜像由清华大学开源软件镜像站管理。
镜像首页:OpenWrt OPKG Mirror
镜像使用帮助:镜像配置帮助
- 手工替换
登录到路由器,并编辑 /etc/opkg/distfeeds.conf 文件,将其中的downloads.openwrt 替换为 mirrors.tuna.tsinghua.edu/openwrt 即可。 - 自动替换
执行如下命令自动替换sed -i 's_downloads.openwrt_mirrors.tuna.tsinghua.edu/openwrt_' /etc/opkg/distfeeds.conf opkg update
6.2 配置luci管理界面语言
进入系统->系统:语言和界面
,选择中文,如果选择中文后界面依然为英文,则需要手动安装中文语言包。
-
命令行安装,ssh登录到路由器
opkg install luci-i18n-base-zh-cn
-
luci web界面安装
进入系统-软件
,首先更新软件列表,然后在filter中输入luci-i18n-base-zh-cn
,然后在出来的结果中,点击安装
即可。
6.2 配置ddns服务
6.2.1 安装ddns脚本包和luci界面包
opkg install ddns-scripts luci-app-ddns luci-i18n-ddns-zh-cn
6.2.2 安装ddns-scripts_aliyun_1.0.0-1_all.ipk
众所周知,OpenWrt自带的DDNS并不支持阿里云的动态DNS解析服务。这里使用sensel大神做的一个脚本来实现阿里云DDNS解析。
项目介绍:
论坛主页:适用于OpenWRT/LEDE自带DDNS功能的阿里云脚本,完美嵌入
Github主页:https://github/sensec/ddns-scripts_aliyun
从github下载ddns-scripts_aliyun_1.0.0-1_all.ipk包,然后执行 opkg install ddns-scripts_aliyun_1.0.0-1_all.ipk
即可安装成功。
6.2.3 启用阿里云DDNS解析
- 第一步:准备好阿里云accesskey
- 第二步:在
服务->动态DNS
界面进行详细配置。注意查询主机名
字段需要填写你要设置的二级域名,如blog.baidu
;如果需要将顶级域名进行解析则直接填写顶级域名,如baidu
。域名
字段填写需要DDNS解析到的二级域名,如前述的blog.baidu
;如果是顶级域名则写成@baidu
这种形式 - 第三步:
使用HTTPS
可以勾选或者不勾选,不影响结果。CA 证书路径
字段可以为空。 - 第四步:切换到高级设置标签,根据路由器是否配置了wan接口,选择使用相应的方式获取路由器公网IP地址来源。本例中,路由器位于内网中,切未配置wan口,所以需要选择用URL方式获取公网IP。默认提供了一个
用于监测的URL
,可以直接使用,如果不用这个,也可以使用其他的,比如:http://ddns.oray/checkip
或者http://www.3322/dyndns/getip
等等。另外DNS服务器
字段建议填一个靠谱的。
配置完成后,保存并应用,回到 服务->动态DNS
界面,启动即可。另外检查一下 系统->启动项
里面是否有ddns,处于启用并启动状态即可。
参考链接:
https://www.sgtfz/2020/07/2651.html
http://blog.zivers/post/2338.html
至此相关的配置告一段落,更多玩法自己去慢慢发现吧。
6.3 配置frp服务
在我之前的一篇博客中对frp进行了一些基本的介绍,frp服务配置及应用。
这里强调一点关于SoC架构和CPU类型方面的暗坑。根据以下指令获取CPU及系统信息:
cat /proc/cpuinfo
uname -a
对应的输出(截取)
root@OpenWrt:~#cat /proc/cpuinfo
system type : MediaTek MT7621 ver:1 eco:3
machine : Xiaomi Mi Router 3G
processor : 0
cpu model : MIPS 1004Kc V2.15
BogoMIPS : 584.90
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa : mips1 mips2 mips32r1 mips32r2
ASEs implemented : mips16 dsp mt
Options implemented : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets : 1
kscratch registers : 0
package : 0
core : 0
VPE : 0
VCED exceptions : not available
VCEI exceptions : not available
root@OpenWrt:~#uname -a
Linux OpenWrt 4.14.195 #0 SMP Sun Sep 6 16:19:39 2020 mips GNU/Linux
以上信息中所看到的与cpu相关的描述都是mips字眼,但均无法提供CPU位数,大小端格式等准确有效的信息。
实际上小米路由器3G V1 使用的CPU是联发科的MT7621AT,属于32位 mips小端little endian架构。
同样小米路由器3 使用的CPU为联发科的MT7620A,也属于32位 mips小端little endian架构。
故应选择上应选择 frp_VERSION_linux_mipsle.tar.gz 程序包。
具体安装,配置,应用按照本节开头的文章操作即可。这里不再赘述。
开机启动frp服务,可以在 系统->启动项-本地启动脚本
界面设置/etc/rc.local 中的启动脚本,也可以直接编辑该文件。
#启动frpc
/root/frp_0.34.1_linux_mipsle/frps -c /root/frp_0.34.1_linux_mipsle/frps.ini >/dev/null 2>&1
exit 0
七、升级OpenWrt系统
从OpenWrt下载sysupgrade文件,点这里。 注意版本
下载后,进入系统->备份/升级: 刷写新的固件
,然后点击升级即可。
总结
以上。本文会偶尔更新。
版权声明:本文标题:嵌入式系统之-小米路由器3G v1 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1715816076h652713.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论