What's new

Tutorial Notion R281 OpenWrt Test Builds

Status
Not open for further replies.

bjarnco32

Forum Guru
Joined
Mar 28, 2020
Posts
689
Solutions
7
Reaction
8,355
Points
1,065
Here's an OpenWrt test build for the Notion R281.

DISCLAIMER: Please note that I'm providing these builds WITHOUT WARRANTY OR SUPPORT. FLASH AT YOUR OWN RISK, I TAKE NO RESPONSIBILITY IF IT BREAKS YOUR DEVICE. (I have already flashed these in mine before I made it available.)

It is already implied that if you flash this, then you are also comfortable with unbricking the device, should anything go wrong. I'm providing these builds to aid in getting the modem fully supported in vanilla OpenWrt. If you find something is not working concerning the builds, then let me know and I'll see what I can do. For other inquiries like 'how do I install this <package>, how do I configure for <anything>...' then Google and the countless other forums are your bestfriends for those.

Now this doesn't come totally without support, and here are somethings you need to remember, so PLEASE READ CAREFULLY:

1. The unit comes in two configurations. To check for this, gain root shell access and run 'cat /proc/cmdline'. If you see 'root=/dev/mtdblock5', then your unit is already configured and ready to be migrated to OpenWrt. If not, then you need to run

Code:
fw_setenv bootargs console=ttyS1,56700n8 root=/dev/mtdblock5

in the terminal, or in u-boot just replace fw_setenv with setenv.

TAKE NOTE: With the recent release of 5.3+ firmware for Smart Bro, there has been a bootloader update preventing tftp recovery. For such units, there is nothing much you can do if you can't regain tftp function in the bootloader. The one thing you can do is flash a bootloader version from before this change was made, but note that flashing this may render your device FULLY BRICKED, and the only way to recover would be to desolder the flash chip and reprogram it. Let me know if you wish to take this risk.

2. In case you want to return to stock, then it is easy to do so via the recovery mode. Here's how:

a. Connect the unit to your computer via ethernet cable. Set a static address of 10.10.10.3/24 to the wired interface.
b. Run a tftp server, pointing it to where your 'firmware.bin' file is located. (This file is 38.8MiB in size, which is an mtd dump of the mtd4: firmware1 or mtd5: firmware2).
c. Hold the reset button at the back of the unit before turning it on. Keep pressing it until it automatically runs recovery mode where it will load the 'firmware.bin' file via tftp at 10.10.10.3. You will know this already happening when you see activity over the LAN led or your RJ45 port, or the transfer progress in the server you're using, if there is any.
d. Wait for the unit to finish downloading and flashing the file, and when it restarts, then you have recovered the unit on stock firmware.

3. If you wish to help out with getting the modem supported in OpenWrt, then do this in the terminal, or luci, wherever you're comfortable:

Code:
uci set network.wwan=interface
uci set network.wwan.proto='ncm'
uci set network.wwan.auto='0'
uci set network.wwan.device='/dev/ttyACM0'
uci set network.wwan.pdptype='IP'
uci set network.wwan.apn='smartlte'
uci set network.wwan.ipv6='auto'
uci set network.wwan.delay='5'
uci set network.wwan.pincode='<pincode>' # if your SIM has PIN1 enabled, replace <pincode>
uci commit network
ifup wwan

You will see from syslog that it is failing to send AT commands to the modem, thus unable to initialize and bring up the connection to the internet. You will need to edit /etc/gcom/ncm.json under the "marvell" section (use vi or nano) with the correct commands sequence, from initialize, configure, connect, and disconnect, to achieve this. If you find this out and share this information, then me and many others will be very grateful. After you have edited it, then restart the wwan network, or restart the modem then restart wwwan. You can also send AT commands directly to the modem for manual debugging like this:

Code:
sms_tool -d /dev/ttyACM0 at '<at-command>' # replace <at-command> with the actual command like AT+CFUN?

4. You can install packages from snapshot, or the 22.03-rc5 release, PROVIDED that the package you are installing DOES NOT INSTALL KERNEL MODULES. Those kernel modules would need to be integrated into my test builds. I have included kmod-wireguard for wireguard (installed) and kmod-tun for openvpn (not-installed). It will be much better if you install from the 22.03-rc5 release as this snapshot is a couple of commits ahead of 22.03-rc5 when it was branched off and tagged as rc5.

5. I have converted LAN1 on this unit into WAN, so you can use it as a router. I have also implemented the '2Gbps CPU bandwidth' achievement using this PR: You do not have permission to view the full content of this post. Log in or register now. (let's hope it gets merged soon as it makes for a great improvement). You can readily test this if you have gigabit fibre connection. Just connect it to LAN1/WAN. Please report your findings when you do so.

6. With this test build, it is based on vanilla OpenWrt. So apart from a very basic network setup of involving LAN and WAN, and disabled wireless interfaces, you will have to setup everything on your own. THIS IS NOT FOR THE FAINT OF HEART. You will need to put in your work, as I have put in mine into getting this unit supported under mainline OpenWrt. You will have to consult online documentation, or make your own researches, to do what it is you wish to do, you can start here: You do not have permission to view the full content of this post. Log in or register now.

QUESTION: Why doesn't my 3G/4G Information page look like yours below, or why doesn't the Preferred LTE bands page work?
ANSWER: That's because I have modified several files for it to work with this modem, and I have not yet submitted those changes upstream. Regarding the preferred LTE bands, that would need a change as well to a compatible AT command that works with the modem, which I have not yet done. Anyway, these are just cosmetic issues, as you can still directly send commands to the modem in the terminal.

7. I have mentioned before that with the migration from stock firmware to OpenWrt, open-source wireless drivers are now available. It brings in Wi-Fi Wave2, WPA3, 802.11r (band-steering), and Mesh Wi-Fi improvements, to name a few. Have fun learning and getting these technologies to work within your network setup.

I have already submitted patches to support the Notion R281 in upstream OpenWrt. Let's wait until it is accepted, then it will be available for download from the site.

Without further ado, here's how you install OpenWrt:

Stock firmware runs an old OpenWrt Chaos Calmer release. Unfortunately,
because of the changes in the flash layout, this cannot be sysupgrade-d
readily from stock. Installation will be via tftpboot in the bootloader.
Connect the USB-TTL serial converter as follows, indicated on the board
by the APTX marking near three round PCB pads:

(GND) (RX) (TX) APTX

Baud rate is 57600.

1. Connect the computer to the device via ethernet cable.
Set a static adddress of 10.10.10.3/24 to the wired interface.
2. Start the TFTP server, point it to where the initramfs image is
located. Rename the image to 'test.bin'.
3. Turn on the device. There will be a three-second delay before the
default 'Boot system code via flash' is selected.
4. Interrupt the boot process by pressing 1 to 'System Load Linux to
SDRAM via TFTP'.
5. Press enter to accept the default 'Input device IP (10.10.10.123)'.
6. Press enter to accept the default 'Input server IP (10.10.10.3)'.
7. Press enter to accept the default 'Input Linux Kernel filename ()',
or enter 'test.bin'.
8. Wait for the initramfs to load.
9. Reconnect the wired interface to any LAN ports of the device
via dhcp.
9. Flash the sysupgrade image at
You do not have permission to view the full content of this post. Log in or register now.

<link removed by the moderator>
 
Last edited by a moderator:
si jerome at zander palang yata ang alam kun nakagawa ng own openwrt na hinde based sa stock
ung sa zte si You do not have permission to view the full content of this post. Log in or register now. ang gumawa. (para sa MF286R/A)

bjarnco32 meron na basic support si Leo-PL para sa pxa1826 modem. gamit kasi yan sa ZTE MF286R. medyo custom ZTE FW lang sa modem ng ZTE MF286R.

also sa kernel panic, anong values ng pcie sa device tree mo? pwede ka mag tftpboot ng ibang firmware para mag test.
 
Last edited:
ung sa zte si You do not have permission to view the full content of this post. Log in or register now. ang gumawa. (para sa MF286R/A)

bjarnco32 meron na basic support si Leo-PL para sa pxa1826 modem. gamit kasi yan sa ZTE MF286R. medyo custom ZTE FW lang sa modem ng ZTE MF286R.

also sa kernel panic, anong values ng pcie sa device tree mo? pwede ka mag tftpboot ng ibang firmware para mag test.l
Yes you can try tftpboot-ing images, but I don't need to do that, when I could git clone the Openwrt repo and view the device tree files and image makefiles of those images, and select from them the most suitable values for this device.

Have you tried porting the device yourself? Because if you have, then you would already know answer to your question regarding the pcie section of the device tree I'm using, which is very common among devices under the same soc.
 
Yes you can try tftpboot-ing images, but I don't need to do that, when I could git clone the Openwrt repo and view the device tree files and image makefiles of those images, and select from them the most suitable values for this device.

Have you tried porting the device yourself? Because if you have, then you would already know answer to your question regarding the pcie section of the device tree I'm using, which is very common among devices under the same soc.
not this device but other mt76xx devices. done a few complete ports.

certain values such as the freq limit can be different between devices in the device tree.

I was planning on getting an r281 to do a port but if you’re doing it it’s fine :)

