mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
700c47a5f6
Light and small router ( In Poland operators sells together with MC7010 outdoor modem to provide WIFI inside home). Device specification SoC Type: Qualcomm IPQ4019 RAM: 256 MiB Flash: 128 MiB SPI NAND (Winbond W25N01GV) ROM: 2MiB SPI Flash (GD25Q16) Wireless 2.4 GHz (IP4019): b/g/n, 2x2 Wireless 5 GHz (QCA9982): a/n/ac, 3x3 Ethernet: 2xGbE (WAN/LAN1, LAN2) USB ports: No Button: 2 (Reset/WPS) LEDs: 3 external leds: Power (blue) , WiFI (blue and red), SMARTHOME (blue and red) and 1 internal (blue) -- NOTE: Power controls all external led (if down ,all others also not lights even signal is up) Power: 5VDC, 2,1A via USB-C socket Bootloader: U-Boot On board ZWave and Zigbee (EFR32 MG1P232GG..) modules ( not supported by orginal software ) Installation 1.Open MF18A case by ungluing rubber pad under the router and unscrew screws, and connect to serial console port, with the following pinout, starting from pin 1, which is the topmost pin when the board is upright (reset button on the bottom) : VCC (3.3V). Do not use unless you need to source power for the converer from it. TX RX GND Default port configuration in U-boot as well as in stock firmware is 115200-8-N-1. 2.Place OpenWrt initramfs image for the device on a TFTP in the server's root. This example uses Server IP: 192.168.0.2 3.Connect TFTP server to RJ-45 port (WAN/LAN1). 4.Power on MF18A , stop in u-Boot (using ESC button) and run u-Boot commands: setenv serverip 192.168.0.2 setenv ipaddr 192.168.0.1 set fdt_high 0x85000000 tftpboot 0x84000000 openwrt-ipq40xx-generic-zte_mf18a-initramfs-fit-zImage.itb bootm 0x84000000 5.Please make backup of original partitions, if you think about revert to stock, specially mtd8 (Web UI) and mtd9 (rootFS). Use /tmp as temporary storage and do: WEB PARITION cat /dev/mtd8 > /tmp/mtd8.bin scp /tmp/mtd8.bin root@YOURSERVERIP:/ rm /tmp/mtd8.bin ROOT PARITION cat /dev/mtd9 > /tmp/mtd9.bin scp /tmp/mtd9.bin root@YOURSERVERIP:/ rm /tmp/mtd9.bin If you are sure ,that you want to flash openwrt, from uBoot, before bootm, clean rootfs partition with command: nand erase 0x1800000 0x1D00000 6.Login via ssh or serial and remove stock partitions (default IP 192.168.1.1): ubiattach -m 9 # it could return error if ubi was attached before or rootfs part was erased before ubirmvol /dev/ubi0 -N ubi_rootfs # it could return error if rootfs part was erased before ubirmvol /dev/ubi0 -N ubi_rootfs_data # some devices doesn't have it 7. Install image via : sysupgrade -n /tmp/openwrt-ipq40xx-generic-zte_mf18a-squashfs-sysupgrade.bin previously wgeting bin. Sometimes it could print ubi attach error, but please ignore it if process goes forward. Back to Stock (!!! need original dump taken from initramfs !!!) ------------- Place mtd8.bin and mtd9.bin initramfs image for the device on a TFTP in the server's root. This example uses Server IP: 192.168.0.2 Connect serial console (115200,8n1) to serial console connector . Connect TFTP server to RJ-45 port (WAN/LAN1). rename mtd8.bin to web.img and mtd9.bin to root_uImage_s Stop in u-Boot (using ESC button) and run u-Boot commands: This will erase Web and RootFS: nand erase 0x1000000 0x800000 nand erase 0x1800000 0x1D00000 This will restore RootFS: tftpboot 0x84000000 root_uImage_s nand erase 0x1800000 0x1D00000 nand write 0x84000000 0x1800000 0x1D00000 This will restore Web Interface: tftpboot 0x84000000 web.img nand erase 0x1000000 0x800000 nand write 0x84000000 0x1000000 0x800000 After first boot on stock firwmare, do a factory reset. Push reset button for 5 seconds so all parameters will be reverted to the one printed on label on bottom of the router As reference was taken MF289F support by Giammarco Marzano stich86@gmail.com and MF286D by Pawel Dembicki paweldembicki@gmail.com Signed-off-by: Marcin Gajda <mgajda@o2.pl>
231 lines
4.8 KiB
Bash
231 lines
4.8 KiB
Bash
PART_NAME=firmware
|
|
REQUIRE_IMAGE_METADATA=1
|
|
|
|
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
|
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
|
|
|
platform_check_image() {
|
|
case "$(board_name)" in
|
|
asus,rt-ac42u |\
|
|
asus,rt-ac58u)
|
|
local ubidev=$(nand_find_ubi $CI_UBIPART)
|
|
local asus_root=$(nand_find_volume $ubidev jffs2)
|
|
|
|
[ -n "$asus_root" ] || return 0
|
|
|
|
cat << EOF
|
|
jffs2 partition is still present.
|
|
There's probably no space left
|
|
to install the filesystem.
|
|
|
|
You need to delete the jffs2 partition first:
|
|
# ubirmvol /dev/ubi0 --name=jffs2
|
|
|
|
Once this is done. Retry.
|
|
EOF
|
|
return 1
|
|
;;
|
|
zte,mf18a |\
|
|
zte,mf286d |\
|
|
zte,mf289f)
|
|
CI_UBIPART="rootfs"
|
|
local mtdnum="$( find_mtd_index $CI_UBIPART )"
|
|
[ ! "$mtdnum" ] && return 1
|
|
ubiattach -m "$mtdnum" || true
|
|
local ubidev="$( nand_find_ubi $CI_UBIPART )"
|
|
local ubi_rootfs=$(nand_find_volume $ubidev ubi_rootfs)
|
|
local ubi_rootfs_data=$(nand_find_volume $ubidev ubi_rootfs_data)
|
|
|
|
[ -n "$ubi_rootfs" ] || [ -n "$ubi_rootfs_data" ] || return 0
|
|
|
|
cat << EOF
|
|
ubi_rootfs partition is still present.
|
|
|
|
You need to delete the stock partition first:
|
|
# ubirmvol /dev/ubi0 -N ubi_rootfs
|
|
Please also delete ubi_rootfs_data, if exist:
|
|
# ubirmvol /dev/ubi0 -N ubi_rootfs_data
|
|
|
|
Once this is done. Retry.
|
|
EOF
|
|
return 1
|
|
;;
|
|
esac
|
|
return 0;
|
|
}
|
|
|
|
askey_do_upgrade() {
|
|
local tar_file="$1"
|
|
|
|
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
|
board_dir=${board_dir%/}
|
|
|
|
tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
|
|
|
|
nand_do_upgrade "$1"
|
|
}
|
|
|
|
zyxel_do_upgrade() {
|
|
local tar_file="$1"
|
|
|
|
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
|
board_dir=${board_dir%/}
|
|
|
|
tar Oxf $tar_file ${board_dir}/kernel | mtd write - kernel
|
|
|
|
if [ -n "$UPGRADE_BACKUP" ]; then
|
|
tar Oxf $tar_file ${board_dir}/root | mtd -j "$UPGRADE_BACKUP" write - rootfs
|
|
else
|
|
tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
|
|
fi
|
|
}
|
|
|
|
platform_do_upgrade_mikrotik_nand() {
|
|
local fw_mtd=$(find_mtd_part kernel)
|
|
fw_mtd="${fw_mtd/block/}"
|
|
[ -n "$fw_mtd" ] || return
|
|
|
|
local board_dir=$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$')
|
|
board_dir=${board_dir%/}
|
|
[ -n "$board_dir" ] || return
|
|
|
|
local kernel_len=$(tar xf "$1" ${board_dir}/kernel -O | wc -c)
|
|
[ -n "$kernel_len" ] || return
|
|
|
|
tar xf "$1" ${board_dir}/kernel -O | ubiformat "$fw_mtd" -y -S $kernel_len -f -
|
|
|
|
CI_KERNPART="none"
|
|
nand_do_upgrade "$1"
|
|
}
|
|
|
|
platform_do_upgrade() {
|
|
case "$(board_name)" in
|
|
8dev,jalapeno |\
|
|
aruba,ap-303 |\
|
|
aruba,ap-303h |\
|
|
aruba,ap-365 |\
|
|
avm,fritzbox-7530 |\
|
|
avm,fritzrepeater-1200 |\
|
|
avm,fritzrepeater-3000 |\
|
|
buffalo,wtr-m2133hp |\
|
|
cilab,meshpoint-one |\
|
|
edgecore,ecw5211 |\
|
|
edgecore,oap100 |\
|
|
engenius,eap2200 |\
|
|
glinet,gl-a1300 |\
|
|
glinet,gl-ap1300 |\
|
|
luma,wrtq-329acn |\
|
|
mobipromo,cm520-79f |\
|
|
netgear,wac510 |\
|
|
p2w,r619ac-64m |\
|
|
p2w,r619ac-128m |\
|
|
qxwlan,e2600ac-c2)
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
glinet,gl-b2200)
|
|
CI_KERNPART="0:HLOS"
|
|
CI_ROOTPART="rootfs"
|
|
CI_DATAPART="rootfs_data"
|
|
emmc_do_upgrade "$1"
|
|
;;
|
|
alfa-network,ap120c-ac)
|
|
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
|
|
if [ "$part" = "rootfs1" ]; then
|
|
fw_setenv active 2 || exit 1
|
|
CI_UBIPART="rootfs2"
|
|
else
|
|
fw_setenv active 1 || exit 1
|
|
CI_UBIPART="rootfs1"
|
|
fi
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
asus,map-ac2200)
|
|
CI_KERNPART="linux"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
asus,rt-ac42u |\
|
|
asus,rt-ac58u)
|
|
CI_KERNPART="linux"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
cellc,rtl30vw)
|
|
CI_UBIPART="ubifs"
|
|
askey_do_upgrade "$1"
|
|
;;
|
|
compex,wpj419)
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
google,wifi)
|
|
export_bootdevice
|
|
export_partdevice CI_ROOTDEV 0
|
|
CI_KERNPART="kernel"
|
|
CI_ROOTPART="rootfs"
|
|
emmc_do_upgrade "$1"
|
|
;;
|
|
linksys,ea6350v3 |\
|
|
linksys,ea8300 |\
|
|
linksys,mr8300 |\
|
|
linksys,whw01)
|
|
platform_do_upgrade_linksys "$1"
|
|
;;
|
|
meraki,mr33 |\
|
|
meraki,mr74)
|
|
CI_KERNPART="part.safe"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
mikrotik,cap-ac|\
|
|
mikrotik,hap-ac2|\
|
|
mikrotik,hap-ac3-lte6-kit|\
|
|
mikrotik,lhgg-60ad|\
|
|
mikrotik,sxtsq-5-ac|\
|
|
mikrotik,wap-ac|\
|
|
mikrotik,wap-ac-lte|\
|
|
mikrotik,wap-r-ac)
|
|
[ "$(rootfs_type)" = "tmpfs" ] && mtd erase firmware
|
|
default_do_upgrade "$1"
|
|
;;
|
|
mikrotik,hap-ac3)
|
|
platform_do_upgrade_mikrotik_nand "$1"
|
|
;;
|
|
netgear,rbr50 |\
|
|
netgear,rbs50 |\
|
|
netgear,srr60 |\
|
|
netgear,srs60)
|
|
platform_do_upgrade_netgear_orbi_upgrade "$1"
|
|
;;
|
|
openmesh,a42 |\
|
|
openmesh,a62 |\
|
|
plasmacloud,pa1200 |\
|
|
plasmacloud,pa2200)
|
|
PART_NAME="inactive"
|
|
platform_do_upgrade_dualboot_datachk "$1"
|
|
;;
|
|
sony,ncp-hg100-cellular)
|
|
sony_emmc_do_upgrade "$1"
|
|
;;
|
|
teltonika,rutx10 |\
|
|
zte,mf18a |\
|
|
zte,mf286d |\
|
|
zte,mf289f)
|
|
CI_UBIPART="rootfs"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
zyxel,nbg6617)
|
|
zyxel_do_upgrade "$1"
|
|
;;
|
|
*)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
platform_copy_config() {
|
|
case "$(board_name)" in
|
|
glinet,gl-b2200 |\
|
|
google,wifi)
|
|
emmc_copy_config
|
|
;;
|
|
esac
|
|
return 0;
|
|
}
|