New Xiaomi router AC2100

@ilyas: Thanks for the summary.

Update: emirefek asked me to change the device name and all references in the sourcecode to reflect that it's meant for the RM2100 model (as there is also a black version R2100 which is not comaptible to this code).

I've updated my repo to reflect RM2100 in all config files and also in the device selection from now on. I also updated all firmware images in post 389.

If anyone is working on the device support for R2100 it would be great if you could reflect R2100 in the names of all files (new written name for the selection in menuconfig: "Xiaomi Redmi Router AC2100 (RM2100 white)", so please use "Xiaomi Redmi Router AC2100 (R2100 black)" for the black edition).

Overview which modifications I did to backport device support to 19.07.3: Commit

I think emirefek is working on the support of the R2100 model. Maybe we can also integrate this into my repository later.

@namidairo: Do you see any chances to get this integrated in the official 19.07 repository? Was it ever accepted to get a backport for device support into the stable tree?

hey @scp07 .. i see you're aware of @emirefek trying to figure out the "black ac2100"s leds. i'm not sure who will end up pushing support for this device to openwrt: @namidairo, @emirefek or yourself.

given the (extreme) similarities between the two devices, (and going on what i believe to be "the openwrt way") i think we're going to end up with a common "dtsi" file (with almost everything) and two "dts"es which basically only have the gpio/led configuration. i threw together something (obviously untested) which you might want to look at... i made a PR for @emirefek's gate, and was going to do the same for yours but then got distracted :wink:

here it is

btw, i think it would make sense for (in your 19.07 gate) to just use the same names as master. ie, "xiaomi,redmi-router-ac2100". for better or worse that's the openwrt name of the device.

as for "the black one", it appears that (in addition to its color) it's marketed as "xiaomi mi router ac2100" (not to be confused with "xiaomi redmi router ac2100" :)) i think "xiaomi,mi-router-ac2100" makes sense (and the name that shows up in make menuconfig can say "white" or "black" (or maybe in the toh or something it can be clarified)... btw i also proposed "xiaomi_router-ac2100" as the common name for the dtsi file. obviously just a suggestion, but it seems to make sense (to me :))

Agreed. I won't change the names right now but I'll do that later.

Let's use this naming convention:

target/linux/ramips/image/mt7621.mk

DEVICE_TITLE := Xiaomi Redmi Router AC2100 (RM2100 white)

target/linux/ramips/dts/REDMI_RM2100.dts

model = "Xiaomi Redmi Router AC2100 (RM2100 white)";

but for all other names let's use

xiaomi,redmi-router-ac2100

for the white version
and

xiaomi,mi-router-ac2100

for the black version

DTS-Name for the white version according to the typical naming scheme in 19.07:

REDMI-ROUTER-AC2100.dts

Are you ok with that?

I'll have a look at your dtsi recommendation and your commit later :slight_smile:

1 Like

Just installed 19.07.3 from @scp07. It looks good for me. Thanks for efforts.
Also I installed hsdma module. It did not give me WiFi speed boost this time

Time to time I have issue with with package installation. It tries to get it from https://downloads.openwrt.org/ but gets SSL certificate issued to downloads.lede-project.org and validation fails. From laptop I am getting vaild certificate. Not sure about the real reason.

One more strange think I found with RealTime Graph on LiCi. It does not show me any traffic when I am ranning iperf3 ethernet <--> router <--> ethernet. But I asume it is by design.

@elipatov: I tried to replicate the issue on my device but I don't have any problems with SSL certificates. If you are using the basic image the problem may be related to the fact that ca-bundles or ca-certificates are not installed by default. Just install ca-bundle from the official repository and it should be working fine (it's included in my advanced image but of course it can also be installed on top of the basic image). In the next version of precompiled images I will include it also in the basic image.

Regarding the RealTime Graph and iperf tests: I think this is normal.

@ilyas: Names for my 19.07 and 19.07.3 tree reverted according to the recommended naming convetion from post 396. I'll also update the precompiled images later (even if it doesn't change anything than just a slight change of the device name I want to have the precompiled version on the same state as the code repository).

Updated version of the 19.07.3 images: Names in these images are according to the discussed naming convention. ca-bundle is now included also in the basic image.

Supported Model: Xiaomi Redmi Router AC2100 (RM2100 white edition)

Additionally to the images also all kmods are included in the zip files. The images are now completely compatible to the official download repository.

Basic version (including ca-bundle, hostapd, iw-full and wpa-supplicant-mesh-openssl):

Full list of included packages in the basic version:

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7621=y
CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_redmi-router-ac2100=y
CONFIG_ALL_KMODS=y
CONFIG_DEVEL=y
CONFIG_KERNEL_BUILD_DOMAIN="buildhost"
CONFIG_KERNEL_BUILD_USER="builder"
# CONFIG_KERNEL_KALLSYMS is not set
CONFIG_OPENSSL_ENGINE=y
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM=y
CONFIG_OPENSSL_WITH_ASM=y
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
CONFIG_OPENSSL_WITH_CMS=y
CONFIG_OPENSSL_WITH_DEPRECATED=y
CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_OPENSSL_WITH_TLS13=y
CONFIG_PACKAGE_ca-bundle=y
CONFIG_PACKAGE_hostapd=y
# CONFIG_PACKAGE_iw is not set
CONFIG_PACKAGE_iw-full=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_wpa-supplicant-mesh-openssl=y
# CONFIG_PACKAGE_wpad-basic is not set

Advanced version including a lot more addons (useful things like OpenVPN, SothetherVPN, wireguard, socat, stunnel, ddns, wol, tcpdump, iperf3...):

If you use this image, please keep in mind to disable the startup of services you don't need (e.g. SoftetherVPN). Otherwise you will waste resources for things you don't use (you can disable services easily by going to System-->Startup in LUCI). Be careful: watchcat is also included. By default a script is predefined to reboot the device if 8.8.8.8 is not reachable for 6 hours. If you don't want that to happen you have to disable the watchcat service or modify the settings (e.g. in Luci: Services --> Watchcat).

Full list of included packages in the advanced version:

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7621=y
CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_redmi-router-ac2100=y
CONFIG_ALL_KMODS=y
CONFIG_DEVEL=y
CONFIG_DROPBEAR_ECC=y
CONFIG_DROPBEAR_ECC_FULL=y
CONFIG_GETDNS_ENABLE_STUB_ONLY=y
CONFIG_KERNEL_BUILD_DOMAIN="buildhost"
CONFIG_KERNEL_BUILD_USER="builder"
# CONFIG_KERNEL_KALLSYMS is not set
CONFIG_LIBCURL_COOKIES=y
CONFIG_LIBCURL_FILE=y
CONFIG_LIBCURL_FTP=y
CONFIG_LIBCURL_HTTP=y
CONFIG_LIBCURL_MBEDTLS=y
CONFIG_LIBCURL_NO_SMB="!"
CONFIG_LIBCURL_PROXY=y
CONFIG_OPENSSL_ENGINE=y
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM=y
CONFIG_OPENSSL_WITH_ASM=y
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
CONFIG_OPENSSL_WITH_CMS=y
CONFIG_OPENSSL_WITH_DEPRECATED=y
CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_OPENSSL_WITH_TLS13=y
CONFIG_OPENVPN_openssl_ENABLE_DEF_AUTH=y
CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y
CONFIG_OPENVPN_openssl_ENABLE_LZ4=y
CONFIG_OPENVPN_openssl_ENABLE_LZO=y
CONFIG_OPENVPN_openssl_ENABLE_MULTIHOME=y
CONFIG_OPENVPN_openssl_ENABLE_PF=y
CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y
CONFIG_OPENVPN_openssl_ENABLE_SERVER=y
CONFIG_OPENVPN_openssl_ENABLE_SMALL=y
CONFIG_PACKAGE_TAR_BZIP2=y
CONFIG_PACKAGE_TAR_GZIP=y
CONFIG_PACKAGE_TAR_XZ=y
CONFIG_PACKAGE_batctl-default=y
CONFIG_PACKAGE_bzip2=y
CONFIG_PACKAGE_ca-bundle=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_etherwake=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_getdns=y
CONFIG_PACKAGE_gzip=y
CONFIG_PACKAGE_hostapd=y
CONFIG_PACKAGE_iftop=y
CONFIG_PACKAGE_ip-tiny=y
CONFIG_PACKAGE_iperf3=y
# CONFIG_PACKAGE_iw is not set
CONFIG_PACKAGE_iw-full=y
CONFIG_PACKAGE_kmod-batman-adv=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-crypto-hash=y
CONFIG_PACKAGE_kmod-lib-crc16=y
CONFIG_PACKAGE_kmod-lib-crc32c=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-udptunnel4=y
CONFIG_PACKAGE_kmod-udptunnel6=y
CONFIG_PACKAGE_kmod-wireguard=y
CONFIG_PACKAGE_libbz2=y
CONFIG_PACKAGE_libcurl=y
CONFIG_PACKAGE_libgd=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_libjpeg=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_liblzma=y
CONFIG_PACKAGE_liblzo=y
CONFIG_PACKAGE_libmbedtls=y
CONFIG_PACKAGE_libmnl=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libpcre=y
CONFIG_PACKAGE_libpng=y
CONFIG_PACKAGE_libreadline=y
CONFIG_PACKAGE_librt=y
CONFIG_PACKAGE_libsmartcols=y
CONFIG_PACKAGE_libtirpc=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_libyaml=y
CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_lsof=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-ddns=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-ntpc=y
CONFIG_PACKAGE_luci-app-openvpn=y
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-app-vnstat=y
CONFIG_PACKAGE_luci-app-watchcat=y
CONFIG_PACKAGE_luci-app-wireguard=y
CONFIG_PACKAGE_luci-app-wol=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-compat=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-ipkg=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-proto-relay=y
CONFIG_PACKAGE_luci-proto-wireguard=y
CONFIG_PACKAGE_luci-ssl-openssl=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_ntpclient=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_openvpn-easy-rsa=y
CONFIG_PACKAGE_openvpn-openssl=y
CONFIG_PACKAGE_perl=y
CONFIG_PACKAGE_perlbase-base=y
CONFIG_PACKAGE_perlbase-bytes=y
CONFIG_PACKAGE_perlbase-class=y
CONFIG_PACKAGE_perlbase-config=y
CONFIG_PACKAGE_perlbase-dynaloader=y
CONFIG_PACKAGE_perlbase-errno=y
CONFIG_PACKAGE_perlbase-essential=y
CONFIG_PACKAGE_perlbase-fcntl=y
CONFIG_PACKAGE_perlbase-filehandle=y
CONFIG_PACKAGE_perlbase-getopt=y
CONFIG_PACKAGE_perlbase-io=y
CONFIG_PACKAGE_perlbase-list=y
CONFIG_PACKAGE_perlbase-net=y
CONFIG_PACKAGE_perlbase-posix=y
CONFIG_PACKAGE_perlbase-scalar=y
CONFIG_PACKAGE_perlbase-selectsaver=y
CONFIG_PACKAGE_perlbase-socket=y
CONFIG_PACKAGE_perlbase-symbol=y
CONFIG_PACKAGE_perlbase-tie=y
CONFIG_PACKAGE_perlbase-time=y
CONFIG_PACKAGE_perlbase-xsloader=y
CONFIG_PACKAGE_relayd=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_snapshot-tool=y
CONFIG_PACKAGE_socat=y
CONFIG_PACKAGE_softethervpn-base=y
CONFIG_PACKAGE_softethervpn-server=y
CONFIG_PACKAGE_stubby=y
CONFIG_PACKAGE_stunnel=y
CONFIG_PACKAGE_tar=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_unzip=y
CONFIG_PACKAGE_vnstat=y
CONFIG_PACKAGE_vnstati=y
CONFIG_PACKAGE_wakeonlan=y
CONFIG_PACKAGE_watchcat=y
CONFIG_PACKAGE_wget=y
CONFIG_PACKAGE_wireguard-tools=y
CONFIG_PACKAGE_wpa-supplicant-mesh-openssl=y
# CONFIG_PACKAGE_wpad-basic is not set
CONFIG_PACKAGE_xz=y
CONFIG_PACKAGE_xz-utils=y
CONFIG_PACKAGE_zlib=y
CONFIG_PERL_NOCOMMENT=y
CONFIG_PERL_THREADS=y
CONFIG_SOCAT_SSL=y

Compiled from https://github.com/phs07/openwrt/tree/openwrt-19.07.3_xiaomi_ac2100

If you want to compile it on your own but you still want to stay compatible to the official download repository make sure that you include these lines in your seed file used for creating the defconfig:

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7621=y
CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_redmi-router-ac2100=y
CONFIG_ALL_KMODS=y
CONFIG_DEVEL=y
CONFIG_KERNEL_BUILD_DOMAIN="buildhost"
CONFIG_KERNEL_BUILD_USER="builder"
# CONFIG_KERNEL_KALLSYMS is not set

Additionally don't change anything from the kernel settings and don't deselect kmods. You can choose to integrate specific ones directly into your image but it's important that all of them are compiled and nothing is deselected - otherwise the vermagic will differ from the official repository.
To check if your own compilation is compatible to the official repository of 19.07.3 just test it directly from your build root:

find build_dir/ -name .vermagic -exec cat {} \;

The output should match 2e88863ccdd594fb8e842df3c25842ee

Any feedback is welcome.

1 Like

I need someone who at official firmware. With "Xiaomi Mi AC2100"(R2100)(black cylinder).
Can you check is there a amber wan/lan switch leds in this device? I just saw one led hole per switch but maybe there is red led behind of green plastic.

If there is an amber led. It should light up when gigabit connection up.

I have the official version (yet). The LEDs are green at 1Gbit connection.

Okay thanks a lot. I just sacrificed 3 days to adapt amber leds to openwrt. But there was no led :sweat_smile:. Thanks a lot.

1 Like

I've just finished some tests for hsdma.

At first I ensured that hsdma is really running:

root@OpenWRT:~# dmesg | grep dma
[   13.367082] hsdma-mt7621 1e007000.hsdma: rx: 1, tx: 1

Sadly there wasn't a noticable change in terms of speed. It's nearly the same as before:

Without hsdma:

./iperf3.exe -c 192.168.160.1 5201
Connecting to host 192.168.160.1, port 5201
[  4] local 192.168.160.107 port 2273 connected to 192.168.160.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  40.9 MBytes   343 Mbits/sec
[  4]   1.00-2.00   sec  40.4 MBytes   338 Mbits/sec
[  4]   2.00-3.00   sec  41.0 MBytes   344 Mbits/sec
[  4]   3.00-4.00   sec  42.2 MBytes   354 Mbits/sec
[  4]   4.00-5.00   sec  41.5 MBytes   348 Mbits/sec
[  4]   5.00-6.00   sec  41.6 MBytes   349 Mbits/sec
[  4]   6.00-7.00   sec  42.8 MBytes   359 Mbits/sec
[  4]   7.00-8.00   sec  41.8 MBytes   350 Mbits/sec
[  4]   8.00-9.00   sec  41.2 MBytes   346 Mbits/sec
[  4]   9.00-10.00  sec  41.9 MBytes   351 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   415 MBytes   348 Mbits/sec                  sender
[  4]   0.00-10.00  sec   415 MBytes   348 Mbits/sec                  receiver

With hsdma:

./iperf3.exe -c 192.168.160.1 5201
Connecting to host 192.168.160.1, port 5201
[  4] local 192.168.160.107 port 2766 connected to 192.168.160.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  41.6 MBytes   349 Mbits/sec
[  4]   1.00-2.00   sec  39.2 MBytes   329 Mbits/sec
[  4]   2.00-3.00   sec  41.2 MBytes   346 Mbits/sec
[  4]   3.00-4.00   sec  41.8 MBytes   350 Mbits/sec
[  4]   4.00-5.00   sec  41.8 MBytes   350 Mbits/sec
[  4]   5.00-6.00   sec  42.2 MBytes   355 Mbits/sec
[  4]   6.00-7.00   sec  42.8 MBytes   359 Mbits/sec
[  4]   7.00-8.00   sec  43.0 MBytes   361 Mbits/sec
[  4]   8.00-9.00   sec  42.9 MBytes   360 Mbits/sec
[  4]   9.00-10.00  sec  42.5 MBytes   356 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   419 MBytes   351 Mbits/sec                  sender
[  4]   0.00-10.00  sec   419 MBytes   351 Mbits/sec                  receiver

It might be different with other clients as the client card with which I've tested it has only 2x2 streams.
My client wifi test card was: Intel(R) Dual Band Wireless-AC 8265

Maybe I will repeat some tests with other devices during the next days. If you also want to compare hsdma vs normal version, here are precompiled images with enabled hsdma:

Basic version (included packages like in post 399 but with hsdma):

Advanced version (included packages like in post 399 but with hsdma):

Any progress about your decompiler? I am looking for a usable lua decompiler for my ax3600, maybe your work will help a lot

I merged emirefek's tree into a combined 19.07 tree for RM2100 and R2100 now:

I also made some corrections. emirefek will test to compile and run this on R2100. In the meantime I'll test it for the white version (RM2100).

@ilyas : dtsi file created, dts files adjusted :slight_smile:

2 Likes

Tested. And works perfectly fine at R2100. This is stablish openwrt so far.

1 Like

I have some questions about building:

1 - Can I safely ignore these errors?

❯ ./scripts/feeds install -a
Collecting package info: done
Collecting target info: done
WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist
WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libgnutls', which does not exist
WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libopenldap', which does not exist
WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libidn2', which does not exist
WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libssh2', which does not exist
WARNING: Makefile 'package/boot/kexec-tools/Makefile' has a dependency on 'liblzma', which does not exist
WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', which does not exist

2 - What am I supposed to select in the menuconfig? In specific for:

  • Target System
  • Subtarget
  • Target Profile
  • Target Images

Could you maybe share your .config so I can get an idea what is going on?

3- If my R2100 is already on OpenWrt, would I upgrade like this?

mtd write xiaomi-router-kernel1.bin kernel
mtd write xiaomi-router-rootfs0.bin ubi

1 - Can I safely ignore these errors?

You can't. You have missing dependencies You need to install some packages before start this process.
https://openwrt.org/docs/guide-developer/quickstart-build-images
Use this guide to compile and I hardly suggest to use "make download" before actual "make" and you can use "'make -j <your thread count+1>" rather than "make" at last step.

2 - What am I supposed to select in the menuconfig? In specific for:

Target Sys= MediaTek Ralink MIPS
Subtarget= MT7621
Target profile= Xiaomi R2100 or RM2100 (depends on your device)
Don't touch target Images. You'll be fine
And don't forget to configue LuCI.

3- If my R2100 is already on OpenWrt, would I upgrade like this?

You can but you shouldn't. Please upgrade at LuCI if you have oppurtunity to use Luci
sysupgrade -v -n /tmp/xiaomi_xxxx_xxxx-xxxx-xxxxx-sysupgrade.bin
Don't forget you should use just sysupgrade file. not others.

And I also uploading all my compiled images with .config(as my.config) to this URL if you don't have much knowledge about compiling you can use them. And you can edit them as your base config. You will get sysupgrade package. You don't need rootfs and kernel1 if you are already at OpenWRT. These are for switching between firmwares.

https://drive.google.com/folderview?id=19-FW3p6uKo5dn0to2fwQPjMah5p5geRn

2 Likes

I installed all the packages mentioned in that guide, can it be an issue that I try to compile this on a Raspberry Pi?

I only see "Xiaomi Redmi Router AC2100" but not RM2100 (which is the device I have).

It would be nice if you could share your images and .config

https://drive.google.com/folderview?id=19-FW3p6uKo5dn0to2fwQPjMah5p5geRn
Opps. Sorry.I was already uploaded but I forgot to paste url

You should select white version. My images for R2100 (black) btw

You shouldn't use rpi. Anyway you successfully manage to use script it will took more than 5hours to compile.

I am a bit confused. Why should I select the white Redmi one when I have the black one?

I tried using your sysupgrade image via LuCI and it told me

The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform.

I did some searching and found this: https://openwrt.org/docs/techref/hardware/soc/soc.broadcom.bcm47xx/image.conversion

I converted the file to .trx, but I can't see HDR0

❯ hd openwrt-ramips-mt7621-xiaomi_r2100-squashfs-sysupgrade.trx | head
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000040  00 00 00 00 30 30 30 30  37 35 35 00 30 30 30 30  |....0000755.0000|
00000050  30 30 30 00 30 30 30 30  30 30 30 00 30 30 30 30  |000.0000000.0000|
00000060  30 30 30 30 30 30 30 00  31 33 36 36 34 35 34 35  |0000000.13664545|
00000070  32 32 35 00 30 31 32 32  35 36 00 20 35 00 00 00  |225.012256. 5...|
00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000e0  00 75 73 74 61 72 20 20  00 00 00 00 00 00 00 00  |.ustar  ........|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

There is a issue in source. I commented it and will be fixed soon. But it won't cause any issue in usage. You'll update to fixed version later. You should select Redmi R2100. Just for now. You'll select Mi R2100 after todays build. It'll be fixed.

I said white because you mentioned RM2100.
RM2100 = white
R2100 = black

Ignore it. Click RED Warning button below. Image isn't uncompatible. Just openwrt thinks like that because you was at RM2100 before and you are tryya switch R2100 now.

A much better way than using .config files (which are extremely code and version dependent):

Use the config.buildinfo = also called config seed, copy the content into a blank, newly created .config and place it into your openwrt dir. Then use make defconfig. It will blow the few lines up to a whole config file which fits to your codebase and your version.

You could just use the config.buildinfo from @emirefek . I would never suggest to use full config files as they are not portable in most cases.

Another advantage: You can rewrite it extremely easy for another device.

Just have a look at this example
My config seed for the basic image version I'm currently providing for RM2100 (white edition):

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7621=y
CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_redmi-router-ac2100=y
CONFIG_ALL_KMODS=y
CONFIG_DEVEL=y
CONFIG_KERNEL_BUILD_DOMAIN="buildhost"
CONFIG_KERNEL_BUILD_USER="builder"
# CONFIG_KERNEL_KALLSYMS is not set
CONFIG_OPENSSL_ENGINE=y
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM=y
CONFIG_OPENSSL_WITH_ASM=y
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
CONFIG_OPENSSL_WITH_CMS=y
CONFIG_OPENSSL_WITH_DEPRECATED=y
CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_OPENSSL_WITH_TLS13=y
CONFIG_PACKAGE_ca-bundle=y
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_hostapd=y
# CONFIG_PACKAGE_iw is not set
CONFIG_PACKAGE_iw-full=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-ssl-openssl=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_wpa-supplicant-mesh-openssl=y
# CONFIG_PACKAGE_wpad-basic is not set

If you want to use exactly the same options and packages for R2100 you would have to replace only a single line:
Replace the third line by:

CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_mi-router-ac2100=y

So you see these smaller seed files have a lot of advantages and aditionally a much better readability as you can directly see what is different in comparison to the default packages.

Btw.: I will update all my 19.07.x branches during this afternoon to use exactly the same names as on openwrt/master to bring it in line.