openwrt配置内核驱动_为斐讯K2P编译OpenWRT LEDE,并启用mtk闭源wifi驱动及H3C认证

2023-05-16

写在最前:只有A1/A2版的K2P才能照本文编译固件并刷入,B1/B2版切莫作死。

一、简述

写在最前,只有A1/A2版本的K2P能照本文编译固件并刷入,B1版本切莫作死。虽然斐讯迟早翻车 现在已经翻车了,不过K2P这款路由器依然声名在外。 CPU MT7621A , 内存128MB,闪存16MB的配置也可以算作进入网络新世界的一张船票了。就是K2P的wifi芯片用的是MT7615E这坑货,驱动闭源,openwrt的开源驱动也不能支持该芯片,导致很长一段时间里,openwrt 以及 lede(现在两个合并了)都跟他无缘(当然不用wifi也能刷)。

直到Nossiac在github上发布了为openwrt&lede预编译好的mtk各种wifi芯片的驱动,更多内容见此github代码库。

利用Nossiac放出来的mtk wifi芯片闭源驱动,就能为k2p编译完整版带wifi的固件了。但是,目前这个驱动还不稳定,在openwrt 18.06容易出现崩溃重启的情况,说是要解决但已经凉了两三个月了。目前已知k2p较稳定的openwrt的固件所采用的内核都3.x上古版本,要使用最新版lede的代价也就是wifi稳定性了。具体有关K2P无线驱动的问题可以跟踪这一个议题。

就我使用而言,目前wifi驱动还是不稳定,使用5G wifi在大流量情况下会每个几小时出现崩溃重启,所以如果想尝试,建议要么少用wifi,要么尽量避免使用需要保持网络连接的应用,否则不定时重启非常刺激。

如果需要用稳定版本,可以刷入以下几种固件:

温馨提示:刷机有风险,务必注意备份!

二、准备固件编译环境

1. 首先装好Linux系统

推荐 Ubuntu 18.04 LTS x64

2.安装必要软件

命令行输入

sudo apt-get update

然后输入

sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev ccache

3. 下载OpenWRT LEDE源码

git clone https://github.com/lede-project/source

下载完成后 cd source 进入目录

4. 添加mtk闭源驱动

在source目录中执行:

src-git mtk https://github.com/Nossiac/mtk-openwrt-feeds;lede-17.01

之后执行:

scripts/feeds update -f mtk

scripts/feeds install -a -p mtk

完成后效果如下图所示:

5.更新必要配置

更新刚刚添加的外部提供代码源并加入需要编译的符号链接

./scripts/feeds update -a

./scripts/feeds install -a

三、配置编译选项

写在前面,如果对openwrt软件体系不够熟悉,不能较好的勾选所必需编译的软件和内核选项,可以使用我已经配置好的精简版(只含基本系统和wifi驱动)的配置文件。

输入下面命令开始配置编译选项及选择所需软件:

make menuconfig

1、选择路由器型号

Target System 选择 MediaTek Ralink MIPS

Subtarget 选择 MT7621 based boards

Target Profile 选择 Phicomm K2P

另外,建议勾选Build the Openwrt SDK ,方便日后交叉编译;

2、添加mtk闭源驱动

MTK Properties -> Drivers 选择 mt7615

MTK Properties -> Misc 把所有luci都勾上

3、选上其它常用模块

推荐勾选的:直列几个我喜欢的

内核命令相关:kmod-ipip ip-full kmod-fou

网络及应用相关:aria2 iperf3 nginx curl wget openssl htop

luci相关:觉得需要的就勾上吧

如果不确定设置为M,以后需要时也方便安装。

4、添加H3C校园网认证

1.在lede根目录下面拉取代码:

git clone https://github.com/LGA1150/openwrt-sysuh3c.git package/openwrt-sysuh3c

2.设置编译选项

make menuconfig

在 LuCI -> Applications 中,把  luci-app-sysuh3c 勾上

5、保存配置

