I suggest to wait for next hw-revision when reset-bug is fixed.
it’s not fixed in 1.3?
what is that reset bug about?
Can you please share the STL file?
Afaik there is only v1.1
Reset-bug: [BPI-R3] information
Should be fixed in upcoming 1.2
@azsenca it is not yet a complete case
Is there a heatsink matchin the 43mm holes on the board? Or are these holes for anything else?
Hi,
R3 seems really nice but I need two radio on 5Ghz, can someone confirm me that I can use this module : https://www.asiarf.com/shop/wifi-wlan/wifi-m-2-card/wifi6-2t2r-dual-bands-dual-concurrents-dbdc-m-2-card-bm-key-1800-ieee802-11ax-2-4g-5ghz-mt7915-aw7915-bmd/ on the M2 slot or not ?
Thanks
I’m curious what is expected performance of BPI-R3 vs my current Turris Omnia.
This is not super scientific method, but does give a rough estimate of what to expect. Could some one run Geekbench 5 for ARM64 and share results? For ex. Turris Omnia gets ~100 SC, ~180 MC (on arm32).
wget https://cdn.geekbench.com/Geekbench-5.4.4-LinuxARMPreview.tar.gz
tar zxf Geekbench-5.4.4-LinuxARMPreview.tar.gz
cd Geekbench-5.4.4-LinuxARMPreview/
./geekbench_aarch64
Unfortunately the geekbench binaries are dynamically linked against uClibc.
If I find more time for that I’ll try running it inside a uClibc container (as Debian uses glibc, OpenWrt uses musl the binary doesn’t run out-of-the-box on neither of them).
How did you actually run this on the Turris Omnia?
I originally run this via lxc
container.
However, this should also work (at least it is working right now on my Turris Omnia [just arm64 replaced with armhf, and aarch64 with armv7]):
mkdir /tmp/ubuntu
cd /tmp/ubuntu
wget https://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04-base-arm64.tar.gz
tar zxf ubuntu-base-22.04-base-arm64.tar.gz
wget https://cdn.geekbench.com/Geekbench-5.4.4-LinuxARMPreview.tar.gz
tar zxf Geekbench-5.4.4-LinuxARMPreview.tar.gz
mount --bind /proc proc
mount --bind /sys sys
chroot . /bin/bash
echo nameserver 1.1.1.1 > /etc/resolv.conf
./Geekbench-5.4.4-LinuxARMPreview/geekbench_arm64
Geekbench has some detection issues (frequency and core-count) so maybe results are not right:
System Information
Operating System Debian GNU/Linux 11 (bullseye)
Kernel Linux 6.1.0-rc1-bpi-r3-r3 aarch64
Model Bananapi BPI-R3 (sdmmc)
Motherboard N/A
Processor Information
Name ARM ARMv8
Topology 1 Processor, 1 Core, 4 Threads
Identifier ARM implementer 65 architecture 8 variant 0 part 3331 revision 4
Base Frequency 0.00 Hz
Memory Information
Size 1.94 GB
https://browser.geekbench.com/v5/cpu/18391168
SoC had only ~43°C maximum without heatsink
Thank you @frank-w.
The detection on ARM is not perfect, but I think results should still be valid.
The comparison to:
- Turris Omnia: https://browser.geekbench.com/v5/cpu/compare/17822929?baseline=18391168
- RPI4B: https://browser.geekbench.com/v5/cpu/compare/18239980?baseline=18391168
I’m actually surprised as those results are pretty good. Slower than RPI4, but still pretty good.
What pakages required by mpcie slot lte module if I build from official openwrt code?
Unfortunately there is not just one way to interface LTE modems with Linux (in terms of drivers), and there are at least three ways to control them from OpenWrt’s user space. Which of them is best depends on the modem and the use-case.
Let’s start with the most common contemporary modem USB driver interfaces:
-
simple serial interface: there are a couple of different standard and non-standard drivers used to interface cellular modems using the classic Hayes/AT command set as defined in the ETSI GSM standard. Install
kmod-usb-acm
,kmod-usb-serial-option
,kmod-usb-serial-sierrawireless
,kmod-usb-serial-qualcomm
to cover most of them. -
USB Mobile Broadband Interface Model (MBIM): A standard interface to mobile broadband modems defined by joint group of industry players including Ericsson, Microsoft and Nokia. Most modern modems intended for use in the Microsoft universe come with support for this interface. Install
kmod-usb-net-cdc-mbim
to make use of this interface with OpenWrt. -
USB Communication Device Class (CDC) using the sub-class Network Control Model (NCM): A generic way to control modems exposing an USB-Ethernet adapter. Install
kmod-usb-net-cdc-ncm
. -
Huawei CDC/NCM: The way Huawei interpreted and amended the above standard. Install
kmod-usb-net-huawei-cdc-ncm
-
Qualcomm’s QMI protocol: Install
usb-net-qmi-wwan
-
Samsung Kalmia based LTE USB modems: Install
kmod-usb-net-kalmia
Now if you thought that every modem supports exactly one of those interfaces, well, it’s not that simple. Most modems support a subset of the above list, many allow switching between different interface modes or even allow (and sometimes require…) simultaneous use a combination of them (Qualcomm-based modems typically expose GPS and management interfaces as serial ports, plus either QMI or MBIM for mobile broadband, for example).
Note that some recent Qualcomm 5G modems are connected via PCIe rather than USB and use yet another proprietary protocol called Modem Host Interface (MHI). They are not compatible with the R3 as the mPCIe slot with SIM card connected only exposes USB 2.0 pins (and not PCIe).
Also note that there are some historic vendor-specific USB modem driver interfaces which I won’t even mention as nobody should be using them in new designs.
Anyway. Now with all those kernel modules installed you will still need a way to setup the modem to connect to the Internet (never mind voice calls, SMS, … for now. But it’s all possible as well). And also for this there are several ways:
-
simply use Hayes/AT interface to dial and connect like if it was an analog modem from the 1990s and use PPP protocol, like in the good old days. This works with most modems and require little to no extra software support compared to classic telephone-line connected analog modems, but performance is not great. In OpenWrt this mode can be used by installing the
wwan
andcomgt
packages. -
use protocol-specific minimal OpenWrt tools:
umbim
to setup MBIM compatible modems- use
comgt-ncm
for CDC/NCM compatible modems - use
uqmi
to setup QMI compatible modems
For all of the above there are also LuCI packages (luci-proto-3g
, luci-proto-ncm
, luci-proto-qmi
, …)
- Instead of using any of the above ways to manage the modem you may also use ModemManager which is the common way to use cellular modems in the systemd/dbus world. Also for this there is a LuCI frontend called
luci-proto-modemmanager
.Be sure to build ModemManager with the protocol options needed for your modem (by default those options are not enabled, ie. you need to build from source and e.g. selectUsing ModemManager has the advantage of there being a dedicated persistent process watching and managing the modem state. This is particularly important for modems in mobile setups which do not auto-reconnect in case of network loss.MODEMMANAGER_WITH_QMI
and/orMODEMMANAGER_WITH_MBIM
to have them).
what would you use for the EC25-E or EP06 ?
If it’s in a fixed installation for mobile broadband Internet access then I’d go with uqmi
and luci-proto-qmi
. Read the respective modem documentation to learn if the modem needs to be switched to QMI mode and if so, how to do that. The EC-25 is known to work well in auto-reconnect mode, so the same setup should also be sufficient for mobile setups with occasional signal loss in uncovered areas, carrier changes/roaming, … I don’t know how the EP06 performs in mobile setups, if you experience any problems with reconnecting after signal loss or change of carrier, try using ModemManager (and luci-proto-modemmanager
) instead (and make sure to build the modemmanager package from source with option to enable QMI set).
I have a bunch of gl.inet xe300 that have the EP06 modem and they are installed in places with very unstable gsm coverage. I made a custom openwrt build for them with uqmi and luci-proto-qmi and they reconnect without any issues. The only thing I miss is that there is no information about signal quality of band or whatever in the luci page. not sure if I am missing some package or if it’s just like that.
You should look at set of those packages installed additionally:
- https://github.com/4IceG/luci-app-sms-tool
- https://github.com/4IceG/luci-app-3ginfo-lite
- https://github.com/4IceG/luci-app-modemband
Unfortunately they are provided outside of OpenWrt main repo.
Man this guy rocks! do you know if he is planning to submit the apps to be included on openwrt?
Probably unlikely. They are available for quite some time at this point. However, this would truly be best.
do you know how to add them to the feeds file so that they appear on the makemenuconfig menu?