1

Temat: Belkin AC1750 DB (f9k1115v2) - DTS

Zastanawiam się nad przygotowaniem plików DTS dla routera Belkin f9k1115v2.

Czy tablica partycji dla:

f9k1115v2_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),14464k(rootfs),1408k(kernel),64k(nvram)ro,64k(envram)ro,64k(art)ro,15872k@0x50000(firmware)

powinna tak wyglądać:

&spi {
    status = "okay";
    num-cs = <1>;

    flash@0 {
        compatible = "jedec,spi-nor";
        reg = <0>;
        spi-max-frequency = <25000000>;

        partitions {
            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            uboot: partition@0 {
                label = "u-boot";
                reg = <0x000000 0x040000>;
                read-only;
            };

            partition@40000 {
                label = "u-boot-env";
                reg = <0x040000 0x010000>;
            };

            partition@50000 {
                compatible = "denx,uimage";
                label = "firmware";
                reg = <0x050000 0xf80000>;
            };

            partition@fd0000 {
                label = "nvram";
                reg = <0xfd0000 0x010000>;
                read-only;
            };

            partition@fe0000 {
                label = "envram";
                reg = <0xfe0000 0x010000>;
                read-only;
            };

            art: partition@ff0000 {
                label = "art";
                reg = <0xff0000 0x010000>;
                read-only;
            };
        };
    };
};

2

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

Na pierwszy rzut oka tak. Uruchom jako initramfs i zobaczysz czy wykrywa partycje i można się do nich dostać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

Zanim jeszcze coś uruchomię chciałem przenieść budowanie obrazu factory:

Image/Build/Belkin/buildkernel=$(call MkuImageLzma,$(2),$(3) $(4))
Image/Build/Belkin/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(4))

define Image/Build/Belkin
    $(eval fwsize=$(call mtdpartsize,firmware,$(4)))
    $(eval kernsize=$(call mtdpartsize,kernel,$(4)))
    $(eval rootsize=$(call mtdpartsize,rootfs,$(4)))
    $(call Sysupgrade/RKuImage,$(1),$(2),$(kernsize),$(rootsize))
    if [ -e "$(call sysupname,$(1),$(2))" ]; then \
        edimax_fw_header -m $(5) -v "$(shell echo -n $(VERSION_DIST)$(REVISION) | cut -c -13)" \
            -n "uImage" \
            -i $(KDIR_TMP)/vmlinux-$(2).uImage \
            -o $(KDIR_TMP)/$(2)-uImage; \
        edimax_fw_header -m $(5) -v "$(shell echo -n $(VERSION_DIST)$(REVISION) | cut -c -13)" \
            -n "rootfs" \
            -i $(KDIR)/root.$(1) \
            -o $(KDIR_TMP)/$(2)-rootfs; \
        ( \
            dd if=$(KDIR_TMP)/$(2)-rootfs; \
            dd if=$(KDIR_TMP)/$(2)-uImage; \
        ) > "$(call factoryname,$(1),$(2))"; \
    fi
endef

$(eval $(call SingleProfile,Belkin,64k,F9K1115V2,f9k1115v2,F9K1115V2,ttyS0,115200,$$(f9k1115v2_mtdlayout),BR-6679BAC))

Funkcje powinny się znaleźć w include/image-commands.mk czy może target/linux/ath79/image/generic.mk / target/linux/ath79/image/tiny.mk?

4

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

W generic jeżeli wszystko się mieści.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

Nie wiem czy uda się zmieścić w generic z powodu małęj partycji pod kernel (1408k). Dla innego urządzenia z podobnym problemem został zmieniony układ partycji: https://git.openwrt.org/?p=openwrt/open … e4111c2acb

Na wszelki wypadek jak już zacznę coś wgrywać zastanawiam się nad możliwością wrzucenia obrazu recovery po tftp. U-boot env wygląda tak:

bootargs=console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14464k(rootfs),1536k(uImage),64k(ART),16320k@0x0(all)
bootcmd=bootm 0x9fe70000
bootdelay=2
baudrate=115200
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee
ipaddr=192.168.2.1
serverip=192.168.2.10
dir=
lu=tftp 0x80060000 ${dir}u-boot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize
lf=tftp 0x80060000 ${dir}ap135-squashfs&&erase 0x9f050000 +0xe20000&&cp.b $fileaddr 0x9f050000 $filesize
lk=tftp 0x80060000 ${dir}vmlinux_11ac_offload_s17.lzma.uImage&&erase 0x9fe70000 +$filesize&&cp.b $fileaddr 0x9fe70000 $filesize
ethact=eth0
stdin=serial
stdout=serial
stderr=serial
edibootver=1.00.03

Czy w takim razie wystarczy na serwerze tftp wystawić rootfs pod nazwą ap135-squashfs oraz kernel pod nazwą vmlinux_11ac_offload_s17.lzma.uImage?

6

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

Tak prawdę mówiąc to możesz zrobić to pod dowolnymi nazwami bo nie musisz wydawać polecenia lk tylko możesz po prostu zrobić ręcznie tftp 0x80060000  itd, podobnie tak to się reanimuje w tplinkach.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez frutis 2019-08-26 07:57:46)

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

Chciałem to zrobić bez dostępu do konsoli...
Do u-boot'a wchodzi się przytrzymując reset przy podłączaniu zasilania.

8

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

Czy przed wrzuceniem po tftp trzeba naciągać rozmiary obrazów do rozmiarów partycji? Czy wystarczy tyle ile jest w firmware?

9

Odp: Belkin AC1750 DB (f9k1115v2) - DTS

W tym przypadku po tftp to po prostu wgrywa we flash i żaden podział na partycje go nie interesuje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.