Raspberry Pi 4 released

Sorry, I should have explained earlier, that you should start a new topic with suitable title (e.g. RPi 4 + good AP for gaming, or whatever). That will hopefully help people know what the topic is about including those who are able to give you an advice , and also avoid hijaking this original post.

My fault. Forgot this is already a post that I was commenting on.

Please open a separate topic for your issue.

Hi there,

I'm wondering why the Raspberry Pi 4 is still in the snapshot but not in the releases
Is it going to change anytime soon? Using it for more than 6 months, never had any crash or bug for now, what are the condition for having it in Releases ?

I'd imagine it'll get done at the next major release.

2 Likes

can somebody run

openssl speed -evp aes-128-cbc -elapsed

if openssl isn't installed then, opkg update && opkg install openssl-util and run the command.

Thanks.

You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 2845089 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 761759 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 195810 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 49270 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 6171 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 16384 size blocks: 3088 aes-128-cbc's in 3.00s
OpenSSL 1.1.1d  10 Sep 2019
built on: Mon Mar  2 21:06:02 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) 
compiler: aarch64-openwrt-linux-musl-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_SMALL_FOOTPRINT
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      15173.81k    16250.86k    16709.12k    16817.49k    16850.94k    16864.60k

This was from an earlier post, without overclocking.

This is with overclocking to 2.0 GHz on all cores.

And the latest benchmark:

It seems that openssl shows different numbers, the first two outputs where of openssl speed while the last one was openssl speed -evp aes-128-cbc -elapsed.

Whats the difference between the two, and the reason for the vast different of aes-128-cbc benchmark numbers. Any explanation?

explanation to be found within

2 Likes

imagebuilder@today~idle-w-triple-default-passive-heatsink

compiler: aarch64-openwrt-linux-musl-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -Os -pipe -fno-caller-saves -fno-plt -fhonour-coptsT
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      37823.40k    40704.68k    41817.86k    42117.80k    42207.91k    42216.11k

Have you overclocked the RPi4? Or have you added some software crypto? I also don't understand the difference among my results, yours, and jeff1's.

yet to try... i'm guessing it's just thermal/power scaling variance... ( edit: ramp up from idle vs just ran the command 6 seconds ago... so already at full speed ) takes it a few seconds to kick from 600000 > 1500000

i.e. the better the cooler, the less scaling, the higher the numbers...

so...

this is no cooler at all?

I have a passive cooler casing. I was monitoring the temperature during the tests and it never deviated from 44-45°.

2 Likes

Have just got these results from my RPi4. Running a build compiled from master 3 days ago. Temperature between 47-50°.

root@RPi4:~# openssl speed -evp aes-128-cbc -elapsed
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 7077208 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 1891628 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 485248 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 122912 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 15324 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 16384 size blocks: 7669 aes-128-cbc's in 3.00s
OpenSSL 1.1.1g  21 Apr 2020
built on: Sun Apr 26 12:19:33 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: aarch64-openwrt-linux-musl-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_SMALL_FOOTPRINT
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      37745.11k    40354.73k    41407.83k    41953.96k    41844.74k    41882.97k
root@RPi4:~# openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 13301874 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 3529666 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 256 size blocks: 913143 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 1024 size blocks: 228576 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 8192 size blocks: 28826 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 16384 size blocks: 14402 aes-128 cbc's in 2.99s
OpenSSL 1.1.1g  21 Apr 2020
built on: Sun Apr 26 12:19:33 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: aarch64-openwrt-linux-musl-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_SMALL_FOOTPRINT
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128 cbc      70943.33k    75551.38k    78182.14k    78281.55k    78977.46k    78917.18k

looking like ramp-up factor

echo 45 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

No significant difference. Maybe there were some updates since the 14/Feb image I am running.

1 Like

this may be of use to someone... really hackorific ...wip;

imagebuilderscr
#!/bin/bash
D="`date +%Y%m%d-%H%M`" #ecmd D="$(date +%Y%m%d-%H%M)"					#D="`date +%Y%m%d-%H%M%S`"
sepL="||||||||||||||||||||||||||||||||||||||||||||||||"
sepS="||||<>||||"
sepI="||>"
owrt="https://downloads.openwrt.org"




IBMOD=1
RPI4uart2=1



allparams="${*}"
H="${HOSTNAME}"

dbgthresh=${dbgthresh:-3}


##########################
s="1"
slpA=1; slpB=2; slpC=3
dolog="${dolog:-n}"
logall="${logall:-n}"
logthresh="3"
dbglvld="1"
dbglvl=1
logynd="n"
logfiled="./$0.`date +%y%m%d-%H%M`.log"
dodebug="n"
debugALL="y"
silenceECMD="n"
logD="$PWD/logs"; mkdir -p $logD


ecmd() {
dE="`date +%Y%m%d-%H%M%S`"
if [ -z "$logD" ]; then
    logD="$PWD/logs"; mkdir -p $logD
    echo "logD no default -> using $logD"; sleep 1
fi
if [ "$silenceECMD" == "y" ]; then set +x; fi
if [ "$1" == "-n" ]; then
	echo "ECMD-with-n: ${*}"
	echdo="echo -n " && shift 1
else
	echdo="echo "
fi
if [ ! "$#" -eq 3 ]; then echo ""; echo "ecmd with non-3-params: ${*}"; echo ""; sleep 5; fi
ecmdstat=
if [ -z "$2" ]; then
	logF "no:$# full:$*" "${logD}/log-ecmd-withnoparam2.log"
	eslp=$s;
	ecmdstat="$ecmdstat Seslp:${eslp}"
else
	if [ "$2" -eq 0 ] || [ "$2" -lt 10 ]; then
		eslp=$2
	else
		logF "no:$# full:$* params:$2" "${logD}/log-ecmd-param2-not0-10.log"
		eslp=$s;
		ecmdstat="$ecmdstat Ss:${eslp}"
	fi
fi
if [ -z "$3" ]; then
	dbglvl=$dbglvld						#No param 3 so set dbvlvl-aka-msglvl to topvar $dbglvld
	ecmdstat="$ecmdstat Dzvlvd:${dbglvld}"
	logF "no:$# full:$*" "${logD}/log-ecmd-param3-z.log"
else
	if [ "$3" -eq 0 ] || [ "$3" -lt 23 ]; then
		dbglvl=$3;
		logF "no:$# full:$* params:$2" "${logD}/log-ecmd-allmsgs-0-10.log"
	else
		dbglvl=$dbglvld;				#wasnt a number 0-23 also set to topvar dbglvld
		ecmdstat="$ecmdstat Dn0-23:${3}"
		logF "no:$# full:$* params:$2" "${logD}/log-ecmd-param3-not0-10.log"
	fi
fi
if [ "$dbglvl" -lt "$dbgthresh" ] || [ "$dbglvl" -eq "$dbgthresh" ]; then
    $echdo "${1}"
	if [ "$logyn" == "y" ]; then
		$echdo "232-6:::D$dbglvl:${1}" >> $logfiled
	fi
	sleep $eslp
fi
if [ "$logall" == "y" ]; then
       	$echdo "D$dbglvl:L`wc -l ${logD}/ecmd.all 2>/dev/null`:M${1}" >> ${logD}/ecmd.all
	logF "$ecmdstat ${*}" "${logD}/ecmd.log-allmessages-with-verbosestat.log"

fi

if [ "$silenceECMD" == "y" ]; then set -x; fi

}

logF() {
    if [ "$logall" = "n" ]; then
        return 0
    fi
	echo "${*}" >> "${2}"
}

usage() {
    cat <<EOF

    $0      <profile>       <release>
    ########################################################
    $0      rpi-4           snapshot

EOF

}


case "$1" in
    rpi-4)
        PROFILE="rpi-4"
        case "$2" in
            snapshot) VERSION="snapshot"
            iburl="$owrt/snapshots/targets/bcm27xx/bcm2711/openwrt-imagebuilder-bcm27xx-bcm2711.Linux-x86_64.tar.xz"
            ;;
            *) echo Unknown release; usage; exit; ;;
        esac
    ;;
    *) echo Unknown model; usage; exit; ;;
esac

PROFILEn="$1" # script name # case above semi handles if -z 1 or 2...
#PROFILE set above is ibname
#BOARD is on board name

ib_archive_name="$(basename $iburl)"
iburlD=$(echo $iburl | sed "s|/${ib_archive_name}||g")

UibFsig="$iburlD/sha256sums"
ib_cache="$PWD/cache"; mkdir -p $ib_cache
ibarchiveC="$ib_cache/$ib_archive_name"
sigstore="$ib_cache/sigstore"
ib_dir="$PWD/$PROFILEn/imagebuilder-$VERSION";
ib_root="$PWD"

PACKAGESdefault="luci bash lsof strace wget curl unzip"

if [ "$3" = "regen" ]; then
    echo "force regenerate ib_dir (regen)"; sleep 2
    IBREGENERATE=1
fi

showsummary() {

    ecmd "" 0 2
    #echo "                 $sepL $D"
    ecmd "        ib_cache: $ib_cache" 0 3
    ecmd "          ib_dir: $ib_dir" 0 3
    ecmd "                  $sepL" 0 2
    ecmd "        PROFILEn: $PROFILEn (scriptname)" 0 2
    ecmd "         PROFILE: $PROFILE (ibname)" 0 2
    ecmd "           BOARD: $BOARD (onboard-fullname: $MODEL)" 0 2
    ecmd "         VERSION: $VERSION" 0 2
    ecmd "           iburl: $(echo $iburl | sed "s|${owrt}/||g")" 0 3
    ecmd "          iburlD: $(echo $iburlD | sed "s|${owrt}/||g")" 0 5
    ecmd "         UibFsig: $(echo $UibFsig | sed "s|${owrt}/||g")" 0 5
    ecmd " ib_archive_name: $ib_archive_name" 0 2
    ecmd "                  $sepL" 0 2
    ecmd "         pkgtxtD: $(echo $ib_packagetxt | sed "s|${ib_root}/||g")" 0 2
    ecmd "          output: $(echo $BIN_DIR | sed "s|${ib_root}/||g")" 0 2
    ecmd "" 2 2

}

downloadibarchive() {
    FN="downloadibarchive"; ecmd "$FN> ${*}" 2 6
    ecmd "$sepL download" 0 5
    ecmd "     get: $1" 0 5
    ecmd "      to: $2" 0 5
    ecmd "   cache: $3" 0 5
    ecmd "$sepL" 2 5
    #wget -nv --show-progress $1 -O $2 2&>1 >/dev/null || (echo "download failed" && return 1)
    wget -nv --show-progress $1 -O $2 2>&1 >/dev/null || (echo "download failed" && return 1)
    return 0
}



checksig() {

FN="checksig"; #echo "$FN> ${*}"; sleep 2

    ecmd "$sepL checksig" 0 6
    ecmd "   filename: $1" 0 6
    ecmd "      cache: $2" 0 6
    ecmd "     sigurl: $3" 0 6
    ecmd "   sigstore: $4" 0 6
    ecmd "$sepL" 0 6


    onlinesigF=$(curl $3 2>/dev/null | grep $1)
    if [ -z "$onlinesigF" ]; then
        echo "Unable get online signature: $3" && exit 1
    fi
    onlinesig=$(echo $onlinesigF | cut -d' ' -f1)

    if ! grep -q "$1" $sigstore; then
        echo "sigcheck: this signature is brand new"
        echo "$onlinesigF" >> $4
        POPULATEIBDIR=1
        return 0

    fi

    offlinesigF=$(cat $4 | grep $1)
    if [ ! -z "$offlinesigF" ]; then
        offlinesig=$(echo $offlinesigF | cut -d' ' -f1)
    fi
    ecmd " online signature: $onlinesig" 0 3
    ecmd "offline signature: $offlinesig" 0 3
    if [ -z "$offlinesigF" ]; then
        echo "$onlinesigF" >> $4
    fi
    if [ "$offlinesig" = "$onlinesig" ]; then
        ecmd "$1 is current" 0 3
        return 0
    fi
    if [ "$offlinesig" != "$onlinesig" ]; then
        echo "$1 is notcurrent"
        sed -i -e "s|${offlinesig}|${onlinesig}|g" $4
        return 1
    fi
    echo "hitbase"; exit 1
}



getibrpi() { FN="getibrpi"; ecmd "$FN> ${*}" 2 5
ibarchiveCS=$(echo $ibarchiveC | sed "s|${ib_root}/||g")
ecmd "$sepS Checking for ib archive in cache" 2 2
if [ ! -f "$ibarchiveC" ]; then
    echo "ibarchiveC: $ibarchiveCS [new]"
    downloadibarchive "$iburl" "$ibarchiveC" "$ib_cache" #need $?
    POPULATEIBDIR=1
else
    echo "ibarchiveC: $ibarchiveCS [exist]"
fi

if ! checksig "$ib_archive_name" "$ib_cache" "$UibFsig" "$sigstore"; then
    echo "$sepS Signature is changed"
    downloadibarchive "$iburl" "$ibarchiveC" "$ib_cache" #need $?
    POPULATEIBDIR=1
else
    echo "$sepS Signature is ok"
fi
}

populateibdir() { FN="populateibdir"; ecmd "$FN> ${*}" 2 5
if [ ! -z "$POPULATEIBDIR" ]; then
    rm -rf $ib_dir 2>/dev/null ; mkdir -p $ib_dir
    echo "Extracting $ib_archive_name [populate-set]"; sleep 2
    (cd $ib_dir; tar Jxf "$ib_cache/$ib_archive_name" --strip=1 --overwrite)
elif [ "$(ls -l $ib_dir | wc -l)" -lt 2 ]; then #echo "WHATISTHIS: $(ls -l $ib_dir | wc -l)"; sleep 5
    echo "POPULATEIPDIR its EMPTY FORCE EXTRACT"; sleep 2
    rm -rf $ib_dir 2>/dev/null ; mkdir -p $ib_dir
    echo "Extracting $ib_archive_name [dir-is-empty]"; sleep 2
    (cd $ib_dir; tar Jxf "$ib_cache/$ib_archive_name" --strip=1 --overwrite)
else
    echo "Extracting $ib_archive_name [default-handle]"; sleep 2
    ecmd "$FN> rm -rf $ib_dir" 1 5
    rm -rf $ib_dir 2>/dev/null; mkdir -p $ib_dir
    (cd $ib_dir; tar Jxf "$ib_cache/$ib_archive_name" --strip=1 --overwrite)
fi
}


pkglisttovarsourceV2() {
    if [ -z "$1" ]; then
        psearchdir="$PWD"
    else
        psearchdir="$1"
    fi
    pkgsTL="/tmp/$DEVICEUNIQ.oneline.txt"
    rm $pkgsTL 2>/dev/null
    gotpackages=0
    if [ -d "$psearchdir" ]; then
        echo "       searchdir: $psearchdir [ok]"
    else
        echo "       searchdir: $psearchdir [nodir]" && sleep 2 && return 2
    fi
    echo -n "export PACKAGES=\"" > $pkgsTL
    if [ ! -f "$psearchdir/packages.txt" ]; then
        ecmd "No custom package list found $psearchdir/packages.txt" 1 1 #return 0
    else
        pkgADDnum=`cat $psearchdir/packages.txt | grep -v '^#' | wc -w`
        echo "Found: $psearchdir/packages.txt ($pkgADDnum)"; sleep 1
        if [ "$pkgADDnum" -gt 0 ]; then
            gotpackages=$((gotpackages+$pkgADDnum));
        fi
        cat $psearchdir/packages.txt | while read PKG THEREST; do
            if [  "$(echo "$PKG" | wc -c)" -lt 2 ]; then continue; fi
            echo $PKG | grep -q '^#' && continue
            echo -n "$PKG " >> $pkgsTL
            #echo "$PKG "; sleep 1
        done
    fi

    if [ ! -f "$psearchdir/packagesrem.txt" ]; then
        ecmd "No custom package rem list found: $psearchdir/packagesrem.txt" 1 1
    else
        pkgREMnum=`cat $psearchdir/packagesrem.txt | grep -v '^#' | wc -w`
        echo "Found: $psearchdir/packagesrem.txt ($pkgREMnum)"; sleep 1

        if [ "$pkgREMnum" -gt 0 ]; then
            gotpackages=$((gotpackages+$pkgREMnum))
        fi

        cat $psearchdir/packagesrem.txt | while read PKG THEREST; do
            if [  "$(echo "$PKG" | wc -c)" -lt 2 ]; then continue; fi
            echo $PKG | grep -q '^#' && continue
            echo -n "-$PKG " >> $pkgsTL
            #echo "-$PKG "; sleep 1
        done
    fi
    echo "\"" >> $pkgsTL
    if [ "$gotpackages" -eq 0 ]; then echo "no packages in files"; return 0; fi
    . $pkgsTL; ecmd "sourcing $gotpackages packages: $PACKAGES" 0 3; ecmd "" 2 3; rm $pkgsTL 2>/dev/null

}


