Tag: orange pi

  • Orange Pi Plus 2E – Install Armbian 26.2.0 (Debian Trixie) in late 2025 / early 2026

    Orange Pi Plus 2E – Install Armbian 26.2.0 (Debian Trixie) in late 2025 / early 2026

    Brief history of the Orange Pi Plus 2E

    Orange Pi Plus 2E was released by Shenzhen Xunlong 2016. There is no solid information of the launch day, but it is around April. The SBC is powered by Allwinner H3 chip (1.3 GHz, 4 cores) with 2GB DDR3 RAM and 16GB eMMC.

    I personally don’t like the Allwinner chip due to poor performance. Suprisingly, this is my first-ever purchased SBC since it is very cheap.

    Also, thanks to the poor stock firmware, I get to know Armbian and setup the Orange Pi Plus 2E as a home server with OpenVPN, Wireguard VPN, Pi-Hole and DDNS. It worked well for 2 and a half year (2019 – 2021), until I shut it down for new device upgrade.

    Today, I take out the board for some tests before giving away. Unfortunately, the boot process interrupted halfway, so I decided to give it a fresh OS installation.

    Install Armbian 26.2.0 (Debian Trixie)

    The installation procedure for Allwinner chip is simple (for those who knows):

    1. Boot up Armbian from the microSD card
    2. Go to the OS and run the installation script to copy the OS to the internal eMMC
    Step1: Download Debian 13 (Trixie) Minimal/IOT images with Armbian Linux v6.6

    Once you downloaded the image, burn it to the microSD using Rufus.

    Now, insert the microSD card to the Orange Pi Plus 2E, press and hold the SW2 button (sdcard boot) and connect the power supply. Armbian should be up and running from the microSD in few minutes.

    Follow the console message to create the root password, and create a normal account/username. Once it is done, you can playaround with the OS. Some useful command:

    armbian-config

    armbian-upgrade

    Step 2. Install Armbian to the internal eMMC

    With root access, run the below command

    armbian-install

    Select 2. Boot from eMMC2 – System on eMMC and follow the guide to complete the installation

    During this process, the eMMC will be formated. In my case, I choose ext4 for filesystem. It will take around 5 minutes to complete.

    Once you see this message, just press Enter, disconnect the power supply, remove the microSD card and power the SBC back on. You are ready to go!

    Some Tests with the Orange Pi Plus 2E on Dec 2025

    OS and Linux kernel information

    root@orangepiplus2e:~# cat /etc/os-release
    PRETTY_NAME="Armbian_community 26.2.0-trunk.44 trixie"
    NAME="Debian GNU/Linux"
    VERSION_ID="13"
    VERSION="13 (trixie)"
    VERSION_CODENAME=trixie
    DEBIAN_VERSION_FULL=13.2
    ID=debian
    HOME_URL="https://www.armbian.com"
    SUPPORT_URL="https://forum.armbian.com"
    BUG_REPORT_URL="https://www.armbian.com/bugs"
    ARMBIAN_PRETTY_NAME="Armbian_community 26.2.0-trunk.44 trixie"
    root@orangepiplus2e:~# uname -a
    Linux orangepiplus2e 6.6.75-legacy-sunxi #1 SMP Sat Feb  1 17:37:57 UTC 2025 armv7l GNU/Linux

    eMMC read sequential speed: 80.99 MB/s

    root@orangepiplus2e:~# sudo hdparm -Tt /dev/mmcblk2
    /dev/mmcblk2:
     Timing cached reads:   1168 MB in  2.00 seconds = 583.62 MB/sec
     Timing buffered disk reads: 244 MB in  3.01 seconds =  80.99 MB/sec
    root@orangepiplus2e:~#

    eMMC sequential write speed: 151 MB/s

    root@orangepiplus2e:~# dd if=/dev/zero of=/tmp/testfile.img bs=1G count=1 oflag=dsync
    dd: error writing '/tmp/testfile.img': No space left on device
    1+0 records in
    0+0 records out
    1052647424 bytes (1.1 GB, 1004 MiB) copied, 6.95331 s, 151 MB/s
    root@orangepiplus2e:~#

    ipef3 throughput

    • Normal, 4 streams (Upload): 849 Mbps
    • Reversed, 4 streams (Download): 914 Mbps

    That is all. Thanks for reading and long-live the Orange Pi Plus 2E.

  • Orange Pi R1 Plus/ R1 Plus LTS OpenWrt Firmware (English & Minimal Packages)

    Orange Pi R1 Plus/ R1 Plus LTS OpenWrt Firmware (English & Minimal Packages)

    This is the Orange Pi R1 Plus/ R1 Plus LTS OpenWrt firmware with minimal packages. The default language is English. You can write the ext4-sysupgrade.img.gz to the microSD card with Rufus or balenaEtcher, the root file system will be automatically expanded during first boot, which allow you to use all the space of the microSD card.

    You can also build the firmware for the Orange Pi R1 Plus / R1 Plus LTS from my source code. It is a fork of the Orange Pi OpenWrt, with some adjustments on the defconfig file. Please use the openwrt-21.02 branch when building the firmware.

    Firmware Detail

    OpenWrt 21.02.2 r16495-bf0c965af0

    LuCI openwrt-21.02 branch git-22.046.85957-59c3392

    Kernel 5.4.179

    Orange Pi R1 Plus Specification

    CPU: Rockchip RK3328. Quad-Core ARM Cortex-A53 64-Bit. Up To 1.5GHz

    GPU: Mali-450MP2, Supports OpenGL ES 1.0/2.0

    Memory: 1GB LPDDR4 (2x 512DDR4)

    Storage: 16MB SPI NOR Flash

    Network:

    • 10M/100M/1000M Integrated Ethernet by Realtek RTL8111F
    • 10M/100M/1000M USB Converted Ethernet by Realtek RTL8153B

    Orange Pi R1 Plus LTS Specification

    CPU: Rockchip RK3328. Quad-Core ARM Cortex-A53 64-Bit. Up To 1.5GHz

    GPU: Mali-450MP2, Supports OpenGL ES 1.0/2.0

    Memory: 1GB LPDDR3 (Not Shared With GPU)

    Storage: 16MB SPI NOR Flash

    Network:

    • 10M/100M/1000M Integrated Ethernet by MotorComm YT8531C
    • 10M/100M/1000M USB Converted Ethernet by Realtek RTL8153B

    R1 Plus LTS Overview and OpenWRT Installation

    Screenshot

    Status page

    Network Interfaces page
    Software page – I am using a 2GB microSD card

    List of packages with opkg list-installed

    base-files - 1444-r16495-bf0c965af0
    bash - 5.1-2
    block-mount - 2021-01-04-c53b1882-1
    busybox - 1.33.2-2
    ca-bundle - 20210119-1
    cgi-io - 2021-09-08-98cef9dd-20
    dnsmasq - 2.85-3
    dropbear - 2020.81-2
    e2fsprogs - 1.45.6-2
    f2fs-tools - 1.14.0-1
    f2fsck - 1.14.0-1
    fdisk - 2.36.1-2
    firewall - 2021-03-23-61db17ed-1
    fstools - 2021-01-04-c53b1882-1
    fwtool - 2019-11-12-8f7fe925-1
    getrandom - 2020-10-25-9ef88681-2
    htop - 3.1.2-1
    ifstat - 1.1-3
    iftop - 2018-10-03-77901c8c-2
    ip6tables - 1.8.7-1
    ipset - 7.6-1
    iptables - 1.8.7-1
    iptables-mod-conntrack-extra - 1.8.7-1
    iptables-mod-ipopt - 1.8.7-1
    iptables-mod-tproxy - 1.8.7-1
    jshn - 2021-05-16-b14c4688-2
    jsonfilter - 2018-02-04-c7e938d6-1
    kernel - 5.4.179-1-0668302a4d3e5f16962d6a1f596f7c01
    kmod-asn1-decoder - 5.4.179-1
    kmod-gpio-button-hotplug - 5.4.179-3
    kmod-ip6tables - 5.4.179-1
    kmod-ipt-conntrack - 5.4.179-1
    kmod-ipt-conntrack-extra - 5.4.179-1
    kmod-ipt-core - 5.4.179-1
    kmod-ipt-ipopt - 5.4.179-1
    kmod-ipt-ipset - 5.4.179-1
    kmod-ipt-nat - 5.4.179-1
    kmod-ipt-nat6 - 5.4.179-1
    kmod-ipt-offload - 5.4.179-1
    kmod-ipt-raw - 5.4.179-1
    kmod-ipt-tproxy - 5.4.179-1
    kmod-lib-crc-ccitt - 5.4.179-1
    kmod-lib-textsearch - 5.4.179-1
    kmod-mii - 5.4.179-1
    kmod-nf-conntrack - 5.4.179-1
    kmod-nf-conntrack6 - 5.4.179-1
    kmod-nf-flow - 5.4.179-1
    kmod-nf-ipt - 5.4.179-1
    kmod-nf-ipt6 - 5.4.179-1
    kmod-nf-nat - 5.4.179-1
    kmod-nf-nat6 - 5.4.179-1
    kmod-nf-nathelper - 5.4.179-1
    kmod-nf-nathelper-extra - 5.4.179-1
    kmod-nf-reject - 5.4.179-1
    kmod-nf-reject6 - 5.4.179-1
    kmod-nfnetlink - 5.4.179-1
    kmod-nls-base - 5.4.179-1
    kmod-ppp - 5.4.179-1
    kmod-pppoe - 5.4.179-1
    kmod-pppox - 5.4.179-1
    kmod-slhc - 5.4.179-1
    kmod-usb-core - 5.4.179-1
    kmod-usb-net - 5.4.179-1
    kmod-usb-net-rtl8152 - 5.4.179-1
    kmod-usb-serial - 5.4.179-1
    kmod-usb-serial-option - 5.4.179-1
    kmod-usb-serial-wwan - 5.4.179-1
    libblkid1 - 2.36.1-2
    libblobmsg-json20210516 - 2021-05-16-b14c4688-2
    libc - 1.1.24-3
    libcomerr0 - 1.45.6-2
    libext2fs2 - 1.45.6-2
    libf2fs6 - 1.14.0-1
    libfdisk1 - 2.36.1-2
    libgcc1 - 8.4.0-3
    libip4tc2 - 1.8.7-1
    libip6tc2 - 1.8.7-1
    libipset13 - 7.6-1
    libiwinfo-data - 2021-04-30-c45f0b58-2.1
    libiwinfo-lua - 2021-04-30-c45f0b58-2.1
    libiwinfo20210430 - 2021-04-30-c45f0b58-2.1
    libjson-c5 - 0.15-2
    libjson-script20210516 - 2021-05-16-b14c4688-2
    liblua5.1.5 - 5.1.5-9
    liblucihttp-lua - 2021-06-11-3dc89af4-1
    liblucihttp0 - 2021-06-11-3dc89af4-1
    libmnl0 - 1.0.4-2
    libmount1 - 2.36.1-2
    libncurses6 - 6.2-3
    libnetsnmp - 5.8-2
    libnl-tiny1 - 2020-08-05-c291088f-2
    libpcap1 - 1.9.1-3.1
    libpci - 3.7.0-2
    libpthread - 1.1.24-3
    libreadline8 - 8.1-1
    librt - 1.1.24-3
    libsmartcols1 - 2.36.1-2
    libss2 - 1.45.6-2
    libubox20210516 - 2021-05-16-b14c4688-2
    libubus-lua - 2021-06-30-4fc532c8-2
    libubus20210630 - 2021-06-30-4fc532c8-2
    libuci20130104 - 2021-04-14-4b3db117-5
    libuclient20201210 - 2021-05-14-6a6011df-1
    libusb-1.0-0 - 1.0.24-3
    libustream-wolfssl20201210 - 2022-01-16-868fd881-1
    libuuid1 - 2.36.1-2
    libwolfssl5.1.1.99a5b54a - 5.1.1-stable-1
    libxtables12 - 1.8.7-1
    logd - 2020-10-25-9ef88681-2
    losetup - 2.36.1-2
    lua - 5.1.5-9
    luci - git-20.074.84698-ead5e81
    luci-app-firewall - git-22.046.85957-59c3392
    luci-app-opkg - git-21.312.69848-4745991
    luci-base - git-22.046.85957-59c3392
    luci-compat - git-22.046.85744-f08a0f6
    luci-lib-base - git-20.232.39649-1f6dc29
    luci-lib-ip - git-20.250.76529-62505bd
    luci-lib-ipkg - git-18.318.71164-4bbe325
    luci-lib-jsonc - git-19.317.29469-8da8f38
    luci-lib-nixio - git-20.234.06894-c4a4e43
    luci-mod-admin-full - git-19.253.48496-3f93650
    luci-mod-network - git-22.046.85061-dd54dce
    luci-mod-status - git-22.046.85784-0ac2542
    luci-mod-system - git-22.019.40321-7a37d02
    luci-proto-ipv6 - git-21.148.49484-14511e5
    luci-proto-ppp - git-21.163.64918-6c6559a
    luci-theme-bootstrap - git-22.047.35373-cc582eb
    mkf2fs - 1.14.0-1
    mount-utils - 2.36.1-2
    mtd - 26
    netifd - 2021-10-30-8f82742c-1
    odhcp6c - 2021-01-09-53f07e90-16
    odhcpd-ipv6only - 2021-07-18-bc9d317f-3
    openwrt-keyring - 2021-02-20-49283916-2
    opkg - 2021-06-13-1bf042dd-1
    partx-utils - 2.36.1-2
    ppp - 2.4.8.git-2020-10-03-3
    ppp-mod-pppoe - 2.4.8.git-2020-10-03-3
    procd - 2021-03-08-2cfc26f8-1
    resize2fs - 1.45.6-2
    rpcd - 2021-03-11-ccb75178-1
    rpcd-mod-file - 2021-03-11-ccb75178-1
    rpcd-mod-iwinfo - 2021-03-11-ccb75178-1
    rpcd-mod-luci - 20210614
    rpcd-mod-rrdns - 20170710
    terminfo - 6.2-3
    uboot-envtools - 2021.01-3
    ubox - 2020-10-25-9ef88681-2
    ubus - 2021-06-30-4fc532c8-2
    ubusd - 2021-06-30-4fc532c8-2
    uci - 2021-04-14-4b3db117-5
    uclient-fetch - 2021-05-14-6a6011df-1
    uhttpd - 2021-03-21-15346de8-2
    uhttpd-mod-ubus - 2021-03-21-15346de8-2
    urandom-seed - 3
    urngd - 2020-01-21-c7f7b6b6-1
    usign - 2020-05-23-f1f65026-1
    

    Build the firmware with Github Action

    You can also build the firmware with Github action. Here is the .config file

    # Devices
    CONFIG_TARGET_rockchip=y
    CONFIG_TARGET_rockchip_armv8=y
    CONFIG_TARGET_rockchip_armv8_DEVICE_xunlong_orangepi-r1-plus-lts=y
    CONFIG_TARGET_ROOTFS_PARTSIZE=512
    
    # iptables
    
    CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
    CONFIG_PACKAGE_iptables-mod-ipopt=y
    CONFIG_PACKAGE_iptables-mod-tproxy=y
    
    # Luci
    
    CONFIG_PACKAGE_luci=y
    CONFIG_PACKAGE_luci-base=y
    CONFIG_PACKAGE_liblucihttp=y
    CONFIG_PACKAGE_liblucihttp-lua=y
    CONFIG_PACKAGE_uhttpd=y
    CONFIG_PACKAGE_uhttpd-mod-ubus=y
    CONFIG_PACKAGE_luci-mod-admin-full=y
    CONFIG_PACKAGE_luci-mod-network=y
    CONFIG_PACKAGE_luci-mod-status=y
    CONFIG_PACKAGE_luci-mod-system=y
    CONFIG_PACKAGE_luci-app-firewall=y
    CONFIG_PACKAGE_luci-app-opkg=y
    CONFIG_PACKAGE_luci-theme-bootstrap=y
    CONFIG_PACKAGE_luci-proto-ipv6=y
    CONFIG_PACKAGE_luci-proto-ppp=y
    CONFIG_PACKAGE_luci-lib-base=y
    CONFIG_PACKAGE_luci-lib-ip=y
    CONFIG_PACKAGE_luci-lib-jsonc=y
    CONFIG_PACKAGE_luci-lib-nixio=y
    
    # Packages
    
    CONFIG_PACKAGE_ifstat=y
    CONFIG_PACKAGE_iftop=y
    CONFIG_PACKAGE_ipset=y
    CONFIG_PACKAGE_htop=y
    CONFIG_PACKAGE_libusb-1.0=y
    
    # Kmod
    
    CONFIG_PACKAGE_kmod-ipt-nat6=y
    CONFIG_PACKAGE_kmod-nf-nat6=y
    CONFIG_PACKAGE_kmod-usb-serial-option=y

    don’t forget to change the repo URL on the the build-openwrt.yml:

    #
    # Copyright (c) 2019-2020 P3TERX <https://p3terx.com>
    #
    # This is free software, licensed under the MIT License.
    # See /LICENSE for more information.
    #
    # https://github.com/P3TERX/Actions-OpenWrt
    # Description: Build OpenWrt using GitHub Actions
    #
    
    name: Build OpenWrt
    
    on:
      repository_dispatch:
      workflow_dispatch:
        inputs:
          ssh:
            description: 'SSH connection to Actions'
            required: false
            default: 'false'
    
    env:
      REPO_URL: https://github.com/vantechcorner/openwrt-orangepi
      REPO_BRANCH: openwrt-21.02
      FEEDS_CONF: feeds.conf.default
      CONFIG_FILE: .config
      DIY_P1_SH: diy-part1.sh
      DIY_P2_SH: diy-part2.sh
      UPLOAD_BIN_DIR: false
      UPLOAD_FIRMWARE: true
      UPLOAD_COWTRANSFER: false
      UPLOAD_WETRANSFER: false
      UPLOAD_RELEASE: false
      TZ: Asia/Shanghai
    
    jobs:
      build:
        runs-on: ubuntu-20.04

    Good luck!