Hi David! Sorry for the long mail, it's full of serial log.
Szabolcs Hubai <[email protected]> ezt írta (időpont: 2020. ápr. 26., V, 16:43): > > Hi David! > > David Bauer <[email protected]> ezt írta (időpont: 2020. ápr. 26., V, > 14:42): > > > > Hi Szabolcs, > > > > On 4/19/20 8:49 PM, Szabolcs Hubai wrote: > > > - 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 > > > > Sorry for going over this one more time. Is there a specific reason > > to pack the resulting uImage using lzma? Also the lzma-loader relocates > > itself afaik, so relocate-kernel shouldn't be necessary when using our > > own loader (i might be wrong here). > > > > Could you try the attached patch on your device? > > > > No problem at all, as it's still not landed. :) > Meanwhile I started playing with that loader-okli what Guo was referring. > Looks like it needs more magic. :D > > > I tried your proposed path when the recipe hit master, without lack. [0] > Will try again for you. I built your patch, let's see the logs! Here is the initramfs boot - it works because uncompressed image works through tftp: Got it ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ## done Bytes transferred = 4667492 (473864 hex) NetBootFileXferSize= 00473864 Automatic boot of image at addr 0x80A00000 ... ## Booting image at 80a00000 ... Image Name: MIPS OpenWrt Linux-5.4.34 Image Type: MIPS Linux Kernel Image (uncompressed) Data Size: 4667428 Bytes = 4.5 MB Load Address: 80001000 Entry Point: 80001000 Verifying Checksum ... OK OK Starting kernel ... OpenWrt kernel loader for MIPS based SoC Copyright (C) 2011 Gabor Juhos <[email protected]> Decompressing kernel... done! Starting kernel at 80001000... [ 0.000000] Linux version 5.4.34 (xabolcs@ut1804) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r13060-471b8bf8c1)) #0 SMP Sat Apr 25 09:31:33 2020 [ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3 [ 0.000000] printk: bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc) [ 0.000000] MIPS: machine is D-Link DIR-860L B1 [ 0.000000] Initrd not found or empty - disabling initrd And here is the boot from flash: Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. 0 3: System Boot system code via Flash. ## Booting image at bfc50000 ... addr:80500000 We have SEAMA, Image Size = 4784068 Verifying Checksum ... Uncompressing SEAMA linux.lzma ... LZMA ERROR 1 - must RESET board to recover Adding the lzma repack: KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | lzma -a0 | uImage lzma ... doesn't break the initramfs ...: Got it ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ############### done Bytes transferred = 4732350 (4835be hex) NetBootFileXferSize= 004835be Automatic boot of image at addr 0x80A00000 ... ## Booting image at 80a00000 ... Image Name: MIPS OpenWrt Linux-5.4.34 Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 4732286 Bytes = 4.5 MB Load Address: 80001000 Entry Point: 80001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ... OpenWrt kernel loader for MIPS based SoC Copyright (C) 2011 Gabor Juhos <[email protected]> Decompressing kernel... done! Starting kernel at 80001000... [ 0.000000] Linux version 5.4.34 (xabolcs@ut1804) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r13060-471b8bf8c1)) #0 SMP Sat Apr 25 09:31:33 2020 [ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3 [ 0.000000] printk: bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc) [ 0.000000] MIPS: machine is D-Link DIR-860L B1 [ 0.000000] Initrd not found or empty - disabling initrd and fixes the lzma error but it hangs ...: Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. 0 3: System Boot system code via Flash. ## Booting image at bfc50000 ... addr:80500000 We have SEAMA, Image Size = 4849604 Verifying Checksum ... Uncompressing SEAMA linux.lzma ... OK ## Transferring control to Linux (at address 00000000) ... ## Giving linux memsize in MB, 128 Starting kernel ... (hang) Adding relocate-kernel to the recipe: KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | relocate-kernel | lzma -a0 | uImage lzma ... still doesn't break initramfs: Got it ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ############### done Bytes transferred = 4732442 (48361a hex) NetBootFileXferSize= 0048361a Automatic boot of image at addr 0x80A00000 ... ## Booting image at 80a00000 ... Image Name: MIPS OpenWrt Linux-5.4.34 Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 4732378 Bytes = 4.5 MB Load Address: 80001000 Entry Point: 80001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ... OpenWrt kernel loader for MIPS based SoC Copyright (C) 2011 Gabor Juhos <[email protected]> Decompressing kernel... done! Starting kernel at 80001000... [ 0.000000] Linux version 5.4.34 (xabolcs@ut1804) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r13060-471b8bf8c1)) #0 SMP Sat Apr 25 09:31:33 2020 [ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3 [ 0.000000] printk: bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc) [ 0.000000] MIPS: machine is D-Link DIR-860L B1 [ 0.000000] Initrd not found or empty - disabling initrd ... but boots nicely from flash: Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. 0 3: System Boot system code via Flash. ## Booting image at bfc50000 ... addr:80500000 We have SEAMA, Image Size = 4849604 Verifying Checksum ... Uncompressing SEAMA linux.lzma ... OK ## Transferring control to Linux (at address 00000000) ... ## Giving linux memsize in MB, 128 Starting kernel ... OpenWrt kernel loader for MIPS based SoC Copyright (C) 2011 Gabor Juhos <[email protected]> Decompressing kernel... done! Starting kernel at 80001000... [ 0.000000] Linux version 5.4.34 (xabolcs@ut1804) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r13060-471b8bf8c1)) #0 SMP Sat Apr 25 09:31:33 2020 [ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3 [ 0.000000] printk: bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc) [ 0.000000] MIPS: machine is D-Link DIR-860L B1 [ 0.000000] Initrd not found or empty - disabling initrd My patch does this exactly. All step is mandatory. And now you see the reasons too! :) -- BR, Szabolcs > > About the lzma repack: I found out that the U-Boot accepts > uncompressed and lzma compressed initramfs images. > It doesn't accepts gzip initramfs, but I didn't tested other compressions. > I also found that the U-Boot expects lzma compressed kernel images > from the flash and doesn't care about uImage header. > > About relocate-kernel: without it the router hangs after "transferring > control to Linux", like below! > > > Please choose the operation: > 1: Load system code to SDRAM via TFTP. > 2: Load system code then write to Flash via TFTP. > 3: Boot system code via Flash (default). > 4: Entr boot command line interface. > 7: Load Boot Loader code then write to Flash via Serial. > 9: Load Boot Loader code then write to Flash via TFTP. > 0 > > 3: System Boot system code via Flash. > ## Booting image at bfc50000 ... > addr:80500000 > We have SEAMA, Image Size = 4759794 > Verifying Checksum ... > Uncompressing SEAMA linux.lzma ... OK > ## Transferring control to Linux (at address 00000000) ... > ## Giving linux memsize in MB, 128 > > Starting kernel ... > > (hang) > > > > [0] > https://forum.openwrt.org/t/optimized-build-for-the-d-link-dir-860l/948/1089?u=xabolcs > > > Regards, > Szabolcs > > > Best wishes > > David _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
