[OpenWrt-Devel] [PATCH] ramips: mt7621: use lzma-loader for D-Link DIR-860L B1
Szabolcs Hubai
szab.hu at gmail.com
Tue Apr 21 12:18:42 EDT 2020
Hi Stijn,
Stijn Segers <foss at volatilesystems.org> ezt írta (időpont: 2020. ápr.
21., K, 17:52):
>
> Hi,
>
>
> Op dinsdag 21 april 2020 om 15:12 schreef Stijn Segers
> <foss at volatilesystems.org>:
> > Hi Szabolcs,
> >
> > Op maandag 20 april 2020 om 11:01 schreef Szabolcs Hubai
> > <szab.hu at gmail.com>:
> >> Hello,
> >>
> >> Stijn Segers <foss at volatilesystems.org> ezt írta (időpont: 2020.
> >> ápr.
> >> 20., H, 9:25):
> >>>
> >>> Hi Szabolcs,
> >>>
> >>> Op zondag 19 april 2020 om 20u49 schreef Szabolcs Hubai
> >>> <szab.hu at gmail.com>:
> >>> > This device has trouble extracting big kernel from flash,
> >>> > and supports LZMA compressed kernels only.
> >>> >
> >>> > Using OpenWrt kernel loader saves us 64 KB compared to the
> >>> dictionary
> >>> > size limiting workaround.
> >>> >
> >>> > Factory image sizes (commit: 5f126c541a74) with
> >>> "CONFIG_ALL_KMODS=y":
> >>> > - original ("-d23", default): 4784188 bytes, LZMA ERROR 1
> >>> > - with "-d19": 4915260, LZMA ERROR 1
> >>> > - with "-d18": 4915260, diff to original: +128 KB
> >>> > - with "-d17": 4980796, diff to original: +192 KB
> >>> > - with this patch: 4849724, diff to original: +64 KB
> >>> >
> >>> > To save some CPU cycle, use minimal compression ("-a0") for the
> >>> LZMA
> >>> > compressed uImage.
> >>> >
> >>> > The most robust solution would use a different loader,
> >>> > which reads the compressed kernel directly from the flash.
> >>> > See the thread at [0] for more details!
> >>>
> >>> Thanks for giving the DIR-860L some love. I'd like to test (in
> >>> fact I
> >>> already
> >>> did with your previous patches) and hook up serial, because first
> >>> boot
> >>> will
> >>> work but any reboot (whether I change settings or not) will just
> >>> give
> >>> me a
> >>> blinking orange LED. Like clockwork.
> >>>
> >>> Would you happen to have any pointers (or pictures) on how to open
> >>> the
> >>> case?
> >>> I have unscrewed the bottom but there seem to be latches on the
> >>> inside
> >>> (judging
> >>> from the FCC pictures) and I am unable to pry it open.
> >>>
> >>> Thanks and sorry for the topic hijack :-).
> >>>
> >>> Stijn
> >>>
> >>
> >> I got my clue from the "D-LINK DIR-860L - disassemble" titled
> >> YouTube video. [0]
> >> In short:
> >> - 3 screws on the bottom, under the pads: if you are looking at the
> >> bottom of the router, the screws are under the left, the right and
> >> the
> >> bottom pads
> >> - one, "DIR-860L" titled sticker on the top, with a "cut in" starting
> >> point in the front, where the leds reside
> >
> >
> > Thanks! That sticker turned out to be so sturdy - it doesn't look or
> > feel like a sticker *at all*. That's what got me.
> >
> > So, I have serial now. A few things I can tell from my side:
> > - vanilla master image (yesterday's image): does not boot, which is
> > expected of course. Error I'm seeing: "LZMA ERROR 1 - must RESET
> > board to recover"
> > - local master branch image (with your last patch) with default
> > .config: boots fine, even after multiple reboots.
> > - local master branch image (with your last patch) with my own
> > config: boots fine the first time. After that, it just barks and says
> > 'Bad Header checksum'.
> >
> > It looks like there's something with my .config that breaks it... The
> > (kernel?) image is pretty big (9109444 bytes?) from what I can tell,
> > maybe that's still an issue here.
> >
> As a follow-up: wiping my ccache worked wonders it seems. All good now.
>
Great news, thanks! :)
--
Szabolcs
> Cheers
>
> Stijn
>
>
> > This is what default config prints:
> >
> > 3: System Boot system code via Flash.
> > ## Booting image at bfc50000 ...
> > addr:80500000
> > We have SEAMA, Image Size = 2359232
> > Verifying Checksum ...
> > Uncompressing SEAMA linux.lzma ... OK
> >
> > And my custom config (which boots fine the first time after flashing
> > somehow, then goes straight to recovery mode somehow):
> >
> > 3: System Boot system code via Flash.
> > ## Booting image at bfc50000 ...
> > addr:80500000
> > We have SEAMA, Image Size = 9109444
> > Verifying Checksum ...
> > Bad Header Checksum.
> >
> > Entering HTTP server.
> >
> >
> > Anyway, I'll send in my tested-by for your patch so hopefully it can
> > get merged! Thanks for the work and your help!
> >
> >
> > Cheers
> >
> > Stijn
> >
> >> - 3 screws on the top, under the sticker
> >>
> >> Disassemble:
> >> - get off the pads (they won't stick back after a few days ;), use
> >> very thin double sided sticker to help them)
> >> - get the bottom screws
> >> - peel off the rounded sticker from the top with thin but flexible
> >> knife or razor blade, etc ...
> >> - get the upper screws
> >> - slide the front and rear half vertically a little
> >> - separate them
> >>
> >> The serial settings can be found on the wiki [1]:
> >> - Pinout: TX, GND, 3v3, empty, RX
> >> - Bits per second: 57600
> >> - Data bits: 8
> >> - Parity: None
> >> - Stop bits: 1
> >> - Flow control: None
> >>
> >> I have a CP2102 USB to TTL module, and used with "minicom -D
> >> /dev/ttyUSB0".
> >>
> >>
> >> Intereestingly, when I connected with serial to the router it was
> >> sometime unstable:
> >> * refuse to start
> >> * freeze at boot soon after: "Error applying setting, reverse things
> >> back" messge
> >>
> >> Other than this, I have no problem with k5.4.
> >>
> >>
> >>
> >> [0]: https://youtu.be/tf7nMqdUKD4
> >> [1]: https://openwrt.org/toh/d-link/dir-860l#access_with_serial_cable
> >>
> >>
> >> --
> >> Regards,
> >> Szabolcs
> >>
> >>
> >>>
> >>> >
> >>> > [0]
> >>> >
> >>> http://lists.infradead.org/pipermail/openwrt-devel/2020-April/022926.html
> >>> >
> >>> > Signed-off-by: Szabolcs Hubai <szab.hu at gmail.com>
> >>> > ---
> >>> > target/linux/ramips/image/mt7621.mk | 4 +++-
> >>> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >>> >
> >>> > diff --git a/target/linux/ramips/image/mt7621.mk
> >>> > b/target/linux/ramips/image/mt7621.mk
> >>> > index aa6836d50a..e954f730da 100644
> >>> > --- a/target/linux/ramips/image/mt7621.mk
> >>> > +++ b/target/linux/ramips/image/mt7621.mk
> >>> > @@ -218,7 +218,9 @@ define Device/dlink_dir-860l-b1
> >>> > $(Device/seama)
> >>> > BLOCKSIZE := 64k
> >>> > SEAMA_SIGNATURE := wrgac13_dlink.2013gui_dir860lb
> >>> > - KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma |
> >>> > uImage lzma
> >>> > + LOADER_TYPE := bin
> >>> > + KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | \
> >>> > + relocate-kernel | lzma -a0 | uImage lzma
> >>> > IMAGE_SIZE := 16064k
> >>> > DEVICE_VENDOR := D-Link
> >>> > DEVICE_MODEL := DIR-860L
> >>> > --
> >>> > 2.17.1
> >>> >
> >>> >
> >>> > _______________________________________________
> >>> > openwrt-devel mailing list
> >>> > openwrt-devel at lists.openwrt.org
> >>> > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> >>>
> >>>
> >>
> >> _______________________________________________
> >> openwrt-devel mailing list
> >> openwrt-devel at lists.openwrt.org
> >> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> >
> >
> > _______________________________________________
> > openwrt-devel mailing list
> > openwrt-devel at lists.openwrt.org
> > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list