mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-03-06 10:30:36 +01:00
This pull request is based on - the discussions in https://forum.openwrt.org/t/adding-openwrt-support-for-linksys-mr6350 - https://github.com/openwrt/openwrt/pull/11405 which added support for similar devices. Device Specs: - IPQ4019 - Quad Core CPU - 256 MB RAM - 256 MB FLASH - 4 LAN ports, 1 WAN port - 2.4GHz (802.11n) and 5GHz (802.11c) wifi - 3 LEDs (Red, blue, green) which are routed to one indicator at the top of the case - 2 buttons (Reset, WPS) Disassembling the device: - There are 4 screws at the bottom of the device which must be removed - Two are under the fron rubber feets - Two are under the labels in the back (corner next to the rear rubber feets) Serial interface: - The serial interface is already populated on the device with a 6-pin header - Pin 1 is next to the heatsink - Pinout: 1: 3.3V, 2: TX, 3: RX, 4: unknown, 5: GND, 6: GND - Settings: 115200, 8N1 Migrating to OpenWrt requires multiple steps: - Load and boot the initramfs image - Adapt U-Boot settings to support bigger kernels - Flash the sysupgrade image Load and boot initramfs: - Connect serial interface - Set up a TFTP server on IP 192.168.1.254 - Copy openwrt-ipq40xx-generic-linksys_mr6350-initramfs-zImage.itb to TFTP server - Rename file to C0A80101.img - Boot up the device and stop in U-Boot - Run the following U-Boot commands after a link has been established: tftp bootm - Initramfs image is started now. Adapt U-Boot settings to support bigger kernels: - Run "fw_printenv" in the initramfs image after booting - There should be an entry kernsize=300000 which indicates the maximum size for the kernel is 3MB - Execute "fw_setenv kernsize 500000" to increase the max kernel size to 5MB - Check that the change are applied with "fw_printenv" Flash the sysupgrade image: - Default sysupgrade routine either with a initramfs image containing LuCI or via command line. Revert back to OEM firmware: - Only tested with FW_MR6350_1.1.3.210129_prod.img - Flash the OEM firmware via sysupgrade - Forced update is required Signed-off-by: Roland Reinl <reinlroland+github@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17977 Signed-off-by: Robert Marko <robimarko@gmail.com>
55 lines
1.2 KiB
Bash
Executable file
55 lines
1.2 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
|
|
START=99
|
|
|
|
mmc_resetbc() {
|
|
local part_label="$1"
|
|
|
|
. /lib/functions.sh
|
|
|
|
local part_device="$(find_mmc_part "$part_label")"
|
|
if [ "$part_device" = "" ]; then
|
|
>&2 echo "mmc_resetbc: Unknown partition label: $part_label"
|
|
return 1
|
|
fi
|
|
|
|
local magic_number="$(hexdump -e '"0x%02x\n"' -n 4 "$part_device")"
|
|
if [ "$magic_number" != "0x20110811" ]; then
|
|
>&2 echo "mmc_resetbc: Unexpected partition magic: $magic_number"
|
|
return 1
|
|
fi
|
|
|
|
local last_count=$(hexdump -e '"0x%02x\n"' -n 4 -s 4 "$part_device")
|
|
if [ "$last_count" != "0x00" ]; then
|
|
printf "\x00" | dd of="$part_device" bs=4 seek=1 count=1 conv=notrunc 2>/dev/null
|
|
|
|
last_count=$(hexdump -e '"0x%02x\n"' -n 4 -s 4 "$part_device")
|
|
if [ "$last_count" != "0x00" ]; then
|
|
>&2 echo "mmc_resetbc: Unable to reset boot counter"
|
|
return 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
boot() {
|
|
case $(board_name) in
|
|
alfa-network,ap120c-ac)
|
|
[ -n "$(fw_printenv bootcount changed 2>/dev/null)" ] &&\
|
|
echo -e "bootcount\nchanged\n" | /usr/sbin/fw_setenv -s -
|
|
;;
|
|
linksys,ea6350v3|\
|
|
linksys,ea8300|\
|
|
linksys,mr6350|\
|
|
linksys,mr8300|\
|
|
linksys,whw01|\
|
|
linksys,whw03v2)
|
|
mtd resetbc s_env || true
|
|
;;
|
|
linksys,whw03)
|
|
mmc_resetbc s_env || true
|
|
;;
|
|
netgear,wac510)
|
|
fw_setenv boot_cnt=0
|
|
;;
|
|
esac
|
|
}
|