Skip to content

Releases: iscilyas/openwrt-r3p

sync'ed with v18.06.4 plus (optional) mt76/mt7615e support

02 Aug 15:17
Compare
Choose a tag to compare

Here we're adding optional support for mt76/mt7615e for people who want to try it out. the closed source mt7615 kernel module has been renamed (mt7615e => mt7615x) to prevent confusion. it is still the default.

in order to try out mt76/mt7615e (which is surprisingly not as bad as i expected), you'll need to disable mt7615x (the two almost certainly don't play well together).

/etc/init.d/mt7615x stop
/etc/init.d/mt7615x disable

this should remove the script in /etc/rc.d/ that loads the closed-source driver on boot (as well as unloading the kernel module... verify that it's been unloaded by running lsmod | grep mt76 which should result in nothing).

to install mt76/mt7615e, point /etc/opkg/distfeeds.conf to use this page as a "package repository":

opkg update
opkg install libustream-openssl20150806 ca-bundle ca-certificates # support ssl

now edit /etc/opkg/distfeeds.conf so the first line points to this page instead of "snapshots":

cat > /etc/opkg/distfeeds.conf << EOF
src/gz openwrt_core https://github.com/iscilyas/openwrt-r3p/releases/download/v18.06.4
src/gz openwrt_base http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base
src/gz openwrt_luci http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci
src/gz openwrt_packages http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages
src/gz openwrt_routing http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony
EOF

update the package list and install mt7615e

opkg update
opkg install kmod-mt7615e

5Ghz seems to take its sweet time getting ready, so be patient. also, the speeds are pretty low compared with the closed-source driver. but i've had it up for about an hour and it hasn't panic'ed yet... so it's a pleasant surprise.

to revert to the closed-source module:

ifconfig wlan0 down
ifconfig wlan1 down
rmmod mt7615e
opkg remove kmod-mt7615e
/etc/init.d/mt7615x enable
/etc/init.d/mt7615x start

enjoy!

4.14.111+kmod-sit (for @ivanl)

26 Apr 05:20
Compare
Choose a tag to compare
Pre-release

What it says. Completely untested (but same as previous release, so should be OK).

Xiaomi Mi Router 3 Pro (kernel 4.14.111)

11 Apr 16:07
Compare
Choose a tag to compare

This one is tested and works. Promise.

Xiaomi Mi Router 3 Pro (Release Candidate 1)

20 Feb 12:46
Compare
Choose a tag to compare

[Note This is not the latest release. Scroll down if you want to use the newer 5.0.2.0 wireless driver ]

There's a "pull request" somewhere in the pipeline to integrate MIR3P support to openwrt. This "release" includes changes that were requested during the review of of that PR.

Most importantly: Reworked the partition table. Turns out my "firmware = automatic kernel+ubi" scheme doesn't work for ubi (works for jffs2, fwiw). So now we're back to a hard-coded "kernel" partition (and of course "ubi" as well).

What does this mean? Well, if you want to install (from one of my previous builds) you can go ahead and do:

mtd write factory.bin firmware

since "firmware" exists on the previous builds. Going forward, however, there won't be a "firmware" partition anymore. (But then... "sysupgrade" now works, so that shouldn't matter).

Very importantly: people who were ending up in bootloops due to bad blocks should (hopefully) not experience that problem anymore.

Other changes:

