Jump to content

m1zfs

Members
  • Posts

    2
  • Joined

  • Last visited

Reputation Activity

  1. Like
    m1zfs got a reaction from iav in Odroid m1 Won't boot on recent images in armbian download section   
    I can confirm that booting Odroid M1 from SD card does not work with U-Boot versions newer than 2024.04. Many thanks to IAV for providing a workaround. Perhaps most people are booting from NVMe now, so this issue has flown under the radar?
     
    # Install U-Boot 24.5.1 (maps to upstream v2024.04) apt-get install -y linux-u-boot-odroidm1-edge=24.5.1 # Freeze the package at that version "printf 'linux-u-boot-odroidm1-edge hold\n' | sudo dpkg --set-selections" # Flash SPI directly from the package artifacts (or via armbian-install) flashcp -v /usr/lib/linux-u-boot-edge-odroidm1/idbloader.img /dev/mtd0 flashcp -v /usr/lib/linux-u-boot-edge-odroidm1/u-boot.itb /dev/mtd2 # Confirm strings /dev/mtd0 | grep -m1 "U-Boot" # U-Boot SPL 2024.04 (Jan 10 2026 - 10:54:44 +0100) strings /dev/mtd2 | grep -m1 "U-Boot" # FIT image for U-Boot with bl31 (TF-A)  
    Now I can boot from sdcard again w/o RCY button.
     
    To use only ZFS on my system I compiled zfs into U-Boot. That worked but the problem was still with U-Boot's handling of the mmc1 somehow. Even though zfsls/zfsload were present in the SPI-flashed U-Boot, that build immediately reinitialized mmc1 in HS200 (1.8 V) mode and hit the “Card did not respond to voltage select! : -110” failure before the boot script could run. So the inability to boot the ZFS v28 pool was due to the SPI U-Boot’s bad MMC tuning, not the ZFS commands themselves.
     
    For future reference I’ll leave here on how to built U-Boot with ZFS support from the upstream sources:
     
    # Workspace & Dependencies apt install git gcc-aarch64-linux-gnu bison flex device-tree-compiler libssl-dev make python3 ninja-build build-essential mkdir -p ~/work/u-boot && cd ~/work/u-boot # Upstream U-Boot git clone --depth=1 --branch v2024.04 https://source.denx.de/u-boot/u-boot.git # Firmare blobs git clone --depth=1 https://github.com/rockchip-linux/rkbin.git # Prepare .config cd u-boot cp configs/odroid-m1-rk3568_defconfig .config scripts/config --file .config --enable CONFIG_CMD_ZFS yes "" | olddefconfig # Compile make -j$(nproc) \ BL31=../rkbin/bin/rk35/rk3568_bl31_v1.45.elf \ ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.23.bin # Flash SPI directly from the package artifacts (or via armbian-install) cp spl/u-boot-spl.bin /usr/lib/linux-u-boot-edge-odroidm1/idbloader.img cp u-boot.itb /usr/lib/linux-u-boot-edge-odroidm1/u-boot.itb flashcp -v /usr/lib/linux-u-boot-edge-odroidm1/idbloader.img /dev/mtd0 flashcp -v /usr/lib/linux-u-boot-edge-odroidm1/u-boot.itb /dev/mtd2  
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines