New Xiaomi router AC2100

This is simplest so far. May I ask which model are you have? Mi Router or Redmi router?

Just compiled my own image since I wanted MIPS FPU Emulator with Node.js included.

Here is my config.buildinfo

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7621=y
CONFIG_TARGET_ramips_mt7621_DEVICE_xiaomi_mi-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_KERNEL_MIPS_FPU_EMULATOR=y
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_NODEJS_ICU=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_icu=m
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_libhttp-parser=m
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_libnghttp2=m
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_libstdcpp=m
CONFIG_PACKAGE_libtirpc=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_libuv=m
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_node=m
CONFIG_PACKAGE_node-npm=m
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

Build took 4 hours 50 minutes on the Raspberry Pi.

Am I safe to just run a sysupgrade when I received no make errors? Device = R2100

In case you go with the guide and use the black cylinder, please use the images emirefek provided a couple of posts above. I will update it as soon as I can.

1 Like

Mi router (Black). Thanks!

Could you be our tester? We need to test something to get stable openwrt. But I'm already flashed custom firmware. I'll be glad If you help us before flashing openwrt.

The test is so easy. You just need to copy a code form original firmware. Please give positive reply.

Sure thing if I manage to install it. Still waiting for the router to arrive though.

Okay thanks. Please ping me before you atempt to start flash process. You need to give some codes before installing(when still at official firmware) Thats why you need reach me before installing openwrt.
Thanks a lot.

1 Like

Did you find a fix for dependency error?
I just getting same errors like you.

Can somebody check serial section at wiki true or false?
I don't have experience with serial connection to routers.
https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_ac2100#serial

I ran ./scripts/feeds install -a a second time and didn't see any of those warnings anymore.
I've decided to just try if it would compile without any errors and it did.

Hello, please check you repo. New wifi drivers in update list

1 Like

Hi. You are probably compiled with wrong branch. As I see you have 5.xxx kernel. You need to pull repo with " git clone --single-branch -b openwrt-19.07_xiaomi_router_ac2100 https://github.com/phs07/openwrt.git`

And we need a tester for more stable builds. I need some codes at ssh. Can you send them?
Can you send "ifconfig" and "hexdump -C /dev/mtd3"
At PM. Please do not publish them public.

please check mtd number with "cat /proc/mtd"
You should find mtd number of factory partition.

Hi vadim,

thanks for your information but that has nothing to do with my repo. Wifi drivers are pulled from the feeds repository. If you're using my 19.07 repo it will automatically use the newest feed repo at every time. If you're using 19.07.3 it will of course use the one which was in place when 19.07.3 was published (that also means it won't use the newest drivers) - that's not a fault - it's by design :slight_smile: .

19.07 = continous stable branch
19.07.x = fixed stable version

Btw. I currently don't maintain a master branch for R2100 or RM2100 support. I'm just optimizing the 19.07 support. Hopefully we will get to a point where we can ask for an official PR soon.

The walkthrough tutorial from impulse is very good. Do you want to use his precompiled images or do you want to try it with our newest versions? If somebody needs it I could also precompile images for R2100 (black version). Of course the turorial from impulse still applies to these images exactly the same way.

I'd probably go with the newer version for the black router. This is the first time I'll be trying OpenWrt so I' ll need it with all the important add ons etc. Once I get my hands on the router I will keep in touch with Emirefek about the testing. Since this thread is for developers I will be contacting you through PM. Don't wanna flood your discussions ^^

1 Like

I own this router too, I could help with the testing process.

Oh nice. Are you still at official firmware? Are you attempted to unlock bootloader before?

Yeah it still on stock firmware.

1 Like

Hi guys!
I have one question:
Should http server already be preinstalled on my Debian laptop before installation openwrt or it is not necessary? See this link!
Requirements:

  1. A computer with an ethernet adapter
  2. Two ethernet cables
  3. python (python3 was used in this example), scapy, netcat, a statically compiled mipsel busybox binary and a http server

You can just use a python webserver for that:

Go to the directory where you put your images and then use this command from that directory:
python -m http.server 80

It will start a http server with the current directory as the home path. As soon as you stop the process the http server will be down and stopped so nothing else necessary to configure :slight_smile:
That's much easier than setting up a dedicated http server only for flashing these small images.

1 Like

Thank you! I not have black cylinder. Π‘an I use this guide and files (busybox) for my Xiaomi Redmi Router AC2100?