Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

y52

Members
  • Joined

  • Last visited

Reputation Activity

  1. Like
    y52 got a reaction from Igor in ESPRESSObin Firmware/Bootloader   
    Hello to regular contributors and everybody who are interested in this issue!
    I am late to the thread, as I had to decommission my production setup based on Espressobin V5 before trying everything out. Finally I've completed Physical-to-Virtual migration using QEMU and made board available for this new experience.

    @bschnei made a great job and his developments are community available. It was also worth for me making my findings accessible for general public thus improving Espressobin support.   

    I forked @bschnei repo
    https://github.com/bschnei/ebu-bootloader
    to my Github
    https://github.com/quiseleve/espressobin-bootloader 

    and made several changes to build bootloaders for Espressobin V5 and V7.

    Here are the final changes brought to @bschnei repo :
    root@nanopi-r5s:/mnt/nvmep2/espressobin/ebu-bootloader# git remote add upstream https://github.com/bschnei/ebu-bootloader.git
    root@nanopi-r5s:/mnt/nvmep2/espressobin/ebu-bootloader# git fetch upstream
    From https://github.com/bschnei/ebu-bootloader
     * [new branch]      main       -> upstream/main
    root@nanopi-r5s:/mnt/nvmep2/espressobin/ebu-bootloader# git diff --stat upstream/main...main
     .github/workflows/build.yml                   | 92 ++++++++++++++++++++++++++++++++++++++++++---------------------------------
     Makefile                                      |  2 ++
     patches/0001-fix-tfa-fip-build-behavior.patch | 36 +++++++++++++++++++++++++++++
     3 files changed, 90 insertions(+), 40 deletions(-)

    This allowed building bootload firmware directly in Github's Workflow and trying them out over UART 1st before flashing it to onboard SPi.
    ./mox-imager -D /dev/ttyUSB0 -b 3000000 -E flash-image-v5_2GB.CPU_1000_DDR_800.bin

    Although Workflow run builds both v5 and v7 variants, I tested 2Gb RAM v5 board, as my 1Gb v7 is currently in production, but there is a high confidence level, that v7 works as well.
    DDR_TOPOLOGY variable used for my specific v5 motherboard :
    Memory Type: DDR3
    Total Capacity: 2 GB
    Bus Width: 16-bit
    Chip Selects (CS): 2 (Dual CS)

    It is worth saying that I built initially the 1.2GHz bootloader, but it appeared worthless, as my physical silicon turned out to be limited to 1GHz only. I found it by retrieving a 32-bit hex string for v5 board :
    => md 0xd0012604 1
    d0012604: 19896301                             .c..
    =>
    This hex string gives us the definitive answers we need.
    In the Marvell Armada 3720 architecture, this specific register reads from the factory OTP (One-Time Programmable) fuses. The lower bits define the chip's official Speed Bin Index:
    0 = 800 MHz Maximum
    1 = 1000 MHz (1.0 GHz) Maximum
    2 = 1200 MHz (1.2 GHz) Maximum
    Because my board register ends in 01, my specific SoC is officially rated by the factory for a maximum clock speed of 1000 MHz (1.0 GHz).
    This completely explains why the WTMI secure firmware threw the invalid voltage error when I forced a 1.2 GHz build. The chip physically lacks the factory-fused voltage calibration profile for the 1.2 GHz tier because it wasn't born as a 1.2 GHz chip.
    Thus I decided changing the Build Target to 1.0 GHz.

    More discussions could be found here as well :




    I've also built Armbian-unofficial 26.5.2 sid image to assess overall compatibility.
    Here is an excerpt from initial boot logs directly from the bootloader initiation :
    TIM-1.0
    mv_ddr-devel-g7bcb9dc DDR3 16b 2GB 2CS
    WTMI-devel-18.12.1-f423ac6
    WTMI: system early-init
    SVC REV: 3, CPU VDD voltage: 1.155V
    Setting clocks: CPU 1000 MHz, DDR 800 MHz
    CZ.NIC's Armada 3720 Secure Firmware v2024.04.15 (Jul  9 2026 20:33:31)
    Running on ESPRESSObin
    NOTICE:  Booting Trusted Firmware
    NOTICE:  BL1: v2.14.0(release):sandbox/v2.14
    NOTICE:  BL1: Built : 20:33:33, Jul  9 2026
    NOTICE:  BL1: Booting BL2
    NOTICE:  BL2: v2.14.0(release):sandbox/v2.14
    NOTICE:  BL2: Built : 20:33:35, Jul  9 2026
    NOTICE:  BL1: Booting BL31
    NOTICE:  BL31: v2.14.0(release):sandbox/v2.14
    NOTICE:  BL31: Built : 20:33:36, Jul  9 2026

    U-Boot 2026.04-dirty (Jul 09 2026 - 20:32:03 +0000)
    DRAM:  2 GiB
    Core:  48 devices, 24 uclasses, devicetree: separate
    WDT:   Not starting watchdog@8300
    Comphy chip #0:
    Comphy-0: USB3_HOST0    5 Gbps    
    Comphy-1: PEX0          5 Gbps    
    Comphy-2: SATA0         6 Gbps    
    SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
    flags: ncq led only pmp fbss pio slum part sxs 
    PCIe: Link down
    MMC:   sdhci@d0000: 0, sdhci@d8000: 1
    Loading Environment from SPIFlash... SF: Detected w25q32dw with page size 256 Bytes, erase size 4 KiB, total 4 MiB
    OK
    Model: Globalscale Marvell ESPRESSOBin Board
    Net:   eth0: ethernet@30000
    Hit any key to stop autoboot: 0
    MMC Device 1 not found
    no mmc device at slot 1
    switch to partitions #0, OK
    mmc0 is current device
    Scanning mmc 0:1...
    Found U-Boot script /boot/boot.scr
    1664 bytes read in 25 ms (64.5 KiB/s)
    ## Executing script at 06d00000
    144 bytes read in 19 ms (6.8 KiB/s)
    28134196 bytes read in 1702 ms (15.8 MiB/s)
    Wrong Image Type for bootm command
    ERROR -91: can't get kernel image!
    37059072 bytes read in 2231 ms (15.8 MiB/s)
    18537158 bytes read in 1121 ms (15.8 MiB/s)
    12062 bytes read in 35 ms (335.9 KiB/s)
    ## Loading init Ramdisk from Legacy Image at 0a000000 ...
       Image Name:   uInitrd
       Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
       Data Size:    18537094 Bytes = 17.7 MiB
       Load Address: 00000000
       Entry Point:  00000000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 06f00000
       Booting using the fdt blob at 0x6f00000
    Working FDT set to 6f00000
       Loading Ramdisk to 7d940000, end 7eaeda86 ... OK
       Loading Device Tree to 000000007d93a000, end 000000007d93ff1d ... OK
    Working FDT set to 7d93a000
    Starting kernel ...
    Loading, please wait...
    Starting systemd-udevd version 261.1-2
    Begin: Loading essential drivers ... done.
    Begin: Running /scripts/init-premount ... done.
    Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
    Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems
    done.
    Begin: Will now check root file system ... fsck from util-linux 2.42.2
    [/sbin/fsck.ext4 (1) -- /dev/mmcblk0p1] fsck.ext4 -a -C0 /dev/mmcblk0p1 
    armbi_root: clean, 28918/949664 files, 425190/3849216 blocks
    done.
    done.
    Begin: Running /scripts/local-bottom ... done.
    Begin: Running /scripts/init-bottom ... done.
    Welcome to Armbian-unofficial 26.5.2 sid!
    [  OK  ] Created slice system-getty.slice - Slice /system/getty.
    [  OK  ] Created slice system-modprobe.slice - Slice /system/modprobe.
    [  OK  ] Created slice system-serial\x2dgetty.slice - Slice /system/serial-getty.
    [  OK  ] Created slice user.slice - User and Session Slice.
    [  OK  ] Started systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
    [  OK  ] Set up automount proc-sys-fs-binfmt_misc.automount - Arbitrary Executable File Formats File System Automount Point.
             Expecting device dev-ttyMV0.device - /dev/ttyMV0...
    [  OK  ] Reached target imports.target - Image Downloads.
    [  OK  ] Reached target remote-fs.target - Remote File Systems.
    [  OK  ] Reached target slices.target - Slice Units.
    [  OK  ] Reached target swap.target - Swaps.
    [  OK  ] Listening on syslog.socket - Syslog Socket.
    [  OK  ] Listening on systemd-ask-password.socket - Query the User Interactively for a Password.
    [  OK  ] Listening on systemd-creds.socket - Credential Encryption/Decryption.
    [  OK  ] Listening on systemd-factory-reset.socket - Factory Reset Management.
    [  OK  ] Listening on systemd-hostnamed.socket - Hostname Service Socket.
    -- Boot 3e598d120dc346829e12f836344429a1 --
    Jul 11 00:11:05 espressobin kernel: Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    Jul 11 00:11:05 espressobin kernel: Linux version 6.12.95-current-mvebu64 (build@armbian) (aarch64-linux-gnu-gcc (Ubuntu 13.3.0>
    Jul 11 00:11:05 espressobin kernel: 5:185m5:185mKASLR disabled due to lack of seed
    Jul 11 00:11:05 espressobin kernel: Machine model: Globalscale Marvell ESPRESSOBin Board
    Jul 11 00:11:05 espressobin kernel: efi: UEFI not found.
    ..
    Jul 11 00:11:05 espressobin kernel: armada_37xx_wdt d0008300.watchdog: Initial timeout 120 sec
    Jul 11 00:11:05 espressobin kernel: advk-pcie d0070000.pcie: host bridge /soc/pcie@d0070000 ranges:
    Jul 11 00:11:05 espressobin kernel: advk-pcie d0070000.pcie:      MEM 0x00e8000000..0x00efefffff -> 0x00e8000000
    Jul 11 00:11:05 espressobin kernel: advk-pcie d0070000.pcie:       IO 0x00efff0000..0x00efffffff -> 0x0000000000
    Jul 11 00:11:05 espressobin kernel: advk-pcie d0070000.pcie: issuing PERST via reset GPIO for 10ms
    Jul 11 00:11:05 espressobin kernel: mvneta d0030000.ethernet end0: renamed from eth0
    ....


    This bootloader seems to deliver many if not all of its promises to name few of them:
    cpu  frequency scaling is operational :

    root@espressobin:~# cpupower frequency-info
    analyzing CPU 1:
      driver: cpufreq-dt
      CPUs which run at the same hardware frequency: 0 1
      CPUs which need to have their frequency coordinated by software: 0 1
      maximum transition latency: 1000 us
      hardware limits: 200 MHz - 1000 MHz
      available frequency steps:  200 MHz, 250 MHz, 500 MHz, 1000 MHz
      available cpufreq governors: conservative ondemand userspace powersave performance schedutil
      current policy: frequency should be within 200 MHz and 1000 MHz.
                      The governor "ondemand" may decide which speed to use
                      within this range.
      current CPU frequency: 250 MHz (asserted by call to kernel)
     
      
    Entropy and random number generation (RNG) issue seems to have been resolved
    as bschnei's ebu-bootloader fork explicitly includes patches to fix this.
    The ebu-bootloader patches bypass the OS entirely and tackle the problem before Linux even starts.
    When Linux kernel boots, it immediately detects this perfect cryptographic seed provided by U-Boot and uses it to instantly initialize the OS-level Cryptographic Random Number Generator (CRNG).

    Here are my kernel ring buffer timestamps:
    root@espressobin:~# dmesg | grep -E "crng|random"
    [   11.785705] systemd[1]: Starting systemd-random-seed.service - Load/Save OS Random Seed...
    [   13.071384] random: crng init done
    [   13.398576] systemd[1]: Finished systemd-random-seed.service - Load/Save OS Random Seed.

    The bootloader and kernel working together fixed the entropy pool in exactly 13.07 seconds from the moment the Linux kernel started executing.
    Because crng init done happened before the systemd service even finished writing to the disk, it proves the kernel didn't just rely on slow user-space disk jitter. The hardware security engine initialized almost immediately.
    Because the ebu-bootloader fork compiled correctly patches, the underlying Trusted Firmware-A (TF-A) and the secure processor (WTMI-devel), the hardware crypto mailboxes are wide open and working perfectly the moment Linux asks for them.
    You don't even need haveged or any software workarounds. Your hardware is resolving its own entropy natively in just over a second from user-space initialization!
     
    U-Boot UEFI Support is out of the box as well. I am booting seemlessly both legacy OS (from my old production setup) as well as a new OS build which I used for this testbed
    root@espressobin:~# cat /etc/debian_version 
    forky/sid
    root@espressobin:~# uname -a
    Linux espressobinv5 6.12.95-current-mvebu64 #1 SMP PREEMPT Sat Jul  4 11:43:36 UTC 2026 aarch64 GNU/Linux
  2. Like
    y52 got a reaction from TRS-80 in Making EspressoBin V7 work in 2022 ...   
    I've made some advancement in debugging "armbian-ramlog & armbian-truncate-log" complex.
    Your /usr/lib/armbian/armbian-ramlog has a syntax error in the array expression 
    ${XTRA_RSYNC_TO[@]+"${XTRA_RSYNC_TO[@]}"} The 1st array lacks a closing } curly braces. Secondly, I can't figure out, why the same array is duplicated.
    Even if you parse a variable XTRA_RSYNC_TO=(--delete) from /etc/default/armbian-ramlog, it will result in :
    --delete+--delete Another problem comes, when you call 
    /usr/lib/armbian/armbian-ramlog write >/dev/null 2>&1 from /usr/lib/armbian/armbian-truncate-logs. It actually produces the error:
    # /usr/lib/armbian/armbian-truncate-logs /usr/lib/armbian/armbian-truncate-logs: 23: /etc/default/armbian-ramlog: Syntax error: "(" unexpected I believe there is a syntax error in the way the call is made, where the XTRA_RSYNC_TO=(--delete) variable is not accounted for.
    Could you give it a glance?
    Otherwise, if the XTRA_RSYNC_TO=(--delete) variable is remarked in /etc/default/armbian-ramlog
    and "--delete" option is hard coded in /usr/lib/armbian/armbian-ramlog, the complex starts running without raising exceptions.
  3. Like
    Here is what I have :
     
    bubt u-boot/181226.flash-image-ddr3-2g-2cs-1000_800.bin spi usb
    Marvell>> bubt u-boot/181226.flash-image-ddr3-2g-2cs-1000_800.bin spi usb
    Burning U-BOOT image "u-boot/181226.flash-image-ddr3-2g-2cs-1000_800.bin" from "usb" to "spi"
    USB0:   Register 2000104 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    USB1:   USB EHCI 1.00
    scanning bus 0 for devices... 2 USB Device(s) found
    scanning bus 1 for devices... 1 USB Device(s) found
    reading u-boot/181226.flash-image-ddr3-2g-2cs-1000_800.bin
    Image checksum...OK!
    SF: Detected w25q32dw with page size 256 Bytes, erase size 4 KiB, total 4 MiB
    676040 bytes written, 212992 bytes skipped in 12.491s, speed 72876 B/s
    Done!

    Marvell>> version
    U-Boot 2018.03-devel-18.12.3-gc9aa92c-armbian (Dec 26 2018 - 13:45:06 +0100)
    aarch64-linux-gnu-gcc (Linaro GCC 7.3-2018.05) 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701]
    GNU ld (Linaro_Binutils-2018.05) 2.28.2.20170706

    Marvell>> reset
    WTMI-devel-18.12.0-a0a1cb8
    WTMI: system early-init
    SVC REV: 3, CPU VDD voltage: 1.155V
    NOTICE:  Booting Trusted Firmware
    NOTICE:  BL1: v1.5(release):1f8ca7e (Marvell-devel-18.12.2)
    NOTICE:  BL1: Built : 13:48:02, Dec 26 2018
    NOTICE:  BL1: Booting BL2
    NOTICE:  BL2: v1.5(release):1f8ca7e (Marvell-devel-18.12.2)
    NOTICE:  BL2: Built : 13:48:04, Dec 26 2018
    NOTICE:  BL1: Booting BL31
    NOTICE:  BL31: v1.5(release):1f8ca7e (Marvell-devel-18.12.2)
    NOTICE:  BL31: Built : 13:4
    U-Boot 2018.03-devel-18.12.3-gc9aa92c-armbian (Dec 26 2018 - 13:45:06 +0100)
    Model: Marvell Armada 3720 Community Board ESPRESSOBin
           CPU     1000 [MHz]
           L2      800 [MHz]
           TClock  200 [MHz]
           DDR     800 [MHz]
    DRAM:  2 GiB
    Comphy chip #0:
    Comphy-0: USB3          5 Gbps    
    Comphy-1: PEX0          2.5 Gbps  
    Comphy-2: SATA0         6 Gbps    
    SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
    flags: ncq led only pmp fbss pio slum part sxs 
    PCIE-0: Link down
    MMC:   sdhci@d0000: 0
    Loading Environment from SPI Flash... SF: Detected w25q32dw with page size 256 Bytes, erase size 4 KiB, total 4 MiB
    OK
    Model: Marvell Armada 3720 Community Board ESPRESSOBin
    Net:   eth0: neta@30000 [PRIME]
    Hit any key to stop autoboot:  0 
     
     
    1119 bytes read in 14 ms (77.1 KiB/s)
    ## Executing script at 06d00000
    243 bytes read in 5 ms (46.9 KiB/s)
    15690240 bytes read in 673 ms (22.2 MiB/s)
    5981154 bytes read in 270 ms (21.1 MiB/s)
    ** File not found /boot/dtb/marvell/armada-3720-community.dtb **
    8607 bytes read in 10 ms (839.8 KiB/s)
    ## Loading init Ramdisk from Legacy Image at 01100000 ...
       Image Name:   uInitrd
       Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
       Data Size:    5981090 Bytes = 5.7 MiB
       Load Address: 00000000
       Entry Point:  00000000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 06000000
       Booting using the fdt blob at 0x6000000
       Loading Ramdisk to 7f076000, end 7f62a3a2 ... OK
       Using Device Tree in place at 0000000006000000, end 000000000600519e
    Starting kernel ...
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 4.18.8-mvebu64 (root@nightly) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #259 SMP PREEMPT Wed Sep 19 11:14:00 CEST 2018
    [    0.000000] Machine model: Globalscale Marvell ESPRESSOBin Board
    [    0.000000] earlycon: ar3700_uart0 at MMIO 0x00000000d0012000 (options '')
    [    0.000000] bootconsole [ar3700_uart0] enabled
    Loading, please wait...
    starting version 239
     
     
    root@espressobin:~# cat /boot/boot.cmd 
    # DO NOT EDIT THIS FILE
    #
    # Please edit /boot/armbianEnv.txt to set supported parameters
    #
    # default values
    setenv rootdev "/dev/mmcblk0p1"
    setenv verbosity "1"
    setenv rootfstype "ext4"
    # additional values
    setenv ethaddr "F0:AD:4E:03:64:7F"
    load ${boot_interface} ${devnum}:1 ${scriptaddr} ${prefix}armbianEnv.txt
    env import -t ${scriptaddr} ${filesize}
    setenv bootargs "$console root=${rootdev} rootfstype=${rootfstype} rootwait loglevel=${verbosity} usb-storage.quirks=${usbstoragequirks} mtdparts=spi0.0:1536k(uboot),64k(uboot-environment),-(reserved) ${extraargs}"
    setenv fdt_name_a dtb/marvell/armada-3720-community.dtb
    setenv fdt_name_b dtb/marvell/armada-3720-espressobin.dtb
    ext4load $boot_interface 0:1 $kernel_addr ${prefix}$image_name
    ext4load $boot_interface 0:1 $initrd_addr ${prefix}$initrd_image
    ext4load $boot_interface 0:1 $fdt_addr ${prefix}$fdt_name_a
    ext4load $boot_interface 0:1 $fdt_addr ${prefix}$fdt_name_b
    booti $kernel_addr $initrd_addr $fdt_addr
    # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
     
     
    root@espressobin:~# ls -al /boot/dtb/marvell/
    total 124
    drwxr-xr-x 2 root root  4096 Aug  8  2019 .
    drwxr-xr-x 3 root root  4096 Aug  8  2019 ..
    -rw-r--r-- 1 root root  9158 Jun 25  2019 armada-3720-db.dtb
    -rw-r--r-- 1 root root  8942 Jun 25  2019 armada-3720-espressobin.dtb
     
     
     
    And finally "uboot environment" :
     
    Marvell>> printenv
    arch=arm
    baudrate=115200
    board=mvebu_armada-37xx
    board_name=mvebu_armada-37xx
    boot_a_script=ext4load ${boot_interface} ${devnum}:1 ${scriptaddr} ${prefix}boot.scr;source ${scriptaddr};
    boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
    boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
    boot_net_pci_enum=pci enum
    boot_net_usb_start=usb start
    boot_prefixes=/ /boot/
    boot_script_dhcp=boot.scr.uimg
    boot_scripts=boot.scr.uimg boot.scr
    boot_targets=usb sata mmc1 mmc0
    bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
    bootcmd_dhcp=run boot_net_usb_start; run boot_net_pci_enum; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
    bootcmd_mmc0=setenv devnum 0; setenv boot_interface mmc; run scan_dev_for_boot;
    bootcmd_mmc1=setenv devnum 1; setenv boot_interface mmc; run scan_dev_for_boot;
    bootcmd_nfs=run get_images; run set_bootargs; booti $kernel_addr_r $ramdisk_addr_r $fdt_addr_r
    bootcmd_pxe=run boot_net_usb_start; run boot_net_pci_enum; dhcp; if pxe get; then pxe boot; fi
    bootcmd_sata=setenv devnum 0; scsi scan; scsi dev 0; setenv boot_interface scsi; run scan_dev_for_boot;
    bootcmd_scsi0=setenv devnum 0; run scsi_boot
    bootcmd_usb=setenv devnum 0; usb start;setenv boot_interface usb; run scan_dev_for_boot;
    bootcmd_usb0=setenv devnum 0; run usb_boot
    bootdelay=2
    console=console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000
    cpu=armv8
    distro_bootcmd=setenv scsi_need_init; for target in ${boot_targets}; do run bootcmd_${target}; done
    efi_dtb_prefixes=/ /dtb/ /dtb/current/
    eth1addr=00:51:82:11:22:01
    eth2addr=00:51:82:11:22:02
    eth3addr=00:51:82:11:22:03
    ethact=neta@30000
    ethaddr=00:51:82:11:22:00
    ethprime=eth0
    extra_params=pci=pcie_bus_safe
    fdt_addr=0x6000000
    fdt_addr_r=0x6f00000
    fdt_high=0xffffffffffffffff
    fdt_name=fdt.dtb
    fdtcontroladdr=7f7142d8
    gatewayip=10.4.50.254
    get_images=tftpboot $kernel_addr_r $image_name; tftpboot $fdt_addr_r $fdt_name; run get_ramdisk
    get_ramdisk=if test "${ramdisk_name}" != "-"; then tftpboot $ramdisk_addr_r $ramdisk_name; else setenv ramdisk_addr_r -;fi
    hostname=marvell
    image_name=boot/Image
    initrd_addr=0x1100000
    initrd_image=uInitrd
    initrd_size=0x2000000
    ipaddr=0.0.0.0
    kernel_addr=0x7000000
    kernel_addr_r=0x7000000
    load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
    loadaddr=0x8000000
    mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
    netdev=eth0
    netmask=255.255.255.0
    pxefile_addr_r=0x6e00000
    ramdisk_addr_r=0xa000000
    ramdisk_name=-
    root=root=/dev/nfs rw
    rootpath=/srv/nfs
    scan_dev_for_boot=for prefix in ${boot_prefixes}; do echo ${prefix};run boot_a_script; done
    scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
    scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
    scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
    scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
    scriptaddr=0x6d00000
    scsi_boot=run scsi_init; if scsi dev ${devnum}; then setenv devtype scsi; run scan_dev_for_boot_part; fi
    scsi_init=if ${scsi_need_init}; then setenv scsi_need_init false; scsi scan; fi
    serverip=0.0.0.0
    set_bootargs=setenv bootargs $console $root ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:none nfsroot=$serverip:$rootpath $extra_params $cpuidle
    soc=mvebu
    stderr=serial@12000
    stdin=serial@12000
    stdout=serial@12000
    usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
    vendor=Marvell
    Environment size: 5204/65532 bytes
     
  4. Like
    y52 got a reaction from Igor in rebuild rtl8189es from GIT for OPI+   
    Thanks to the Armbian team for the headers scripts generation bug fixing and the minor version 5.11 release.
    I was able upgrading the 5.10 image to 5.11 and building the 5 october .
     
    Here is a recipe :
    root@orangepiplus:~# apt-get update && apt-get upgrade
    root@orangepiplus:~# cd /usr/src/linux-headers-$(uname -r)
    root@orangepiplus:/usr/src/linux-headers-3.4.112-sun8i# make scripts
    root@orangepiplus:~# cd /usr/src
    root@orangepiplus:/usr/src# git clone https://github.com/jwrdegoede/rtl8189ES_linux/
    root@orangepiplus:/usr/src# cd rtl8189ES_linux
    root@orangepiplus:/usr/src/rtl8189ES_linux# git checkout 080f2aaf6bc8e08eeb3b51f0b8c377eae1ea7ed7
    root@orangepiplus:/usr/src/rtl8189ES_linux#
    wget https://raw.githubusercontent.com/jernejsk/OpenELEC-OPi2/openelec-7.0/packages/linux-drivers/RTL8189ES/patches/RTL8189ES-000-change-build-settings.patch
    root@orangepiplus:/usr/src/rtl8189ES_linux# patch -p1 < RTL8189ES-000-change-build-settings.patch
    root@orangepiplus:/usr/src/rtl8189ES_linux#
    make ARCH=arm KSRC=/usr/src/linux-headers-$(uname -r) CROSS_COMPILE=
     
    The "make install" doesn't run. I copied it manually :
    cp -a 8189es.ko /lib/modules/3.4.112-sun8i/kernel/drivers/net/wireless/rtl8189es/
     
    root@orangepiplus:/usr/src/rtl8189ES_linux# modinfo 8189es.ko
    filename:       /usr/src/rtl8189ES_linux/8189es.ko
    version:        v4.3.18.1_15373.20151005 <== 5 october 2015
    author:         Realtek Semiconductor Corp.
    description:    Realtek Wireless Lan Driver
    license:        GPL
    srcversion:     AD6BE9C509ECC03E70462BA
    alias:          sdio:c*v024Cd8179*
    depends:        
    vermagic:       3.4.112-sun8i SMP preempt mod_unload modversions ARMv7 p2v8


    I enabled the Monitor mode in the Make file.

    It even shows up in the module capabilities:
    root@orangepiplus:/usr/src/rtl8189ES_linux# iw list
            Supported Ciphers:
                    * WEP40 (00-0f-ac:1)
                    * WEP104 (00-0f-ac:5)
                    * TKIP (00-0f-ac:2)
                    * CCMP (00-0f-ac:4)
            Available Antennas: TX 0 RX 0
            Supported interface modes:
                     * IBSS
                     * managed
                     * AP
                     * monitor   <----
                     * P2P-client
                     * P2P-GO
            software interface modes (can always be added):
                     * monitor

    Unfortunately, the switch to monitor mode doesn't run :

    "iwconfig wlan0 mode monitor"

    oot@orangepiplus:/usr/src/rtl8189ES_linux# iwconfig wlan0 mode monitor
    Error for wireless request "Set Mode" (8B06) :
        SET failed on device wlan0 ; Operation not permitted.

    Despite this, the positive bug fix for this driver is that the wlan interface shows up correctly in the single instance and is not duplicated:

    root@orangepiplus:~# iwconfig
    lo        no wireless extensions.

    tunl0     no wireless extensions.

    wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
              Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated  

    I haven't tested the driver performance and the packets drop rate.
     
     
    I believe it is worth integrating in the new release.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.