writesamplepackages() {
FN="writesamplepackages"

    cat <<EOF
wget
######################################
kmod-leds-gpio ###+++
kmod-ledtrig-transient
######################################
dtc
######################################
setserial
coreutils-stty
kmod-usb-serial-ftdi
######################################
iptables-mod-geoip
xz
######################################
atftpd
######################################
collectd-mod-thermal
collectd-mod-irq
collectd-mod-conntrack
conntrack
######################################
file
blkid
######################################
-wpad-basic
#wpad
wpad-openssl
zoneinfo-australia-nz
#######################################
kmod-usb-net-rtl8152                            #UE300 usb3 gigabit nic
kmod-usb-net-asix-ax88179
#######################################
kmod-usb-net-pegasus                            #usb2 100M ethernet
#######################################
#kmod-usb-net-ipheth                             #AppleiPhoneUSBEthernetdriver
#usbmuxd
#libimobiledevice
#####################usbutils
#######################################
kmod-usb-net
kmod-usb-net-cdc-ether                          # for android tethering
kmod-usb-net-rndis                              #RNDIS connections
#######################################
-dnsmasq
dnsmasq-full
#######################################
block-mount
#######################################
ipset
#######################################
at
#######################################
bash
lsof
htop
diffutils
vim-fuller
#######################################
unzip
unrar
rsync
#######################################
#bind-dig
nmap
strace
tcpdump
usbutils
pciutils            #lspci
openssl-util
#openssl-util
inotifywatch
#######################################
luci
luci-app-commands
luci-app-uhttpd
luci-app-sqm
luci-app-travelmate
luci-app-adblock
adblock
#######################################
banip
luci-app-banip
#######################################
sqm-scripts
sqm-scripts-extra
luci-app-sqm
#######################################
nlbwmon
luci-app-nlbwmon
#######################################
p910nd
luci-app-p910nd
#######################################
-ppp
-ppp-mod-pppoe
######################################
kmod-wireguard
luci-app-wireguard
######################################
openvpn-openssl
kmod-tun
luci-app-openvpn
openvpn-easy-rsa
vpn-policy-routing
luci-app-vpn-policy-routing
######################################
kmod-veth
######################################
iperf3
iptraf-ng
block-mount
fdisk
losetup
ntfs-3g
ntfs-3g-utils
######################################
irqbalance
minicom
#######################################
samba4-server
samba4-utils
luci-app-samba4
openssh-client #for cisco access
#######################################
#kmod-fs-vfat
EOF

case "$PROFILEn" in
    rpi-4)

    cat <<EOF
################################################################################
#Target: "brcm2708/bcm2711"
#Device: rpi-4
#######################################
-ip-tiny
ip-full
luci-app-nft-qos
#######################################
file
#######################################
atftpd
#######################################
collectd-mod-thermal
collectd-mod-irq
collectd-mod-conntrack
conntrack
#######################################
kmod-leds-gpio
kmod-ledtrig-default-on
kmod-ledtrig-gpio
kmod-ledtrig-heartbeat
kmod-ledtrig-netdev
kmod-ledtrig-oneshot
kmod-ledtrig-timer
kmod-ledtrig-transient
#######################################
luci-app-statistics
collectd-mod-network
collectd-mod-exec
collectd-mod-sqm
######################################
python3
######################################## OTG - pi as an ethernet device
kmod-usb-dwc2
kmod-usb-gadget-eth
#add dtoverlay=dwc2 to /boot/config.txt
######################################
#opkg install ntp-utils $ntpq[] peer
#kmod-fs-vfat
#python3-light
######## note: pppd already there #kmod-ppp rp-pppoe-server ppp
######################################
#kmod-bluetooth
#bluez-utils
#bluez-utils-extra
####################bluez-daemon
################################################################################## 4b-device-only
###############################################################
#kmod-tulip - 5.4.38-1 - Kernel modules for the Tulip family of network cards
#kmod-usb-net-pegasus - 5.4.38-1 - Kernel module for USB-to-Ethernet Pegasus convertors
#usb-wlan-EDIMAX EW-7811UN rtl8192cu
################################################# USB-to-Ethernet ASIX AX88179 based USB 3.0/2.0 to Gigabit Ethernet
#kmod-usb-net-asix-ax88179
#kmod-rtl8812au-ct - 5.4.38+2020-01-12-e0d586aa-2 - Driver for Realtek 8812 AU devices comfast 912-ac, etc
#kmod-usb-net-rtl8150 - 5.4.38-1 - Kernel module for USB-to-Ethernet Realtek 8150 convertors
#kmod-usb-net-rtl8152 - 5.4.38-1 - Kernel module for USB-to-Ethernet Realtek 8152 USB2.0/3.0 convertors
#kmod-usb-net-smsc95xx - 5.4.38-1 - Kernel module for SMSC LAN95XX based devices
EOF

    ;;

esac

}


sourcepackagelists() {
FN="sourcepackagelists"
if [ ! -f "$ib_packagetxt/packages.txt" ]; then
    echo "Writing sample $ib_packagetxt/packages.txt"; sleep 2;
    writesamplepackages > "$ib_packagetxt/packages.txt"
fi
if [ -z "$PACKAGES" ]; then pkglisttovarsourceV2 "$ib_packagetxt"; fi
if [ -z "$PACKAGES" ]; then #optional1searchdir no 1 means ib_root/packages.txt
    pkglisttovarsourceV2
else
    ecmd "skipping ib_dir/packages.txt as PACKAGES has been set" 1 3
fi
if [ -z "$PACKAGES" ]; then
    echo "sourcing packages.txt unsuccessful using PACKAGESdefault"; sleep 2
    PACKAGES="$PACKAGESdefault";
fi
}


setupibdir() {
FN="setupibdir"
ib_dir_short=$(echo $ib_dir | sed "s|${ib_root}/||g")
if [ ! -z "$IBREGENERATE" ]; then
    ecmd "$FN> ib_dir: $ib_dir_short [regenerate]" 1 2
    rm -rf $ib_dir
else
    ecmd "$FN> IBREGENERATE is Z" 1 5
fi

if [ ! -d "$ib_dir" ]; then
    POPULATEIBDIR=1; ecmd "$FN> set POPULATEIBDIR=1" 1 5
    ecmd "Creating ib_dir: $ib_dir_short [new]" 1 3; mkdir -p $ib_dir; return 0
else
    ecmd "$FN> leave POPULATEIBDIR Z... $ib_dir_short [present]" 1 5

fi
return 0
}


filesassigndir() {
FN="filesassigndir"
ecmd "$sepL Searching for custom files" 2 2
    if [ ! -z "$FILES" ]; then
        ecmd "$FN> FILES [static]" 1 0; return 0
    fi
    for filesposs in $1; do
        if [ ! -z "$FILES" ]; then
            ecmd "$FN DBG> set to: $FILES" 2
            return 0
        fi
        if [ -d "$filesposs" ]; then
            FILES="$filesposs"; ecmd "files: $filesposs [ok]" 2 0
            return 0
        else
            ecmd "files: $filesposs [nope]" 1 2
        fi
    done
    if [ -z "$FILES" ]; then
        ecmd "No files dir anywhere" 1 0
    fi
}


modibpartsize() {
#1 new kernel partsize
#2 new rootfs partsize
		echo ">>> Modding PARTSIZE"
        IBCONFIGpsB=$(cat $IBCONFIG | grep '^CONFIG_TARGET_KERNEL_PARTSIZE' | cut -d'=' -f2)
        IBCONFIGpsR=$(cat $IBCONFIG | grep '^CONFIG_TARGET_ROOTFS_PARTSIZE' | cut -d'=' -f2)
        ecmd "kernelsize default: $IBCONFIGpsB > $1" 0 3
        ecmd "rootfssize default: $IBCONFIGpsR > $2" 0 3
        ecmd "" 2 3
        echo "Modding PARTSIZE"
        cat $IBCONFIG | grep PARTSIZE; sleep 2 #echo "cat $IBCONFIG | grep PARTSIZE";
        sed -i s/CONFIG_TARGET_KERNEL_PARTSIZE=${IBCONFIGpsB}/CONFIG_TARGET_KERNEL_PARTSIZE=$1/ $IBCONFIG
        sed -i s/CONFIG_TARGET_ROOTFS_PARTSIZE=${IBCONFIGpsR}/CONFIG_TARGET_ROOTFS_PARTSIZE=$2/ $IBCONFIG
        cat $IBCONFIG | grep PARTSIZE; sleep 2 #echo "cat $IBCONFIG | grep PARTSIZE";
}


modimagebuilder() { FN="modimagebuilder"
if [ -z "$IBMOD" ]; then
    ecmd "$sepL Modding imagebuilder [off]" 2 2; return 0
else
    ecmd "$sepL Modding imagebuilder [on]" 2 2
fi
IBCONFIG="$ib_dir/.config"
if [ ! -f "$IBCONFIG" ]; then ecmd "no ib_dir/.config [no-mod]" 2 2; return 1; fi
case "$PROFILEn" in
    *"rpi"*) ecmd "||| aarch64 / $PROFILEn mods" 1 0
        modibpartsize "128" "384"

        echo ">>> Modding ROOTFS_TARGZ"
        cat $IBCONFIG | grep ROOTFS_TARGZ; sleep 1
        sed -i s/'# CONFIG_TARGET_ROOTFS_TARGZ is not set'/CONFIG_TARGET_ROOTFS_TARGZ=y/ $IBCONFIG
        cat $IBCONFIG | grep ROOTFS_TARGZ; sleep 1

        IBrpiCONFIGtxt="$(find $ib_dir | grep 'config.txt$')"               #target/linux/brcm2708/image/config.txt
        IBrpiDISTROCONFIGtxt="$(find $ib_dir | grep 'distroconfig.txt$')"   #target/linux/brcm2708/image/distroconfig.txt
        IBrpiCMDLINEtxt="$(find $ib_dir | grep 'cmdline.txt$')"             #target/linux/brcm2708/image/cmdline.txt

        echo ">>> cmdline.txt"; #sleep 1
        cat $IBrpiCMDLINEtxt 2>/dev/null

        if [ ! -z "$IBrpiCMDLINEnew" ]; then
            echo "$IBrpiCMDLINEnew" > $IBrpiCMDLINEtxt
            cat $IBrpiCMDLINEtxt 2>/dev/null
        fi
        sleep 1
        if [ ! -z "$RPI4uart2" ]; then
            ecmd "Adding uart2 to cmdline at console=ttyAMA1,115200" 2 1
            oldcmdline=$(cat $IBrpiCMDLINEtxt 2>/dev/null)
            echo "console=ttyAMA1,115200 ${oldcmdline}" > $IBrpiCMDLINEtxt
            cat $IBrpiCMDLINEtxt 2>/dev/null
        fi
        sleep 2

        IBrpiCONFIGtxt="$(find $ib_dir | grep '/config.txt$')"             #target/linux/brcm2708/image/cmdline.txt
        ecmd "$(echo $IBrpiCONFIGtxt | sed "s|${ib_root}/||g")" 0 2
        if [ ! -z "$RPI4uart2" ]; then
            ecmd "Adding uart2 dtbo in config.txt" 2 1
            echo "boot_delay=3" >> $IBrpiCONFIGtxt
            echo "dtoverlay=uart2" >> $IBrpiCONFIGtxt
            echo "#dtoverlay=led5" >> $IBrpiCONFIGtxt
            cat $IBrpiCONFIGtxt
        fi
        sleep 2

        if [ ! -z "$RPI4uart2" ]; then
       	    ecmd "Adding uart 2: ttyAMA1::askfirst:/usr/libexec/login.sh to inittab" 2 1
        mkdir -p $ib_dir/files/etc
    cat <<'EOF' > $ib_dir/files/etc/inittab
::sysinit:/etc/init.d/rcS S boot
::shutdown:/etc/init.d/rcS K shutdown
::askconsole:/usr/libexec/login.sh
tty1::askfirst:/usr/libexec/login.sh
ttyAMA0::askfirst:/usr/libexec/login.sh
ttyAMA1::askfirst:/usr/libexec/login.sh
EOF
		fi
		sleep 2

        IBrpiDISTROCONFIGtxt="$(find $ib_dir | grep 'distroconfig.txt$')"             #target/linux/brcm2708/image/cmdline.txt
        ecmd "$(echo $IBrpiDISTROCONFIGtxt | sed "s|${ib_root}/||g")" 0 2

        sleep 2
    ;;

    *)
        echo "||> No mods for this IB_ARCH: $IB_ARCH or PROFILEn: $PROFILEn"; sleep 2
    ;;
esac
}


ib_packagetxt="$ib_root/$PROFILEn/$VERSION"; mkdir -p $ib_packagetxt
BIN_DIR="$PWD/$PROFILEn/binout/${PROFILEn}_${VERSION}_${D}"; mkdir -p $BIN_DIR

showsummary
getibrpi "$iburl"
setupibdir
populateibdir

ecmd "$sepL Sourcing package lists" 2 2
sourcepackagelists

FILESchkdirs="$PWD/$PROFILEn/$VERSION/files $PWD/$PROFILEn/files $PWD/files"
filesassigndir "$FILESchkdirs"

modimagebuilder

cd $ib_dir
echo ""
echo "$sepL running build"; sleep 2
echo "make image PROFILE=\"${PROFILE}\" PACKAGES=\"${PACKAGES}\" FILES=\"$FILES\" BIN_DIR=\"$BIN_DIR\""; sleep 2

echo "make image PROFILE=\"${PROFILE}\" PACKAGES=\"${PACKAGES}\" FILES=\"$FILES\" BIN_DIR=\"$BIN_DIR\"" > $ib_dir/rebuild.sh
chmod +x $ib_dir/rebuild.sh

echo "make image PROFILE=\"${PROFILE}\" PACKAGES=\"${PACKAGES}\" FILES=\"$FILES\" BIN_DIR=\"$BIN_DIR\"" > $ib_root/$PROFILEn/buildcommand.last

echo ""
make image PROFILE="${PROFILE}" PACKAGES="${PACKAGES}" FILES="$FILES" BIN_DIR="$BIN_DIR"; retval="$?"
if [ "$retval" -ne 0 ]; then
    ecmd ">>>>>>>>>>>>>>>   build fail  <<<<<<<<<<<<<<<" 2 1
    make info
	echo "https://downloads.openwrt.org/snapshots/targets/"
    exit 1
else
    ecmd ">>>>>>>>>>>>>>> build success <<<<<<<<<<<<<<<" 2 1
fi

ecmd "$sepL how to flash" 2 1

case "$PROFILEn" in
    rpi-4)
    echo "cp $BIN_DIR/openwrt-bcm27xx-bcm2711-rpi-4-ext4-sysupgrade.img.gz $HOME/Desktop/"
        cp $BIN_DIR/openwrt-bcm27xx-bcm2711-rpi-4-ext4-sysupgrade.img.gz $HOME/Desktop/
        echo ""

        echo "cd $BIN_DIR"
        echo "gunzip openwrt-brcm27xx-bcm2711-rpi-4-ext4-factory.img.gz"
        echo "sudo dd if=./openwrt-brcm27xx-bcm2711-rpi-4-ext4-factory.img of=/dev/sdX bs=2M"
        (cd $BIN_DIR; gunzip openwrt-brcm27xx-bcm2711-rpi-4-ext4-factory.img.gz 2>/dev/null)
        ls -1 $BIN_DIR | grep factory | grep ext4
    ;;
esac
echo ""; sleep 2
exit 0

Using Raspberry Pi 4 32 bits images makes the big differences,contrary to the expectations 64bits images performance is about ±10% less than 32 bits images in some benchmarks.

 -----------------------------------------------------
 OpenWrt SNAPSHOT, r11829-e3e939d8e6
 -----------------------------------------------------
root@OpenWrt:/# uname -m
armv7l
root@OpenWrt:/# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
1500000
1500000
1500000
1500000
root@OpenWrt:/# openssl speed -evp aes-128-cbc -elapsed
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 12804767 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 4055496 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 1078526 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 275363 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 34680 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 16384 size blocks: 17347 aes-128-cbc's in 3.00s
OpenSSL 1.1.1d  10 Sep 2019
built on: Sat Dec 28 20:28:09 2019 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: arm-openwrt-linux-muslgnueabi-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_PREFER_CHACHA_OVER_GCM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      68292.09k    86517.25k    92034.22k    93990.57k    94699.52k    94737.75k
root@OpenWrt:/# openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 15279656 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 64 size blocks: 4260671 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 1089709 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 275318 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 34559 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 16384 size blocks: 17286 aes-128 cbc's in 3.00s
OpenSSL 1.1.1d  10 Sep 2019
built on: Sat Dec 28 20:28:09 2019 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: arm-openwrt-linux-muslgnueabi-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_PREFER_CHACHA_OVER_GCM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128 cbc      81764.05k    90894.31k    92988.50k    93975.21k    94369.11k    94404.61k
root@OpenWrt:/# 

Thank you for the confirmation! Did you use the RPi2 image as you mentioned here?