Hi. I bought a used mf286r router to flash openwrt but encountered an issue. First I tried the url filtering methods but neither seemed to work. Then I connected a USB serial converter (I used a nodemcu with the enable pin shorted, it has a cp2102 chip) and tried interrupting the boot process. It does output "Hit any key to stop autoboot:" but pressing esc or other keys doesn't seem to do anything. The physical connection to both rx and tx pins were checked with continuity mode. I would be grateful for any help with the flashing process. The router has Nordic b08 firmware.
the MFs are picky with their USB TTLs, try another one, if you got one.
Thanks, it seems the serial adapter was the issue - connecting an orangepi directly worked. However, it seems as though it's a different flash layout
dev: size erasesize name
mtd0: 000a0000 00020000 "fota-flag"
mtd1: 00080000 00020000 "art"
mtd2: 00080000 00020000 "mac"
mtd3: 01660000 00020000 "ubiconcat0"
mtd4: 00400000 00020000 "kernel"
mtd5: 06400000 00020000 "ubiconcat1"
mtd6: 000a0000 00010000 "u-boot"
mtd7: 00020000 00010000 "u-boot-env"
mtd8: 00140000 00010000 "reserved1"
mtd9: 07a60000 00020000 "ubi"
Also, there is no modem tab in the initramfs luci and I can't backup 2 partitions because the usb doesn't automount and the partitions are too big (~100mb) to be stored on the router and downloaded. So, is it impossible to flash openwrt on my router?
that's not a problem, it's an interim image, but the live one will probably lack it too, until you install the modules required.
https://openwrt.org/toh/zte/mf286r#basic_configuration
are you referring to the initramfs or stock ?
https://openwrt.org/toh/zte/mf286r#method_2_-_using_stock_firmware
as the wiki page says, they're needed if you ever want to go back to stock, not required for flashing openwrt.
Yeah I misunderstood the instructions and booted initramfs when I should have entered the stock shell. The partitions are actually identical. Either way, maybe someone will find this backup solution I quickly created useful (using tftp for some reason resulted in wrong checksums):
server (pc connected via lan or i guess wifi) python code:
from flask import Flask, request, jsonify
import os
app = Flask(__name__)
# Directory where uploaded files will be saved
UPLOAD_FOLDER = 'uploads'
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
@app.route('/', methods=['GET'])
def index():
return "File Upload Server"
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return jsonify({"error": "No file part in the request"}), 400
file = request.files['file']
if file.filename == '':
return jsonify({"error": "No selected file"}), 400
if file:
filename = file.filename
file_path = os.path.join(UPLOAD_FOLDER, filename)
file.save(file_path)
return jsonify({"message": f"File '{filename}' uploaded successfully"}), 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000)
command to run in stock shell: (replace ip)
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; do cat /dev/mtd$i > mtd$i && curl -F "file=@mtd$i" http://192.168.0.118:8000/upload && rm mtd$i; done
This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.