tftpbooting other models was more for testing which one works with wifi and basing things around that. (i dont do this but is just a recommendation)
 
not this device but other mt76xx devices. done a few complete ports.

certain values such as the freq limit can be different between devices in the device tree.

I was planning on getting an r281 to do a port but if you’re doing it it’s fine :)

tftpbooting other models was more for testing which one works with wifi and basing things around that. (i dont do this but is just a recommendation)
Have you submitted patches for those ports you did to be mainlined in Openwrt, or are these just private ports?
 
The problem with this one is the lack of support and the devices it not currently known to many. Can you upload the pictures of the UART pins of the board? Thank you.

Below are the list of packages currently installed on the r281.
8021xd - 1 DiagSaver - 1.0-0 DiagTransfer - 2019-1.0 RdpTransfer - 2019-1.0 applets - 0.1-1 atcmd - 1.0-0 ated_ext - 1 base-files - 157.2-unknown block-mount - 2015-02-25.1-914b023e71559e033ec5a1f9840511eb1ccaf386 bndstrg_plus - 1 busybox - 1.23.2-1 cgi - 0.1-1 con_mgr - 2014-1 ddns-scripts - 1.0.0-23 diag - 2014-1 dnsmasq - 2.80-1 dropbear - 2015.67-1 ebtables - 2.0.10-4-3 ebtables-utils - 2.0.10-4-3 ethstt - 1 firewall - 2014-09-19 flash - 1 fstools - 2015-02-25.1-914b023e71559e033ec5a1f9840511eb1ccaf386 gpio - 1 gre - 1-3 hwnat - 4200 ip - 4.0.0-1 ip6tables - 1.4.21-1 ip6tables-extra - 1.4.21-1 ip6tables-mod-nat - 1.4.21-1 iperf3 - 3.0.11-1 iptables - 1.4.21-1 iptables-mod-conntrack-extra - 1.4.21-1 iptables-mod-ipopt - 1.4.21-1 jshn - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb jsonfilter - 2014-06-19-cdc760c58077f44fc40adbbe41e1556a67c1b9a9 kernel - 3.10.108-1-76e04d92c40eac6f55ae4936ddf571fc kmod-antenna-gpio - 3.10.108-1 kmod-atm - 3.10.108-1 kmod-bridge - 3.10.108-1 kmod-crypto-aead - 3.10.108-1 kmod-crypto-arc4 - 3.10.108-1 kmod-crypto-core - 3.10.108-1 kmod-crypto-ecb - 3.10.108-1 kmod-crypto-hash - 3.10.108-1 kmod-crypto-manager - 3.10.108-1 kmod-crypto-null - 3.10.108-1 kmod-crypto-pcompress - 3.10.108-1 kmod-crypto-sha1 - 3.10.108-1 kmod-ebtables - 3.10.108-1 kmod-fast-classifier - 3.10.108-1 kmod-fs-ext4 - 3.10.108-1 kmod-fs-msdos - 3.10.108-1 kmod-fs-vfat - 3.10.108-1 kmod-fuse - 3.10.108-1 kmod-gre - 3.10.108-1 kmod-hw_nat - 3.10.108-1 kmod-hw_wdg - 3.10.108-1 kmod-input-core - 3.10.108-1 kmod-ip6tables - 3.10.108-1 kmod-ip6tables-extra - 3.10.108-1 kmod-ipt-conntrack - 3.10.108-1 kmod-ipt-conntrack-extra - 3.10.108-1 kmod-ipt-core - 3.10.108-1 kmod-ipt-ipopt - 3.10.108-1 kmod-ipt-nat - 3.10.108-1 kmod-ipt-nat-extra - 3.10.108-1 kmod-ipt-nat6 - 3.10.108-1 kmod-ipt-nathelper - 3.10.108-1 kmod-ipt-nathelper-extra - 3.10.108-1 kmod-ipt_trigger - 3.10.108-1 kmod-iptunnel - 3.10.108-1 kmod-ipv6 - 3.10.108-1 kmod-key-gpio - 3.10.108-1 kmod-l2tp - 3.10.108-1 kmod-led-gpio - 3.10.108-3 kmod-leds-gpio - 3.10.108-1 kmod-ledtrig-netdev - 3.10.108-1 kmod-lib-crc-ccitt - 3.10.108-1 kmod-lib-crc16 - 3.10.108-1 kmod-lib-textsearch - 3.10.108-1 kmod-llc - 3.10.108-1 kmod-macvlan - 3.10.108-1 kmod-mii - 3.10.108-1 kmod-mppe - 3.10.108-1 kmod-mt7603-ko - 3.10.108+MT7603e_LinuxAP_V4.1.0.0_20180725-1 kmod-mt7663-ko - 3.10.108+MT7663_LinuxAP_V6.0.1.0_20190222.tar.bz2-1 kmod-mtk-gdma - 3.10.108-1 kmod-nls-base - 3.10.108-1 kmod-nls-cp437 - 3.10.108-1 kmod-nls-cp850 - 3.10.108-1 kmod-nls-iso8859-1 - 3.10.108-1 kmod-nls-iso8859-15 - 3.10.108-1 kmod-nls-utf8 - 3.10.108-1 kmod-ppp - 3.10.108-1 kmod-pppoa - 3.10.108-1 kmod-pppoe - 3.10.108-1 kmod-pppol2tp - 3.10.108-1 kmod-pppox - 3.10.108-1 kmod-pptp - 3.10.108-1 kmod-rdm - 3.10.108-1 kmod-sched - 3.10.108-1 kmod-sched-connmark - 3.10.108-1 kmod-sched-core - 3.10.108-1 kmod-scsi-core - 3.10.108-1 kmod-scsi-generic - 3.10.108-1 kmod-serial-8250 - 3.10.108-1 kmod-shortcut-fe - 3.10.108-1 kmod-shortcut-fe-cm - 3.10.108-1 kmod-slhc - 3.10.108-1 kmod-stp - 3.10.108-1 kmod-udptunnel4 - 3.10.108-1 kmod-udptunnel6 - 3.10.108-1 kmod-usb-acm - 3.10.108-1 kmod-usb-core - 3.10.108-1 kmod-usb-net - 3.10.108-1 kmod-usb-net-cdc-ether - 3.10.108-1 kmod-usb-net-rndis - 3.10.108-1 kmod-usb-printer - 3.10.108-1 kmod-usb-storage - 3.10.108-1 kmod-usb-storage-extras - 3.10.108-1 kmod-usb2 - 3.10.108-1 kmod-usb3 - 3.10.108-1 led_trigger - 1.0-0 libblobmsg-json - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb libblobmsg-xml - 0.1-1 libc - 0.9.33.2-1 libcgi - 1.0 libgcc - 4.8-linaro-1 libip4tc - 1.4.21-1 libip6tc - 1.4.21-1 libipt_trigger - 2014-1 libiwinfo - 2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371 libiwinfo-lua - 2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371 libjson-c - 0.12-1 libjson-script - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb liblog - 1.0-1 liblua - 5.1.5-1 libml_utils - 1.0-1 libmxml - 2.8-1 libnfnetlink - 1.0.1-1 libnl-tiny - 0.1-5 libnvram - 1 libopenssl - 1.0.2h-1 libpcap - 1.5.3-1 libpcre - 8.41-2 libpolarssl - 1.3.14-1 libprop2uci - 1.0-1 libpthread - 0.9.33.2-1 librt - 0.9.33.2-1 libstdcpp - 4.8-linaro-1 libubox - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb libubus - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e libubus-lua - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e libuci - 2015-08-27.1-1 libuci-lua - 2015-08-27.1-1 libusb-1.0 - 1.0.19-1 libuuid - 2.25.2-4 libxml2 - 2.9.2-2 libxtables - 1.4.21-1 lighttpd - 1.4.35-2 lighttpd-mod-auth - 1.4.35-2 lighttpd-mod-cgi - 1.4.35-2 lighttpd-mod-compress - 1.4.35-2 lighttpd-mod-redirect - 1.4.35-2 lighttpd-mod-setenv - 1.4.35-2 lighttpd-mod-webdav - 1.4.35-2 linux-atm - 2.5.2-5 logcat - 1.0-1 logd - 2015-11-22-c086167a0154745c677f8730a336ea9cf7d71031 lte-telephony - 2014-1 lua - 5.1.5-1 memtester - 4.3.0-1 mii_mgr - 1 miniupnpd - 1.8.20140523-4 mpstat - 1 mt7603-scripts - MT7603e_LinuxAP_V4.1.0.0_20180725 mt7663-scripts - MT7663_LinuxAP_V6.0.1.0_20190222.tar.bz2 mtd - 21 mtk-base-files - 1-unknown mwan3 - 1.5-10 netifd - 2015-12-16-245527193e90906451be35c2b8e972b8712ea6ab nodogsplash - 1.0.1-2 odhcp6c - 2014-12-10-722226c4f1d45c8bf4ac9189523738abcf7d648f odhcpd - 2014-09-25-a6e2953843eaf6c93764f9feef10466e7a84ec85 omcproxy - 3 openssl-util - 1.0.2h-1 opkg - 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9 ota - 0.1-1 phonebook - 1.0-1 ppp - 2.4.7-6 ppp-mod-pppoa - 2.4.7-6 ppp-mod-pppoe - 2.4.7-6 ppp-mod-pppol2tp - 2.4.7-6 ppp-mod-pptp - 2.4.7-6 procd - 2015-10-29.1-d5fddd91b966424bb63e943e789704d52382cc18 prop2uci - 1.0-1 qdma - 1 qos - 2014-1 regs - 1 resolveip - 2 ril - 1.0-1 router_firewall - 2014-1 router_settings - 2014-1 rpcd - 2016-06-30-23417e94d25570e6d62542bac46edd51e8e0243a rpcd-mod-diagnostic - 2016-06-30-23417e94d25570e6d62542bac46edd51e8e0243a sim_mgr - 0.1-1 sms - 1.0-1 switch - 1 tc - 4.0.0-1 tcpdump - 4.5.1-4 tr069 - 1.0-1 traffic_stat - 2014-1 uboot-envtools - 2014.10-2 ubox - 2015-11-22-c086167a0154745c677f8730a336ea9cf7d71031 ubus - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e ubusd - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e uci - 2015-08-27.1-1 uci2dat - 1 uclibcxx - 0.2.4-1 usign - 2015-05-08-cf8dcdb8a4e874c77f3e9a8e9b643e8c17b19131 ver_cfg - 0.1-1 wanrouter - 1.0-0 watchdog - 1 wifi-l1profile - 1-unknown wificonf - 1 wifimonitor - 1.0-1 wireless - 2.0-1 wireless-tools - 29-5 wtdops - 1.0-1 xl2tpd - devel-20151125-3 zlib - 1.2.8-1
 