这个不用多说了,选中右下角的save,保存文件名为 .config ,编译时默认编译名为.config的配置。

四、编译

1.下载编译所需的软件包和代码

进行此步建议在良好的网络下进行,否则可能因为404导致无法拉取所需代码。

推荐用proxychians4让整个bash走socks5代理出去。

或者使用 export all_proxy=socks5://127.0.0.1:1080 让命令走代理出去也行

执行下载:

make download -j

2.执行编译

建议第一次编译加入参数 -j1,以免因为相互依赖问题导致编译中断,之后可以使用 -j 或者 -j线程数 加快编译速度。

make -j1 V=s

或者

make -j1 V=99

漫长等待,第一次要很久很久。。。。

可以把-j1 改为-j加快速度,但是有可能编译到一半就中断,需要再次执行命令。。。。

如果一切正常,你最终可以在 bin/targets/ramips/mt7621 下找到编译好的固件:

openwrt-ramips-mt7621-k2p-squashfs-sysupgrade.bin

3、交叉编译小提示

如果一开始勾上了SDK,那么编译完成之后会出现

toolchain-mipsel_24kc_gcc-7.3.0_musl.Linux-x86_64.tar.xz

解压它,然后把解压后的文件夹中的bin目录添加到path环境变量就行了

export PATH=/home/your_homepath/lede/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin:$PATH

export STAGING_DIR=/home/your_homepath/lede/staging_dir

然后就可以使用交叉编译了

五、刷机并配置wifi驱动相关

1、备份必要固件及配置文件

按住重置键重启进入路由器的breed控制台

把固件、eeprom、编程器固件都备份下来!!!

把固件、eeprom、编程器固件都备份下来!!!

把固件、eeprom、编程器固件都备份下来!!!

重要的话说了三遍,刷机有风险,请事先备份好。

下载斐讯官方原厂固件,在/etc/wireless/mt7615找到

mt7615-sku.dat和mt7615-sku-bf.dat ,保存之

2、刷机

在breed控制台上传刚刚编译好的固件,建议刷好之后先还原出厂设置一次。

如果出现不能开机的情况,可以尝试将闪存布局从 公版 改为 斐讯 。

3、配置并启动WIFI

将第一部提取自原厂固件的两个配置文件,

mt7615-sku.dat和mt7615-sku-bf.dat ,  复制到路由器的

/etc/wireless/mt7615 目录下

修改同目录下Wifi的配置文件mt7615.1.5G.dat和mt7615.1.2G.dat里的E2pAccessMode=2

然后在/lib/firmware中放入第一步备份的eeprom,文件重命为   mt7615.1.eeprom.bin

输入以下命令启动wifi

modprobe mt7615

mtkwifi reload

最后进入luci管理页面,mtk wifi项,开启名为mt7615.1.5G和mt7615.1.2G的wifi,配置好名称和密码,就可以愉快的使用了。

如果wifi驱动出现问题,请到这里反映。

六、后记

大概在4个月前我就把K2P成功刷入最新版LEDE并使用了,但是因为各种原因+拖延症,这篇教程前前后后写了三个月(其实是三个月前的初稿,现在整理了发出来)。懒癌晚期果然无药可救了。

如果有空,今年内把padavan编译一下,尝试把驱动打上去。恩山上的lean和荒野无灯应该有无线驱动的SDK,但是不开源,也不给出编译好的驱动内核文件,这确实很伤,只能尝试编译对应版本padavan然后强行装包了。

目前打算入个二手x86的阿童木(Atom)软路由,用K2P当AP。不过阿童木的性能过于弱鸡,还不如电脑开虚拟机当软路由,犹豫不决,不敢下手。或许剁手狠一点,直接上pcie网卡,捡个垃圾酷睿U把HTPC+NAS+Router一次搞定更省事儿。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openwrt配置内核驱动_为斐讯K2P编译OpenWRT LEDE,并启用mtk闭源wifi驱动及H3C认证 的相关文章

随机推荐