Nothing very serious. Added nodes for the mt7615 devices in the .dts file. The installation files will now have the name "xiaomi_mir3p" (instead of just "mir3p"). sysupgrade works. mt7615 (still) works (with the same caveats as earlier. There should be no real change in functionality.

Please see previous releases. And please continue to test and provide feedback.

Xiaomi Mi Router 3 Pro (4.14.104+hsdma+fuse reloaded) and optional (untested) mt76/mt7615 drivers

12 Mar 18:13
Compare
Choose a tag to compare

I get quite good performance with this.... try it out. (use my previous release or download from openwrt for kernel modules)

PS: I'm appending the mt76-based mt7615e kernel module (kmod-mt76-core and kmod-mt7615 below, as well as kmod-mac80211 which it depends on) in case anyone wants to try it out (I haven't). It has the same name as the closed-source module (maybe i'll fix that later), so you'll have to unload the closed-source module first:

/etc/init.d/mt7615e stop

then download and install the ipk (which will end up overwriting your previous kernel module, so it's a good idea to back it up before installing the mt76 version):

cd /lib/modules/`uname -r`
mv mt7615e.ko mt7615e-mediatek.ko

download the kernel modules from here and copy them to /tmp on your router

cd /tmp
opkg install kmod-cfg80211*.ipk
opkg install kmod-mac80211*.ipk
opkg install kmod-mt76-core*.ipk
opkg install kmod-mt7615_4*.ipk
opkg install mt7615-firmware*.ipk

also, just in case the new kernel module ends up panicking-on-load, it's a good idea to get rid of the mt7615e auto-load script to prevent a bootloop:

/etc/init.d/mt7615e disable

If you want to enable it again (and if it does the right thing for mt76/mt7615, considering it wasn't tested with it) do:

/etc/init.d/mt7615e enable

Once again, I have not at all tested the mt76/mt7615 module, and I in no way endorse it... but it will give the current openwrt/r3p testers a good way of comparing the two modules (same baseline openwrt/r3p which is known to work)... also it's less effort and risk than flashing the entire system.

Xiaomi Mi Router 3 Pro (kernel 4.14.104+mt7615e+hsdma+fuse)

12 Mar 09:25
Compare
Choose a tag to compare

This isn't much different than the last release. Some compile/build options were changed but I haven't really kept track of them... it's basically for a user who was having problems installing fuse...

Xiaomi Mi Router 3 Pro (mt7615e v5.0.2.0 kernel 4.14.104)

07 Mar 15:27
Compare
Choose a tag to compare

EDIT: The first upload of these files was a broken build. They're OK now.

This "release" is pretty much the same as the last. It is a sync-up with latest openwrt.

In addition (to sweeten the deal, to increase test exposure, and upon request) I've compiled packages for the following:

  • samba3.6
  • l2tp
  • kmod-usb-net-cdc*
  • iperf3
  • luci in Russian (and some other languages)

Until this is finally pulled into OpenWRT, I'm planning to upload commonly used/requested kernel packages (since the openwrt ones don't install due to version/revision mismatch).

Xiaomi Mi Router 3 Pro (mt7615e 5.0.2.0, hopefully with speed improvement)

03 Mar 12:17
Compare
Choose a tag to compare

See the release notes for the previous release (v0.1-rc1+mt7615e-1).

With these bits I'm getting ~115-120mbps on 2.4ghz and ~290mbps on 5ghz... LAN->WAN speed i measure is ~94mbps with iperf3 (the highest I can test: my network is 100mbit)

/sbin/mtkwifi isn't really working properly, so I'd keep away from that.

Xiaomi MI Router 3 Pro (with home-compiled mt7615e driver 5.0.2.0)

01 Mar 14:54
Compare
Choose a tag to compare

WARNING: This build is broken! The installation instructions are OK but do not install the binaries here! (in fact, I think I'll remove them...)

This time around we're trying out the (home compiled) 5.0.2.0 version of the (leaked) mt7615e driver.

INSTALLATION

  • From stock xiaomi (copy *firmware.bin file to /tmp on router)

mv openwrt-ramips-mt7621-xiaomi_mir3p-squashfs-factory.bin factory.bin
nvram set flag_try_sys1_failed=1
nvram set flag_try_sys2_failed=0
nvram set flag_boot_success=0
nvram commit
dd if=factory.bin bs=1M count=4 | mtd write - kernel1
dd if=factory.bin bs=1M skip=4 | mtd write - rootfs0
reboot

  • From RC1 (of mine):

you should be able to just do a "sysupgrade":

sysupgrade sysupgrade.bin

  • From a previous "beta" release of mine:

mtd write factory.bin firmware
reboot

RELEASE NOTES

The Good:

  • This wifi driver is more stable. The mt7615 driver released with RC1 would panic/oops when doing large file transfers. With this release I can run a file transfer all night (and run iperf3) without any visible problems.
  • We no longer have the ugly rax0/ray0 artifacts of the DBDC mode the RC1 wireless module had. 2.4ghz is ra0 and 5ghz is rai0. As it should be.
  • Enabling/disabling a single interface through luci/mtk now works properly (RC1 would enable/disable all of them if you tried to touch one)
  • The wifi module now reads the "nvram (eeprom) data" directly from the mtd "Factory" partition, so I guess the eeprom.bin files are technically redundant (although I still have them bundled just in case).

The Bad:

  • This version (5.0.2.0) of mt7615 isn't the one shipped with stock xiaomi. I'm not sure what kind of test exposure it has received.
  • All of the patches and configuration options I've used when compiling are off the top of my head. Some of the may be wrong or missing. It seems to work OK, but who knows.
  • There is a race condition involved with taking down wifi interfaces (ifconfig down) where if you disable ra0 and immediately after disable rai0 (in a script, for instance) you'll get a panic. I work around this problem (in /etc/init.d/mt7615e) by putting in some "sleep"s. The thing has been in a loop of "interfaces up" / "interfaces down" for hours now and no panics yet, so I think it's sane.
  • No STA mode support. Stay well away from apcli0/apclii0. ignore them. Don't touch them. You don't need them. (OK, I can re-compile with STA mode support but then I'll have to test again, and I don't want to)
  • "iwconfig" doesn't show ra0/rai0 as having "wireless extensions" (seems not to matter in practice)

The Ugly:

  • I'm going to release the patches needed to compile the mt7615e module, but I need to figure out the best way to do that (probably "feeds"). It would also obviously be nice to compile the previous versions (4.4.1.2 I guess) for comparison.
  • I haven't done performance tests between this and RC1... with iperf3 I get ~250mbit on 5Ghz and ~60mbit on 2.4ghz. That's obviously well below the theoretical speeds, but I'm not sure what stock performance is like in practice either.

PATCHES

As already mentioned, the patches to force the thing to compile are my very own. Until I can come up with a better distribution mechanism, extract the contents of the file into $TOPDIR/package. you should have package/ramips/drivers/mt7615e.

Xiaomi Mi Router 3 Pro (both 2.4ghz and 5ghz WIFI WORKS! with kernel 4.14.93 and nossiac's mtk binaries)

11 Feb 19:10
Compare
Choose a tag to compare

See previous release for installation instructions. As of this release (if you add the additional package after installation) you will (hopefully) have an out-of-the-box working solution (with full strong 2.4ghz and 5ghz support).

[ The instructions below have been edited and updated.]

2.4ghz and 5ghz both appear to be working (as of my initial testing... that is, doing an adsl speed test and using it for http/ssh). Both have full signal strength and I haven't encountered any problems so far (but then.. I haven't tested it much... further testing might uncover more bugs).

Changes you'll have to make to make wifi work (what I'm doing differently):

  1. I'm using the stock eeprom files as follows:
    (stock) /lib/wifi/mt7615e5.eeprom.bin -> (openwrt) /lib/firmware/mt7615.2.eeprom.bin
    (stock) /lib/wifi/mt7615e2.eeprom.bin -> (openwrt) /lib/firmware/mt7615.1.eeprom.bin
  2. I'm getting rid of most of /etc/wireless/mt7615 (i keep mt7615.1.2G.dat, mt7615.1.5G.dat, mt7615.2.2G.dat and mt7615.2.5G.dat)
  3. (and possibly most importantly): edit (both) *.dat files (above) to change the line that reads
    E2pAccessMode=1
    and make it:
    E2pAccessMode=2

If you don't want to fiddle with this stuff manually, you can remove the existing mt7615 package and download and install the one bundled here. You should have wifi working right away. Configure through luci.

(copy mt7615_1_mipsel_24kc.ipk to /tmp)
opkg remove mt7615
cd /tmp
opkg install mt7615_1_mipsel_24kc.ipk

Please test.