Jump to content

Le Potato U-boot is slow?


Go to solution Solved by usual user,

Recommended Posts

So Le Potato (and Sweet potato) take about 10 seconds before reaching systemd. Is there a way to speed this up? 

 

I've tried putting boot_delay=0 as well as console=serial in armbianEnv.txt in hope of shortening the time in u-boot, but these didn't change anything.

 

I've also tried building this image with no initramfs and no loadable module support.

Edited by mongoose
Link to comment
Share on other sites

Do you have the boot log from the uart port?  If so please post, if not I'd suggest you capture the boot console messages to see which step of the boot process is taking the time.

Link to comment
Share on other sites

Posted (edited)

thanks for the reply @SteeMan . I don't have the connector for uart, but I should be able to post a video clip (hopefully with OK quality) later today.

 

I will get a USB UART connector over the weekend.

 

When you turn on the power for one of these sorts of boards,  is it normal for the led to just stay red for 5+ seconds ? From what I can see, it's actually only spending a few seconds in u-boot before it starts showing the systemd services (the messages like "[ OK ] ...") 

 

I'm starting to wonder if it's my power supply..

Edited by mongoose
Link to comment
Share on other sites

  1 abled^M
  2 DDR scramble enabled^M
  3 DDRREAD:0;0.0;CHK:0;^M
  4 no sdio debug board detected ^M
  5 TE: 1883999^M
  6 ^M-13^M
  7 DataBus test pass!^M
  8 AddrBusMMC:   SPI:0;CHK:A7;EMMC:400;NAND:81;SD:0; - FAIL^M
  9 DDR3 chl: Rank0 @ 912MH test pass!^M
 10 Load fip header from SD, src: 0x0000c200, des: 0x01400000, size: 0x00004000^M
 11 New fip structure!^M
 12 Load bl30 fr1100000, size: 0x0000d600^M
 13 00, des: 0x05100000, size: 0x000NOTICE:  BL3-1: v1.0(release):3348978^M
 14 NOTICE:  BL3-1: Built : 1L CPU setup!^M
 15 mpu_config_enable:mmc@72000: 0, mmc@74000: 1^M
 16 Loading Environment from nowhere... OK^M
 17 In:    serial^M
 18 Out:   serial^M
 19 Err:   serial^M
 20 [BL31]: tee siz key to stop autoboot:  2 ^H^H^H 1 Load bl33 from SD, src: 0x0003c25:44:01, May 12 2017^M
 21 [BL31]: GXai@droid07]^M^M
 22 OPS=0x84^M^M
 23 fe e4 eizing runtime service opteed_fas^M
 24 ^M
 25 U-Boot 2022.01-armbian (Feb ech-cc^M
 26 ^M
 27 Model: Libre Computer eth0: ethernet@c9410000^M
 28 Hit any MiB/s)^M
 29 ## Executing script at ^M
 30 ## Loading init Ramdisk from Lize:    24300899 Bytes = 23.2 MiGXL:BL1:9ac50e:bb16dc;FEAT:ADFC3et vddee to 1000 mv^M
 31 Board ID = 3^M
 32 CPU clk: 1200MHz^M
 33 DQS-corr enLoad bl31 from SD, src: 0x000202t^M
 34 SoC:   Amlogic Meson GXL (S905X) Revision 21:d (84:2)^M
 35 DRAM:  ^H^H^H 0 ^M
 36 Found U-Boot script /boot/boot.spaccount=1^M
 37 24300963 bytes read in 1046 ms (ok^M^M
 38 [Image: gxl_v1.1.3221-2cfba69 2017-05-27 16:03:58 qiufang.dtart!^M
 39 high task start!^M
 40 low task start!^M
 41 ERROR:   Error initial17 2023 - 22:31:00 +0000) libretswitch to partitions #0, OK^M
 42 mmcOK^M
 43 ## Flattened Device Tree blob at 04080000^M
 44    Booting using the fdt blob at 0x4080000^M
 45    Loading Ramdisk to 3a816000, end 3bf42d63 ... 1 GiB^M
 46 0 is current device^M
 47 Scanning mm08000000^M
 48 U-boot default fdtfile25 bytes read in 3 ms (73.2 KiB/e=ttyAML0,115200 console=tty1 co fixup script (meson-fixup.scr)^M
 49 ## Executing script at 32000000egacy Image at 13000000 ...^M
 50    Image Name:   uInitrd^M
 51    Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)^M
 52    Data Sc 0:1...^M
 53 cr^M
 54 8147 bytes read in 3 ms (2.6: amlogic/meson-gxl-s905x-libretibata.force=noncq usb-storage.quirks=0x2537:0x1066:u,0x2537:0x105fff ... OK^M
 55 ^M
 56 Starting kernel ...^M

 

----------------------

took 9 seconds before I saw the "starting kernel"
 

Link to comment
Share on other sites

I don't have this board personally, so I can only make educated guesses.  The two things that caught my eye were the text "Hit any" which I assume should say Hit any key (it seems like some of the output is garbled). Such a message often has a timeout associated with it so you have some time to use the keyboard.  The other thing I noticed is that your build is using uboot 2022.01, where current code is using uboot 2024.01.  So you might want to build a current version and see if the newer uboot has any difference in behavior.

Link to comment
Share on other sites

Posted (edited)

https://docs.u-boot.org/en/latest/usage/cmd/env.html 

 

Yes I should be able to change the boot-delay of u-boot but it doesn't persist, when I restart the value is gone.

 

I interrupt the boot by hitting any key.

 

Then I do

Quote

env set bootdelay 0

 

Then I should be able to do 

 

Quote

env save

but "save" doesn't exist. 

 

image.thumb.png.26ffe7069ee6fcf28884e2cf598ad661.png

 

I will look into how to build/replace this version of U-boot

Edited by mongoose
Link to comment
Share on other sites

1 hour ago, mongoose said:

"save" doesn't exist. 

Your firmware is build without persistent Environment.

 

On 4/12/2024 at 12:51 AM, mongoose said:

16 Loading Environment from nowhere...

Only the compiled-in Environment is used, which can only be modified before build.

Link to comment
Share on other sites

Posted (edited)

@usual user  thanks for the reply. I found 

 and posted there what I did (edit boot.cmd), but to no success.  As you said, it uses the defaults, though this doesn't happen with u-boot on debian. There, I'm able to use setenv and saveenv without issue.


I found a guide to build u-boot https://docs.u-boot.org/en/latest/build/gcc.html and https://docs.u-boot.org/en/latest/board/amlogic/libretech-cc.html
but I'm not really sure I understand how I could integrate that into an existing armbian image

Edited by mongoose
Link to comment
Share on other sites

  • Solution
4 hours ago, mongoose said:

I did (edit boot.cmd), but to no success.

Some settings that were set at build time can't be modified at runtime.

This requires a new firmware build, e.g. to set the boot delay to 0, the build configuration has to be set to "CONFIG_BOOTDELAY=0".

4 hours ago, mongoose said:

it uses the defaults, though this doesn't happen with u-boot on debian.

This is due to the build configuration. The build configuration determines the properties of a binary created from a certain source. These can be detail  settings, or even decisive for which hardware it is usable.
Finally, U-Boot can be built for all devices from the same source of a given  release version.
E.g. "make libretech-cc_defconfig" prepares a default configuration for LePotato.
You can use "make menuconfig" to fine tune it afterwards.

 

4 hours ago, mongoose said:

how I could integrate that into an existing armbian image

I don't know the details of Armbian's build framework, but I'm sure you can inject a patch that implements your desired change.

Link to comment
Share on other sites

Posted (edited)

Alright, thanks again to the replies ! I followed the u-boot guides and it worked out !  

 

"make menuconfig" let me change the environment variable I wanted to. Compiling took just a few minutes.

 

I did the dd commands from the guide and was able to boot the board. Armbian is intact, no issues.

Edited by mongoose
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines