本帖最后由 liyh97 于 2020-4-22 16:55 编辑
第一次在恩山发帖,如果说的不对,还请指正,谢谢各位大神。
这篇帖子是教大家如何自己去制作路由器的固件,而不用在网上苦苦寻找或者求大神,有时候即使能找到,可能固件已经很久了,像新主题,$ $之类的都没有集成进去,自己去编译固件的话,就可以轻松的在固件中增加自己想要的功能。
教程有一定的操作难度,需要有较强的动手能力,也需要有一点英语基础,我尽可能讲通俗易懂点。
今天30块拿下一台二手小米路由mini,挂卡成功,想和大家分享挂卡的方法,这样就可以自己制作路由器固件了,理论上适合MT7620芯片,且机器有usb接口的大多数路由器。
挂卡的最基本思路是,openwrt有相应usb无线网卡的驱动,可以完美地让挂载的网卡正常工作,usb网卡设为client(客户端)用于连接上一级路由,路由器自身的网卡设为master,用来连接自己的电脑,手机等设备。
这里以常见的雷凌RT3072网卡为例,教大家如何用小米mini挂卡。
先上图,二手小米路由mini,后面的usb网卡是拓实N815
前期准备,一台电脑,且电脑安装了linux系统(虚拟机也行),推荐用ubuntu16.4以上的系统
首先下载openwrt的源码,官方的或者lean大神的都可以,这里是lean大神源码的连接https://github.com/coolsnowwolf/lede。注意,由于一些总所周知的原因,在国内直接下载源码以及编译过程的下载都是非常慢的,因此必须在下载和编译前准备好 T,且下载和编译全过程保持 T 的连接,否则必定会出现各种稀奇古怪的状况,以及令人抓狂的下载速度
-------------------------------------------------------------------一条分割线---------------------------------------------------------------------------------------
抄一下lean大神的原话:
编译命令如下:
首先装好 Ubuntu 64bit,推荐 Ubuntu 18 LTS x64
命令行输入 sudo apt-get update ,然后输入 sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf
使用 git clone https://github.com/coolsnowwolf/lede 命令下载好源代码,然后 cd lede 进入目录
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j8 download V=s 下载dl库(国内请尽量全局低调上网)
输入 make -j1 V=s (-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译你要的固件了。
本套代码保证肯定可以编译成功。里面包括了 R20 所有源代码,包括 IPK 的。
-------------------------------------------------------------------一条分割线---------------------------------------------------------------------------------------
下面是详细步骤
按ctrl+alt+t打开终端,先输入sudo apt-get update,然后按回车进行更新。
然后输入sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf,按回车,安装所需要的依赖
完成前两步后,后续需要全程 开 T 子,否则下载会非常慢,而且很容易出现错误
在终端输入git clone https://github.com/coolsnowwolf/lede,按回车,克隆lean大神的源码到目录lede
然后在终端输入cd lede进入源码的目录
然后输入./scripts/feeds update -a,等待操作完成,需要几分钟,然后输入./scripts/feeds install -a,等待操作完成
下一步,在终端输入make menuconfig,按回车,你将看到一个全英文界面,但不用慌,跟着走就对了。
我们暂时用7个按键就足够了,等你学会了,你再想怎么按就怎么按
上、下方向键移动光标,左、右方向键移动底部的光标,enter键进入,y键选中,n键取消选中,目前就用到这7个按键。
光标选中Target System->,按enter进入,然后按上方向键找到 ( )MediaTek Ralink MIPS ,按enter选中
选中后自动返回,第二项Subtarget (MT7620 besed board)--->保持不变,然后移动到第三项Target Profile--->按enter进入
然后按下方向键,找到 ( )Xiaomi MIWIFI Mini,按enter选中
前三项
lean大神的源码默认是有中文luci界面的,原版openwrt是默认没有的,如果你用的是原版openwrt的源码,记得去添加luci,还有中文的语言包,方法搜一下就有了,如果用的是lean大神的源码的话,我们继续
相信上面的操作已经让你掌握了基本操作,下面我们加快车速,向下移动光标到Kernel modules--->,按enter进入,然后移动光标到USB Support--->,按enter进入,这个时候,我们用按键y来选中需要的组件,按错了可以用按键n取消,分别选中<*>kmod-usb-core(默认选中),<*>kmod-usb-ohci(默认选中),<*>kmod-usb-storage,<*>kmod-usb-wdm,如图
然后用右方向键将下排的光标移动到
用来挂卡的话,这些够用了,这时候用方向键右移动下排光标到
保存完成后,移动下排光标到
然后在终端输入make -j8 download,下载编译需要的文件
等待下载完成后,在终端输入make -j1 V=s,开始编译,大神说第一次推荐用单线程编译
接下来该干嘛干嘛,漫长的编译,编译一两个小时都不奇怪
编译完成后,生成的固件在/lede/bin/targets/ramips/mt7620目录,看文件名是不是很熟悉,openwrt-ramips-mt7620-xiaomi_miwifi-mini-squashfs-sysupgrade.bin就是我们要的固件了
固件有了,怎么刷固件估计不用我教了吧
在源码目录的README.md有lean大神写的教程,如何重新设置参数,使用多线程编译等,当你会基本操作后,最好使用大神的教程
推测,只要路由器是MT7620芯片,有USB接口,都可以拿来挂卡中继,只要固件中有合适的USB驱动和USB网卡驱动
说一下我遇到的坑吧
1.一定要刷不死breed,否则真的要TTL救砖大法或者拆芯片上编程器了
2.这里的网卡驱动不适合MT7621,我对比发现,如果芯片选择了MT7621,kmod-rt2800-soc是找不到的,哪怕想办法编译成ipk,用winscp上传到路由器,用opkg install 命令也安装不了kmod-rt2800-soc,强行装进去也用不了,也就是MT7621芯片的路由器没法用rt2800系列的网卡做中继,其他网卡还没尝试。
新手上路,如果什么地方说的不对,还请指教
最后,谢谢lean大神,我一直用你的源码还有你发布的PandoraBox的固件。
热门播放
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×