Last edited:
Wouldn't it have less bugs if you first build it with the same version of openwrt that it comes with "chaos calmer" aka openwrt 15.05 - 15.05.1?
 
@bjarnco32
Once this port is complete, will it unlock the modem too?
Anyway, do you have a small clue on unlocking zte mf286ra modem?

support lods
This only modifies the router side of the device. The LTE module in the PCIe slot is unaltered.

Wouldn't it have less bugs if you first build it with the same version of openwrt that it comes with "chaos calmer" aka openwrt 15.05 - 15.05.1?
You can't build it the same way without access to the same source code as in stock. Besides, that release is ancient, and modern OpenWrt builds are the way forward.
 
This only modifies the router side of the device. The LTE module in the PCIe slot is unaltered.


You can't build it the same way without access to the same source code as in stock. Besides, that release is ancient, and modern OpenWrt builds are the way forward.
Whats your take on the dev firmware on the past versions on the r281 that only works with the USB mode? Is it stored on the same storage chip with the deployment firmware?

Ill try building an image with the same packages.
 
Whats your take on the dev firmware on the past versions on the r281 that only works with the USB mode? Is it stored on the same storage chip with the deployment firmware?

Ill try building an image with the same packages.
you can just dump the firmware on the r281 if that really matters to you. you can either rebuild it to something flashable or flash it via uboot with offsets. (you need to note down the offsets)
 
Please note that the installation of this firmware will be like MF286RA. Even though based on OpenWrt devices like R051 and R281, the flash layout is different, so you can't simply scp the image to the router and sysupgrade there.

You need to load the initramfs kernel via tftp then sysupgrade from there. This means you need to interrupt the boot sequence from u-boot, which means mandatory serial access via USB to TTL. I recommend CP2102 based USB-TTL serial converters.
 
Status
Not open for further replies.

Similar threads

Back
Top