geerlingguy / sbc-reviews

Jeff Geerling's SBC review data - Raspberry Pi, Radxa, Orange Pi, etc.
MIT License
592 stars 13 forks source link

Banana Pi BPI-CM4 #11

Open geerlingguy opened 1 year ago

geerlingguy commented 1 year ago

DSC00578

Basic information

Linux/system information

# output of `neofetch`
       _,met$$$$$gg.          pi@bananapi 
    ,g$$$$$$$$$$$$$$$P.       ----------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 10 (buster) aarch64 
 ,$$P'              `$$$.     Host: Bananapi BPI-CM4 
',$$P       ,ggs.     `$$b:   Kernel: 4.9.241-BPI-CM4 
`d$$'     ,$P"'   .    $$$    Uptime: 4 mins 
 $$P      d$'     ,    $$P    Packages: 269 (dpkg) 
 $$:      $$.   -    ,d$$'    Shell: bash 5.0.3 
 $$;      Y$b._   _,d$P'      Terminal: /dev/pts/0 
 Y$$.    `.`"Y$$$$P"'         CPU: (6) @ 1.704GHz 
 `$$b      "-.__              Memory: 152MiB / 3709MiB 
  `Y$$
   `Y$$.                                              
     `$$b.
       `Y$$b.
          `"Y$b._
              `"""

# output of `uname -a`
Linux bananapi 4.9.241-BPI-CM4 #1 SMP PREEMPT Wed Jan 11 10:32:54 UTC 2023 aarch64 GNU/Linux

Benchmark results

CPU

Power

Disk

Built-in eMMC (szrayson emmc RS1G32LO4)

Benchmark Result
fio 1M sequential read 233 MB/s
iozone 1M random read 202.10 MB/s
iozone 1M random write 55.32 MB/s
iozone 4K random read 28.01 MB/s
iozone 4K random write 34.34 MB/s

microSD (SanDisk Extreme 128GB)

Benchmark Result
fio 1M sequential read 43.4 MB/s
iozone 1M random read 42.05 MB/s
iozone 1M random write 29.17 MB/s
iozone 4K random read 8.35 MB/s
iozone 4K random write 4.01 MB/s

curl https://raw.githubusercontent.com/geerlingguy/pi-cluster/master/benchmarks/disk-benchmark.sh | sudo bash

Run benchmark on any attached storage device (e.g. eMMC, microSD, NVMe, SATA) and add results under an additional heading. Download the script with curl -o disk-benchmark.sh [URL_HERE] and run sudo DEVICE_UNDER_TEST=/dev/sda DEVICE_MOUNT_PATH=/mnt/sda1 ./disk-benchmark.sh (assuming the device is sda).

Also consider running PiBenchmarks.com script.

Network

iperf3 results:

Built-in 1 Gbps Ethernet

Built-in RTL8821CS WiFi

GPU

Memory

geerlingguy commented 1 year ago

First fun issue... I went to boot up the board today, and searched all over the BPI-CM4 pages on the Wiki:

...and there are no links to download any images, anywhere. After asking around on Twitter, @PomstaZLesa found this old Wiki page revision which does have some links (from 2022-06-20...) to downloads in Google Drive or Baidu Cloud.

Not super confidence-inspiring :/

kklem0 commented 1 year ago

First fun issue... I went to boot up the board today, and searched all over the BPI-CM4 pages on the Wiki:

...and there are no links to download any images, anywhere. After asking around on Twitter, @PomstaZLesa found this old Wiki page revision which does have some links (from 2022-06-20...) to downloads in Google Drive or Baidu Cloud.

Not super confidence-inspiring :/

It looks like they have updated your 2nd link 2 days ago.

geerlingguy commented 1 year ago

Default username / login is pi/bananapi for the Debian image. Just posting it here since it took way too much reading through their Wiki to find that.

Default Debian image didn't include sudo, so I had to run su - to switch to root (same pw), and then install it with apt install sudo. apt update required accepting two keys during the run.

My network scanner found the device's networking manufacturer to be Shenzhen 10MOONS Technology Development CO.,Ltd

geerlingguy commented 1 year ago

Tried compiling top500-benchmark and got:

    configure: WARNING: X11 not found; GL disabled
    configure: WARNING: compilation failed
    configure: error: ****  Incompatible Fortran and C Object File Types!  ****
    F77 Object File Type produced by "gfortran -fallow-argument-mismatch " is : : cannot open `' (No such file or directory).
     C  Object File Type produced by "gcc    -O2" is : : ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), not stripped.

On the "Build MPI" step.

geerlingguy commented 1 year ago

To get WiFi working, I did a sudo modprobe 88x2cs to enable the kernel module (see this doc), then I installed Network Manager:

pi@bananapi:~$ sudo apt install -y network-manager
...
pi@bananapi:~$ nmcli
wlan0: disconnected
        "wlan0"
        wifi (rtl88x2cs), 36:B4:8F:83:24:6E, hw, mtu 1500

pi@bananapi:~$ sudo nmcli device wifi list
sudo: unable to resolve host bananapi: Name or service not known
IN-USE  SSID                   MODE   CHAN  RATE        SIGNAL  BARS  SECURITY 
        geerling...  Infra  36    540 Mbit/s  54      **    WPA2     
        ...
        --                     Infra  11    130 Mbit/s  0             WPA2

pi@bananapi:~$ sudo nmcli dev wifi connect geerling... password "my-password-here"
...
connected!

pi@bananapi:~$ sudo iw wlan0 link
sudo: unable to resolve host bananapi: Name or service not known
Connected to 3c:7c:3f:6a:fa:c4 (on wlan0)
    SSID: geerling...
    freq: 5180
    signal: -43 dBm
    tx bitrate: 867.0 MBit/s

And also, all the details of the interface:

`iw list` details ``` pi@bananapi:~$ sudo iw list sudo: unable to resolve host bananapi: Name or service not known Wiphy phy0 max # scan SSIDs: 9 max scan IEs length: 2304 bytes max # sched scan SSIDs: 0 max # match sets: 0 max # scan plans: 1 max scan plan interval: -1 max scan plan iterations: 0 Retry short limit: 7 Retry long limit: 4 Coverage class: 0 (up to 0m) Supported Ciphers: * WEP40 (00-0f-ac:1) * WEP104 (00-0f-ac:5) * TKIP (00-0f-ac:2) * CCMP-128 (00-0f-ac:4) Available Antennas: TX 0 RX 0 Supported interface modes: * IBSS * managed * AP Band 1: Capabilities: 0x1963 RX LDPC HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI RX STBC 1-stream Max AMSDU length: 7935 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 16 usec (0x07) HT Max RX data rate: 300 Mbps HT TX/RX MCS rate indexes supported: 0-15 Bitrates (non-HT): * 1.0 Mbps * 2.0 Mbps * 5.5 Mbps * 11.0 Mbps * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps Frequencies: * 2412 MHz [1] (20.0 dBm) * 2417 MHz [2] (20.0 dBm) * 2422 MHz [3] (20.0 dBm) * 2427 MHz [4] (20.0 dBm) * 2432 MHz [5] (20.0 dBm) * 2437 MHz [6] (20.0 dBm) * 2442 MHz [7] (20.0 dBm) * 2447 MHz [8] (20.0 dBm) * 2452 MHz [9] (20.0 dBm) * 2457 MHz [10] (20.0 dBm) * 2462 MHz [11] (20.0 dBm) * 2467 MHz [12] (20.0 dBm) (no IR) * 2472 MHz [13] (20.0 dBm) (no IR) * 2484 MHz [14] (disabled) Band 2: Capabilities: 0x1863 RX LDPC HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 7935 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 16 usec (0x07) HT Max RX data rate: 300 Mbps HT TX/RX MCS rate indexes supported: 0-15 VHT Capabilities (0x03d071b2): Max MPDU length: 11454 Supported Channel Width: neither 160 nor 80+80 RX LDPC short GI (80 MHz) TX STBC SU Beamformee MU Beamformee +HTC-VHT VHT RX MCS set: 1 streams: MCS 0-9 2 streams: MCS 0-9 3 streams: not supported 4 streams: not supported 5 streams: not supported 6 streams: not supported 7 streams: not supported 8 streams: not supported VHT RX highest supported: 867 Mbps VHT TX MCS set: 1 streams: MCS 0-9 2 streams: MCS 0-9 3 streams: not supported 4 streams: not supported 5 streams: not supported 6 streams: not supported 7 streams: not supported 8 streams: not supported VHT TX highest supported: 867 Mbps Bitrates (non-HT): * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps Frequencies: * 5180 MHz [36] (23.0 dBm) * 5200 MHz [40] (23.0 dBm) * 5220 MHz [44] (23.0 dBm) * 5240 MHz [48] (23.0 dBm) * 5260 MHz [52] (23.0 dBm) (no IR, radar detection) * 5280 MHz [56] (23.0 dBm) (no IR, radar detection) * 5300 MHz [60] (23.0 dBm) (no IR, radar detection) * 5320 MHz [64] (23.0 dBm) (no IR, radar detection) * 5500 MHz [100] (23.0 dBm) (no IR, radar detection) * 5520 MHz [104] (23.0 dBm) (no IR, radar detection) * 5540 MHz [108] (23.0 dBm) (no IR, radar detection) * 5560 MHz [112] (23.0 dBm) (no IR, radar detection) * 5580 MHz [116] (23.0 dBm) (no IR, radar detection) * 5600 MHz [120] (23.0 dBm) (no IR, radar detection) * 5620 MHz [124] (23.0 dBm) (no IR, radar detection) * 5640 MHz [128] (23.0 dBm) (no IR, radar detection) * 5660 MHz [132] (23.0 dBm) (no IR, radar detection) * 5680 MHz [136] (23.0 dBm) (no IR, radar detection) * 5700 MHz [140] (23.0 dBm) (no IR, radar detection) * 5720 MHz [144] (disabled) * 5745 MHz [149] (30.0 dBm) * 5765 MHz [153] (30.0 dBm) * 5785 MHz [157] (30.0 dBm) * 5805 MHz [161] (30.0 dBm) * 5825 MHz [165] (30.0 dBm) * 5845 MHz [169] (disabled) * 5865 MHz [173] (disabled) * 5885 MHz [177] (disabled) Supported commands: * new_interface * set_interface * new_key * start_ap * new_station * set_bss * join_ibss * set_pmksa * del_pmksa * flush_pmksa * remain_on_channel * frame * set_channel * connect * disconnect Supported TX frame types: * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 Supported RX frame types: * IBSS: 0xd0 * managed: 0x40 0xd0 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * P2P-client: 0x40 0xd0 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 WoWLAN support: * wake up on anything (device continues operating normally) software interface modes (can always be added): interface combinations are not supported Device supports scan flush. Supported extended features: ```

If I disconnected the Ethernet port entirely and tried connecting through WiFi, I couldn't (it wouldn't respond to pings on the WiFi IP...). So instead I ran sudo ip link set eth0 down to disable eth0, then I ran iperf3 and got 25 Mbps down and 135 Mbps up.

Not sure why the huge discrepancy, but there was also a noticeable amount of coil whine during the --reverse test sending packets to the iperf server.

melroy89 commented 1 year ago

Nice you also have the BPI-CM4 module. I'm trying to get this module working in the BliKVM PCIe card, instead of the Raspberry Pi variant..

Related: https://github.com/ThomasVon2021/blikvm/issues/15

sgofferj commented 1 year ago

I also got one of those together with an MCUZone POE/SSD baseboard. Everything works except the USB ports. There's a forum post reporting the same issue with a Waveshare Mini B baseboard. Not sure if it's an OS thing or they messed up the USB connection. I tried Debian, Ubuntu and Armbian to no avail. @geerlingguy Have you ever gotten the USB working on a non-BPI baseboard?

sgofferj commented 1 year ago

Somebody from the manufacturer provided a solution for the USB port issue: https://forum.banana-pi.org/t/cm4-with-mcuzone-board-no-usb-port-works/15552/7

billzez commented 1 year ago

Quick update: we now support Banana Pi CM4, and we now have OMV and OpenWrt images.

https://www.axzez.com/software-downloads

melroy89 commented 1 year ago

Quick update: we now support Banana Pi CM4, and we now have OMV and OpenWrt images.

https://www.axzez.com/software-downloads

WOW! Nice.. I wish blikvm would create images for the Banana Pi CM4 as well.