Jump to content

usual user

Members
  • Posts

    485
  • Joined

  • Last visited

Posts posted by usual user

  1. 21 hours ago, KingJ said:

    Thanks for compiling that overlay in to a DTB

    That was just a simple one-liner (fdtoverlay -i rk3588-nanopc-t6.dtb -o rk3588-nanopc-t6.dtb rk3588-nanopc-t6-emmc.dtbo).
    In order to carry out the test in my environment, the typing task was a little more complex:

    Spoiler

    Executed:

    fdtoverlay --input rk3588-nanopc-t6-lts-native.dtb --output rk3588-nanopc-t6-lts-con-btn-npu-emmc.dtb rk3588-nanopc-t6-lts-con.dtbo rk3588-nanopc-t6-lts-btn.dtbo rk3588-nanopc-t6-lts-npu.dtbo rk3588-nanopc-t6-lts-emmc.dtbo

    Extended extlinux.conf with this boot stanza:

    label rockchip
      menu label ODROID-M1/M2 NanoPC-T6 emmc
      fdt /usr/lib/modules/linux/dtb/rockchip/rk3588-nanopc-t6-lts-con-btn-npu-emmc.dtb
      kernel /usr/lib/modules/linux/vmlinuz
      append loglevel=4 root=PARTUUID=6a6d7001-01 coherent_pool=2M selinux=0 audit=0 console=ttyS02,1500000 console=tty0 fbcon=nodefer rootwait rootfstype=ext4 raid=noautode

    Because my device that provides the serial terminal was just shut down for maintenance purposes, I set it as the default boot option.
    In this way, I can delay the start up of the serial terminal to that time I am faced with a unbootable system.
    Unfortunately, everything worked and I didn't have to reboot with a fail-safe option. And I also didn't accidentally type a configuration incorrectly that would have triggered an automatic safety start.

     

    21 hours ago, KingJ said:

    I'm puzzled as to why that worked, but the overlay didn't work.

    It apparently depends on how the overlay was applied, because fundamentally it should also work when applied dynamically.
    However, the static application of an overlay has the disadvantage that in the case of an incompatibility, one is only confronted with an error message and does not experience a system that fails to start.

     

    21 hours ago, KingJ said:

    Searching around, it doesn't look like it is easy to pop it out of the case either.

    It is not very difficult to get it out. It is held only by the slight adhesive strength of the thermal pad between the SoC and the casing when the bottom plate is removed. A cautious light steady pull releases it. The only difficulty is in gripping the board to make apply this pull. I screwed a bolt into one of the mounting PCB nuts and used it as a handle.
    With such a socket in one of the SMA antenna connection ports, the UART connection can be permanently routed to the outside without modifying the casing.
    I use it to route the fan connector outside.

     

    22 hours ago, KingJ said:

    Is there a way I can debug why the overlay isn't working without getting access to the UART header on the top of the board?


    Without the possibility of providing meaningful serial console logs, you will probably be left on your own with it.

  2. 18 hours ago, KingJ said:

    Unfortunately, it then failed to boot.

    Admittedly, I had not tested the DTBO at runtime so far, but only applied it statically to the base DTB and checked whether all desired changes were made as intended.
    Now I am running my device with the applied overlay and I get the following:

    [    0.940862] mmc0: new HS200 MMC card at address 0001
    [    0.941665] mmcblk0: mmc0:0001 A3A561 57.6 GiB
    [    0.943039]  mmcblk0: p1 p2
    [    0.943767] mmcblk0boot0: mmc0:0001 A3A561 4.00 MiB
    [    0.945199] mmcblk0boot1: mmc0:0001 A3A561 4.00 MiB
    [    0.946661] mmcblk0rpmb: mmc0:0001 A3A561 16.0 MiB, chardev (506:0)

    So everything is as expected, and yes, I have ensured that my system is running with the applied overlay. In the past, I have at least once noticed far too late that my system was running in a fallback, and a feature to be tested was not applied at all. That's just the disadvantage of a fail-safe system that only leaves a non-functional system in an extreme exceptional situation.
    Since you haven't provided meaningful logs, I can't say what is going wrong on your end.
    To rule out an error when applying the overlay, you could start your system with this DTB (rk3588-nanopc-t6.dtb) , which already contains the overlay applied
     statically.

  3. 1 hour ago, laibsch said:

    My board is not Rockchip-based

    Oh, sorry, I didn't notice the non-existent 6 and read it as Helios64.
    Of course, my description of the boot method is not limited to Rockchip devices; it works on all for which a mainline U-Boot is available. I have used it on iMX6, LX2160A and S922X devices, but my remaining devices are all based on Rockchip.

     

    1 hour ago, laibsch said:

    this is where it would get interesting but ...

    The solutions are too varied to present a turnkey solution here. However, I am sure that only a corresponding configuration for implementation is required to achieve the desired behavior, but for that, the U-Boot documentation must be consulted to decide which solution should be chosen.

  4. 2 hours ago, laibsch said:

    Awesome!  Please do elaborate.

    Since the RK3399 U-Boot can use an HDMI display and a USB keyboard, I would simply configure a jumpstart option in the boot flow that mounts a different root filesystem. When booting, you just have to select this option.
    If interacting with the firmware console is too complicated, the recovery system can be placed on a removable storage device. In this way, in case of need, only the rescue media needs to be connected and the system restarted; no firmware console access is required.
    A completely firmware-controlled fallback mechanism is also possible, but it requires further special configuration of the firmware.

     

    2 hours ago, laibsch said:

    What is the cargo cult practiced here at Armbian?

    Read this thread to understand what I mean by my statement.

  5. On 8/27/2025 at 8:00 PM, grixm said:

    need to flash a new image to the emmc.

     

    On 8/27/2025 at 8:00 PM, grixm said:

    Is there a way to trigger rebooting into maskrom from software instead of pushing the button?

    To replace an image on the eMMC, the MASKROM mode is not necessary. It is only required when the firmware is so damaged that it no longer works, but the signature is still intact and the MASKROM code still executes it.
    To replace an image, it is sufficient to boot from a rootfs that is not on the eMMC and replace it from there.
    And the good thing about it is that no device-specific hacks are necessary, just a properly configured bootflow. Furthermore, it is also self-contained, as no external devices with special software or other dependencies are necessary. It can also be automated in such a way that it runs unattended and the user only has to start the process initially.

  6. 9 hours ago, H_Berger said:

    i wonna boot from the emmc, so i have bought an little emmc module

    IMHO this is a waste of money. In a device with NVME support, the advantages of an NVME SSD far outweigh those of an eMMC. The proprietary module interface also makes it difficult to use in other devices. And as a boot device for the firmware, it also offers no significant advantages over a microSD card.
    In any case, I would prefer a microSD card as a boot device, simply because of the easier handling when, for example, experimenting with the firmware. Only when everything works perfectly can one think about using an eMMC, but only if it is already permanently built into the device and the microSD card slot is to be kept free for other tasks.

     

    9 hours ago, H_Berger said:

    so there should no hassle with the MASK-ROM, right ? 

    Only as long as there is no valid firmware signature in the SPI flash. Otherwise, firmware components will be loaded from there, and they may be able to load subsequent components (U-Boot) from other devices, but compatibility must be ensured.
    To avoid this, one must clean the SPI flash or store their own firmware in the SPI flash.
    However, since there is no way to fully test one's own firmware for functionality in advance, one may find oneself in a situation that requires a MASK-ROM recovery procedure.

     

    9 hours ago, H_Berger said:

    just  trying to build mainline u-boot ragarding this: ttps://uthings.uniud.it/building-mainline-u-boot-and-linux-kernel-for-orange-pi-boards

    I prefer to trust the official documentation.

  7. 11 hours ago, H_Berger said:

    with "firmware" you mean the "uboot - loader" mainly right ?

    Exactly

     

    11 hours ago, H_Berger said:

    I think this uboot version is lacking at least on nvme support, right ? 

    Since I don't know the build, I can't make any concrete statements about it.

     

    11 hours ago, H_Berger said:

    Usually my plan was not to boot from nvme

    It is also not possible under any circumstances, as the access procedures are far too complex to be meaningfully encoded in the MASK-ROM. As firmware devices, only SPI flash, MMC (eMMC, SD card), and USB with a proprietary protocol are available.

     

    11 hours ago, H_Berger said:

    I have red somewhere that the actual released git branch of uboot has support for the orange pi 5 plus
    so building a uboot from git would help here ? 

    This is correct. I just quickly built this version out of curiosity. I was just about to provide the binary artifacts when I quickly took a look at the schematic of your device.
    If I am not misinterpreting the schematic, your device only allows the fixed SPI-MMC-USB sequence and the forced immediate proprietary USB device. This means that you cannot execute the firmware completely from the microSD card, for example, if there is still a valid firmware signature in a device (SPI, eMMC) that is higher up in the priority list.
    It is therefore essential that you are familiar with the USB recovery procedure (MASK-ROM-MODE), in case something goes wrong during the firmware experiments with the higher prioritized devices (SPI, eMMC).

  8. 3 hours ago, H_Berger said:

    what didd I miss ? 

    You are running with a broken firmware:

     

    3 hours ago, H_Berger said:
    ## Checking fdt 0x00354c30 ... sha256(e3b0c44298...) + OK
    fdt_record_loadable: FDT_ERR_BADMAGIC

     

    3 hours ago, H_Berger said:
    No valid device tree binary found

    Your version is also quite outdated:

     

    3 hours ago, H_Berger said:
    U-Boot SPL 2017.09

    A current firmware log looks like this:

    Spoiler
    DDR ff1a08bde6 typ 25/03/13-15:39:39,fwver: v1.19
    ch0 ttot6
    ch1 ttot6
    ch2 ttot6
    ch3 ttot6
    ch0 ttot7
    LPDDR5, 2400MHz
    channel[0] BW=16 Col=10 Bk=16 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
    ch1 ttot7
    channel[1] BW=16 Col=10 Bk=16 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
    ch2 ttot7
    channel[2] BW=16 Col=10 Bk=16 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
    ch3 ttot7
    channel[3] BW=16 Col=10 Bk=16 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
    Manufacturer ID:0x1
    DQS rds:h1,h2,.
    CH0 RX Vref:29.3%, TX Vref:22.0%,21.0%
    DQ rds:h2 l0 h5 h2 h3 h2 h2 h5 ., h1 h1 h3 h5 h2 h1 h4 h2
    
    DQS rds:h1,l0,.
    CH1 RX Vref:28.9%, TX Vref:22.0%,22.0%
    DQ rds:h3 h2 l1 h3 h4 l0 h3 h1 ., h3 l0 h5 h1 h1 l0 h1 l0
    
    DQS rds:l0,l0,.
    CH2 RX Vref:28.5%, TX Vref:22.0%,22.0%
    DQ rds:h1 h1 h1 h4 l0 h1 h2 h1 ., h7 h5 h2 h1 h3 h1 l0 l0
    
    DQS rds:l0,h1,.
    CH3 RX Vref:29.3%, TX Vref:22.0%,21.0%
    DQ rds:h6 h4 h2 h6 h2 h2 h3 h1 ., h5 h6 h4 h1 h7 h5 h2 h2
    
    stride=0x2, ddr_config=0x6
    hash ch_mask0-1 0x20 0x40, bank_mask0-3 0x0 0x2400 0x44800 0x89000, rank_mask0 0x2000
    change to F1: 534MHz
    ch0 ttot6
    ch1 ttot6
    ch2 ttot6
    ch3 ttot6
    change to F2: 1320MHz
    ch0 ttot8
    ch1 ttot8
    ch2 ttot8
    ch3 ttot8
    change to F3: 1968MHz
    ch0 ttot6
    ch1 ttot6
    ch2 ttot6
    ch3 ttot6
    change to F0: 2400MHz
    ch0 ttot7
    ch1 ttot7
    ch2 ttot7
    ch3 ttot7
    out
    
    U-Boot SPL 2025.07 (Jul 11 2025 - 00:00:00 +0000)
    Trying to boot from MMC2
    ## Checking hash(es) for config config-1 ... OK
    ## Checking hash(es) for Image atf-1 ... sha256+ OK
    ## Checking hash(es) for Image u-boot ... sha256+ OK
    ## Checking hash(es) for Image fdt-1 ... sha256+ OK
    ## Checking hash(es) for Image atf-2 ... sha256+ OK
    ## Checking hash(es) for Image atf-3 ... sha256+ OK
    NOTICE:  BL31: v2.13.0(release):
    NOTICE:  BL31: Built : 00:00:00, May 22 2025
    
    U-Boot 2025.07 (Jul 11 2025 - 00:00:00 +0000)
    
    Model: Hardkernel ODROID-M2
    SoC:   RK3588S2
    DRAM:  16 GiB
    PMIC:  RK806 (on=0x80, off=0x08)
    Core:  382 devices, 35 uclasses, devicetree: separate
    MMC:   mmc@fe2c0000: 1, mmc@fe2e0000: 0
    Loading Environment from nowhere... OK
    In:    serial@feb50000
    Out:   serial@feb50000
    Err:   serial@feb50000
    Model: Hardkernel ODROID-M2
    SoC:   RK3588S2
    Net:   eth0: ethernet@fe1c0000
    starting USB...
    USB EHCI 1.00
    USB OHCI 1.0
    USB EHCI 1.00
    USB OHCI 1.0
    Register 2000140 NbrPorts 2
    Starting the controller
    USB XHCI 1.10
    Bus usb@fc800000: 1 USB Device(s) found
    Bus usb@fc840000: 1 USB Device(s) found
    Bus usb@fc880000: 5 USB Device(s) found
    Bus usb@fc8c0000: 1 USB Device(s) found
    Bus usb@fcd00000: 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    Cannot persist EFI variables without system partition
    *** U-Boot Boot Menu ***
    Press UP/DOWN to move, ENTER to select, ESC to quit
     Standard Boot
     NVME USB Mass Storage
     eMMC USB Mass Storage
     microSD USB Mass Storage
     Power Off
     mmc 1
     mmc 0
     nvme 0
     Exit
    Hit any key to stop autoboot: 2 1 0
    Scanning for bootflows in all bootdevs
    Seq  Method       State   Uclass    Part  Name                      Filename
    ---  -----------  ------  --------  ----  ------------------------  ----------------
    Scanning global bootmeth 'efi_mgr':
      0  efi_mgr      ready   (none)       0  <NULL>
    ** Booting bootflow '<NULL>' with efi_mgr
    Loading Boot0000 'mmc 1' failed
    Loading Boot0001 'mmc 0' failed
    Loading Boot0002 'nvme 0' failed
    EFI boot manager: Cannot load any image
    Boot failed (err=-14)
    Scanning bootdev 'mmc@fe2c0000.bootdev':
      1  extlinux     ready   mmc          1  mmc@fe2c0000.bootdev.part /extlinux/extlinux.conf
    ** Booting bootflow 'mmc@fe2c0000.bootdev.part_1' with extlinux
    Jumpstart Boot Options
    1:      ODROID-M1/M2 default
    2:      ODROID-M1/M2 previous kernel
    3:      ODROID-M1/M2 verbose
    4:      Odroid-N2/N2+ default
    5:      Odroid-N2/N2+ previous kernel
    Enter choice: 1:        ODROID-M1/M2 default
    Retrieving file: /usr/lib/modules/linux/vmlinuz
    append: loglevel=7 root=PARTUUID=75235836-01 consolee=ttyS02,1500000 console=tty0 rootwait rootfstype=ext4
    Retrieving file: /usr/lib/modules/linux/dtb/rockchip/rk3588s-odroid-m2.dtb
       Uncompressing Kernel Image to 0
    ## Flattened Device Tree blob at 12000000
       Booting using the fdt blob at 0x12000000
    Working FDT set to 12000000
       Loading Device Tree to 00000000ece60000, end 00000000ece779b7 ... OK
    Working FDT set to ece60000
    
    Starting kernel ...

     

     

  9. 4 hours ago, robertoj said:

    [vd] Codec list:
    [vd]     libdav1d (av1) - dav1d AV1 decoder by VideoLAN
    [vd]     libaom-av1 (av1) - libaom AV1
    [vd]     av1 - Alliance for Open Media AV1
    [vd]     av1_cuvid (av1) - Nvidia CUVID AV1 decoder
    [vd] Opening decoder libdav1d
    [vd] No hardware decoding available for this codec.

    Just out of curiosity, you are trying to play content that is encoded in AV1.

    Are you sure that your device is equipped with an AV1 decoder IP and that the kernel has the appropriate driver?

  10. FWIW
    rkvdec will be out of staging in 6.17

    Be prepared to forward-port existing out-of-tree patches.

    cedrus has not seen much movement since a long time

    It can therefore be assumed that all necessary out-of-tree modifications from the past must be applied even with the latest kernel version.
    Since no mainline developments have taken place, no forward porting should be necessary.

  11. 7 hours ago, ceri said:

    What does the shutdown process to that could fix this?

    It leaves the device with an intact file system.
    The corrupted file system structure has likely been restored by rolling back the journal during the automatic file system check of the unmounted file system at system startup. But the data loss is permanent.
    There is a reason why UPS systems exist.

  12. 50 minutes ago, rosenrot00 said:

    Thank you that worked.

    I don't know your plans for how things are supposed to proceed. But if you plan to continue using my firmware build, I would suggest transferring it to the SPI flash, provided you are not wanted to use any other firmware in there.
    - This relieves you from having to pay attention to restoring my firmware build when changing an image.
    - You have two firmware versions available to you, between which you can switch with the SPI-MMC boot switch.
    - Even without the eMMC module, you can boot an OS from another connected storage device.
    - The U-Boot console is also available with an HDMI monitor and a USB keyboard and can be used for analysis in the event of startup problems. Of course, it is also used to select various boot options if autoboot is interrupted.

  13. 21 minutes ago, rosenrot00 said:

    Where would I have to place it?

    Use:

    dd bs=512 seek=1 conv=notrunc,fsync if=odroid-n2/u-boot-meson.bin of=/dev/${entire-device-to-be-used}

    as outlined in the referenced post to replace the existing firmware on the eMMC.

    Firmare is residing outside of partition layout structures so you can only write it by absolute access.

  14. 26 minutes ago, rosenrot00 said:

    Isn’t uboot coming with the armbian image on the emmc?

    Certainly, but I don't know if anyone has taken the effort to integrate a current version so far.

     

    27 minutes ago, rosenrot00 said:

    Could you tell me where I find the most recent uboot?

    The mainline U-Boot project always provides the source codes for the latest versions.
    You can build it by yourself with the Armbian build framework, or use my build for a quick test.

  15. 6 hours ago, rosenrot00 said:

    Would be nice to understand why it doesn't boot.

    The log is telling that the firmware can't operate the eMMC:

     

    6 hours ago, rosenrot00 said:
    Device 0: unknown device
    Card did not respond to voltage select! : -110

    Furthermore, the alternatively attempted BOOTP and PXE boot are also unsuccessful because it seems that a server is found, but the necessary bootflow is not configured correctly.
    As you are running a quite dated U-Boot, maybe using a cureent release has better support for the eMMC.

  16. On 5/24/2025 at 5:03 AM, TinaB said:

    I try to get my NanoPC-T4 a second life.

    My NanoPC-T4 is still alive:

    Spoiler

    InfoCenter-NanoPC-T4.thumb.png.7c5ec9cc71482a9906044ae7521fda14.png

    For a quick test, I used my NVME with my latest OS, which usually powers a different SBC:

    Spoiler

    InfoCenter-ODROID-N2.png.6a538d2c58ed8ef59f8c69450a36c81d.png

    Please do not let it bother you that the NanoPC-T4 uses an outdated kernel to run the OS. This is due to my negligence in building the current kernel without the necessary hacks needed for proper HDMI functionality. Some of the hacks have now been proper implemented in mainline, while others are still in flight. Until this process is completed, I have decided out of laziness to temporarily use an outdated kernel, as I do not miss any functionalities that a current kernel could provide me.

     

    On 5/24/2025 at 5:03 AM, TinaB said:

    the green blinking light indicates me, that he found no bootable device.

    My status LED is not blinking at boot at all. To debug boot problems, blinking LEDs are the worst possible option. Only proper console logs are of value. During OS runtime, it is configured as an HDD LED to indicate access to the microSD, as this is important information for when it is safe to remove it.

     

    On 5/24/2025 at 5:03 AM, TinaB said:

    The final solution should be that has the bootloader on the eMMC while the rest of the os should be on the SSD

    I am still running my firmware from the microSD, again out of laziness to copy it to the eMMC. But any of nessesary support for the NanoPC-T4 is availabe and maybe some boring day or some spezial demand let me revisit to configure it properly. Until then, the bitrottining configuration is sufficient to serve more or less as an always-on terminal server for several USB serial adapters, which provide me with console access to my other SBCs if necessary.

  17. 8 hours ago, antatarmbian said:

    But still I cannot boot the system after removing the sd-card.

    EXIT to the U-Boot console and report the output of the following command:

    bootflow scan -l nvme

     

    8 hours ago, antatarmbian said:

    I then did armbian-install -> nvme01 Install UEFI system

    I don't know what the armbian-install does, but does it make a difference if you dd the same unmodified image to the NVME as you do to the microSD?

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines