[LEDE-DEV] Sysupgrade on Mikrotik RB912

Edwin van Drunen edwin at vandrunen.net
Mon Mar 20 06:04:54 PDT 2017


Hello,

* In short:
When installing LEDE 17.01 on the Mikrotik RB912 with sysupgrade the kernel can not be found and the system will not boot, because routerboot expects to find the kernel on a YAFFS partition.
I was able to fix it by manually copying the kernel to MTD5 formatted as YAFFS.
Is this expected behaviour? How is it supposed to work? Is my solution a good one?

* Longer story:
The installation procedure for LEDE 17.01 on Mikrotik RB-912 boards should be as follows:
- TFTP boot the board using the "vmlinux-initramfs.elf” image
- scp the "squashfs-sysupgrade.bin” image to /tmp
- use sysupgrade to install the LEDE sysupgrade image

After a reboot the system will always attempt to boot from the network, because a kernel can not be found.
The MTD6 partition (previously rootfs) is now in UBI format and hosts the kernel and the root partitions inside.
But routerboot looks for a kernel in MTD5 and (probably?) only supports YAFFS.

I was able to get LEDE to boot by doing these extra steps:
- TFTP boot an old OpenWRT initramfs image (14.07) that supports YAFFS
- MTD erase /dev/mtd5
- mount /dev/mtdblock5 /mnt
- copy the LEDE LZMA kernel image to /mnt, renaming it to “kernel” and chmod a+x.

The kernel loads just fine from the YAFFS partition and the rootfs is mounted using UBIFS (as overlay on squashfs), which is a big improvement over YAFFS.
But now I will not be able to sysupgrade to a newer version of LEDE and can’t access the kernel partition, because YAFFS is not supported on LEDE.

Am I missing something or is this just the way it is for now?

Best regards, Edwin


More information about the Lede-dev mailing list