[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