I am trying to add support for the Mikrotik GrooveA 52 AC. I managed to get openwrt booted on the device, but I can't get the mtd partition mounted. I am not confident that the partitions are setup correctly. I was hoping I could dump them from the mikrotik kernel, but I am also having trouble getting the objects dumped most likely due to my limited reverse engineering knowledge. Does anyone have any ideas on how I can extract the partitions from the device or the kernel?
If you want to find the OEM partition layouts, early dmesg
(from OEM firmware) will show these to you. You may also find this in a decoded supout (decoder). You also want to check which GPIOs are used (and what for).
Sometimes, we can get information from the RouterOS GPL dumps: https://github.com/robimarko/routeros-GPL/blob/b5c44a2d0f939bec0c219ee21e1d549bd6c10cb3/linux_3_3_5_patch_RouterOS644/arch/mips/rb/platform.c#L2968
https://github.com/john-tho/linux/blob/708fc99a000d4a7fef9fa0e19caf857f2634caf0/arch/mips/rb/platform.c#L2951
From a quick look, it seems very similar to the supported https://github.com/openwrt/openwrt/blob/master/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts
Thanks for the response. Indeed I have used the mikrotik_routerboard-wap-g-5hact2hnd.dts as a template and it seems to be working so maybe my search is over.
I haven't managed to get a descent console on the RouterOS as of yet. Do you know of a way to launch a shell that is not the mikrotik one?
I have looked through the links on GitHub that you sent and I will do so again, but I think they are too old for this model. I will try the supout method that you suggested. Thanks for that!
On old RouterOS versions (downgrade), you can use exploits to enable the devel
login, and scp
busybox
on to the device for tools:
- Up until RouterOS 6.43.14: https://github.com/tenable/routeros/tree/master/cleaner_wrasse
- Up until 6.44.3 with a USB port: https://github.com/0ki/mikrotik-tools
- Or modify an initramfs and netboot that
Yes, Mikrotik uses ancient Linux, but I would expect this device to be detailed in these dumps. I only see one ac Mikrotik Groove, so I guessed that they referred to it in source as g52c
. You should be able to find this board code in the hard_config data.
else if (strncmp(board_type, "g52c", sizeof(board_type)) == 0) {
mips_machgroup = MACH_GROUP_MT_RB700;
mips_machtype = MACH_MT_GROOVE_52AC;
}
case MACH_MT_GROOVE_52AC:
gpiod_add_lookup_table(&g52c_mdio_gpiod_table);
return platform_add_devices(
g52c_devices, ARRAY_SIZE(g52c_devices));