

ag123
-
Posts
365 -
Joined
-
Last visited
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Posts posted by ag123
-
-
if NetworkManager is masked I'd unmask that for use with netplan e.g.
systemctl unmask NetworkManager systemctl enable NetworkManager systemctl start NetworkManager
In the 'minimal IOT' images for OrangePi Zero 3, NetworkManager is not shipped with my images. I'd need to install that myself. Perhaps for other boards or images, NetworkManager could have been included by default. (but like you mentioned masked)
in my /etc/netplan/configfile.yaml , I configured it as like that 3 lines, removed other liines so that I used NetworkManager utilities to configure the interfaces. I think that is 'simplier' than fumbling with netplan yaml configs which I'm unfamiliar as well.
I'm actually running a Wifi AP, but that the AP itself is not managed by NetworkManager, it is managed by hostapd,
as given priorhttps://gist.github.com/ag88/de02933ba65500376d1ff48e504b1bf3
I prefer hostapd as like discussed with @bushw, I think NetworkManager WiFi AP uses dnsmasq by default and setup a NAT (i.e. configures firewall rules for NAT masquerade)
https://thekelleys.org.uk/dnsmasq/doc.htmland a dhcp server to distribute ip address to the Wifi clients. While this works, it may not be the configuration I prefer.
The other thing is hostapd logs every wifi connection in journalctl logs, that is something I specifically want, so that I can check the connections if need be.
NetworkManager it seemed do not log the connection attempts at the AP.As to the rational that NetworkManager WiFi AP uses dnsmasq and setup NAT, 'mess with firewall rules', I think that is because it is a 'canonical' configuration that 'just works'.
Because otherwise you need to consider routing , bridging , whether to run dhcp server etc which don't have any standard setup for a 'WiFI AP' based network.
I.e. the config is specific and unique to your network configuration (the whole physical network, not just the board) and you need to configure that manually, e.g. with using hostapd.
you can build 'very complex' networks if you bother to go the distance, e.g. to do routing, ipv6, special NAT, special firewalling etc, to the extend if you have the skill, I think you can even configure clients to 'roam' across WiFI APs in your network, that is not 'mesh' but rather a full 'autoroam' setup of network configs. but everything is manual, custom and specific / unique to your physical network.on a different off-topic note, my WiFI AP (hotspot) that I configured as described in the gist has been running (very) well on my OrangePi Zero 3 'for months' practically as a desktop WiFI AP.
Throughput is good (I get slightly above 100 Mbps due to OrangePi Zero 3 having a good wifi chip), Armbian runs well on it, and I even run various apps on it.e.g. I managed to run rpi-monitor on it
there is a thread about OrangePi Zero 3
but that it seemed for the edge kernels and images, there may be 'some troubles', I've not tried it though.
I'm not sure if it affects the 'stable' images, hopefully that the 'stable' images which is a bit older in terms of kernel releases are still ok. -
@Cancer
Netplan is from Canonical, so I'd guess ubuntu would likely use a similar setup
https://netplan.io/
https://netplan.readthedocs.io/en/stable/netplan-tutorial/#running-netplan-for-the-first-time
https://docs.armbian.com/User-Guide_Networking/and the renderers can be NetworkManager or Systemd-Networkd as described in their pages as well.
The setup is less than intuitive, but that I'm more familiar with NetworkManager.
What I did instead is that, for my netplan config
/etc/netplan/10-dhcp-all-interfaces.yaml:
network: version: 2 renderer: NetworkManager # Different than 'networkd'
I only used a 'minimal' config as like above. That would make it use NetworkManager as the renderer.
I think it is also necessary to install NetworkManager for some e.g. 'minimal IOT' images
apt install NetworkManager
Then that if you are running it with a keyboard, monitor with gnome graphical interface
you can use a gui editor like
nm-connection-editor
network-manager-applet
https://wiki.archlinux.org/title/NetworkManager
to setup the network configs, the Gui is kind of 'guided' and tends to be 'easier' for beginners.
if you don't have that I think there is
nmtui - text based with (ncurses) menus
nmcli - command line cli configs
if you are using nmcli say operating from a text console, there are some tutorials you may find through a web (e.g. google) search
https://www.cyberciti.biz/faq/redhat-network-interface-configuration/
https://www.tecmint.com/nmcli-configure-network-connection/
https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/
https://dev.to/faaiq_amarullah/managing-networking-based-on-rhel-8-202e
in general, while editing network interfaces, I take 'ample precautions' and operate over the serial debug console (using a usb-uart dongle), as you may get 'locked out' if you are in one of the network connections that you are editing. If you are using a full desktop say with a monitor and keyboard, that's ok as well.
I think the 'iot minimal' images some of those use Systemd-Networkd as default, so some of the setup may still be in Systemd e.g. Systemd-resolved.
That could affect your DNS resolver configs, what I did is I googled for configs about Systemd-resolved and maintained my primary and secondary (DNS) nameservers in
/etc/systemd/resolved.conf
I'm not too sure if that is after all necessary.NetworkManager is 'higher level' than configuration commands as like ip or ifconfig, in a sense that it 'manages' the interfaces. while ip and ipconfig are normally per-invocation command, NetworkManager stores its setup in /etc/NetworkManager. One should normally use the gui or nmcli / nmtui commands to configure them instead of editing the files directly. And remember to save the configs as permanent instead of temporary while using the gui, nmcli or nmtui. With that normally the configs will persist across reboots. This is probably more organised perhaps 'simplier' than say editing scripts say using the 'old' way say in /etc/interfaces.
After you configured interfaces e.g. with nmcli, nmtui or the gui editors, normally to check status of the interfaces you could run commands like
nmcli c show (show connections) nmdli d status (show devices)
etc to show the state of interfaces configured by NetworkManager.
the 'lower level' commands like ip (or ifconfig (apt install net-tools to get that)
ip link (show link status) ip a (show addresses)
can also be used to check on the status of the intefaces.
listing wifi APs I think is
nmcli d wifi list
connecting to an AP I think is
nmcli d connect SSID password "wifipassword" name a_name_for_this_connection ifname wlan0
note that there are options for reconnect, normally it does that, if that is not desired you may need to edit that say via nmcli c edit connection etc
-
Quote
Just implement "mode: ap" in netplan config and check your iptables chains
ok this is what i saw in my setup running as an ap (I used netplan and NetworkManager - but I do not use its AP (wifi hotspot) features )
> sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
^ empty
sudo nft list ruleset
^ empty
my setup is documented here:
https://gist.github.com/ag88/de02933ba65500376d1ff48e504b1bf3
I'm running and using hostapd for AP, for one thing hostapd produce logs for every client that connects to the wifi AP, that is far better than the 'built-in' 'easy' AP say with NetworkManager.
Now I'd try to explain why you observe what you observe:---------
Network Manager could be using DNSmasq
https://en.wikipedia.org/wiki/Dnsmasq
https://thekelleys.org.uk/dnsmasq/doc.html
when it setup the AP, it creates an NAT so that the wifi-subnet can access the upstream network
https://tldp.org/HOWTO/html_single/Masquerading-Simple-HOWTO/
in addition,, DNSmasq also provides a dhcp server (to distribute ip addresses to the connecting wifi clients) and ipv6 router advertisement.
that is what makes it 'simple'. don't like that?
-
install and setup hostapd
https://w1.fi/hostapd/ -
install and setup a dhcp server if you need it
https://www.isc.org/dhcp/ -
install and setup radvd if you need ipv6
https://github.com/radvd-project/radvd
those 3 above can normally be installed via apt
next configure and setup the network interfaces and hostapd like what I did:
key is (*unmanage* the WiFi interface and use hostapd to manage it, manual configure it)https://gist.github.com/ag88/de02933ba65500376d1ff48e504b1bf3
then you can choose to setup a network bridge or routing as you deemed fit.
or even NAT - via ip tables or nftables
https://wiki.nftables.org/wiki-nftables/index.php/Main_Page
^ if you do this, then that is what dnsmasq (probably called by NetworkManager) tries to do for you to make it 'easy'
but if you configure everything yourself, using hostapd and the respective individual tools (dhcp server, radvd etc), no interference from Netplan, NetworkManager , dnsmasq, doesn't touch your iptables or nftables
---
this mode: AP for wifi interface is a *feature* that you used in NetworkManager (dnsmasq)
this is different from saying that Netplan and/or NetworkManager * *maliciously* change firewall configs for all possible combinations of network interfaces and configurations*
don't like that AP feature / implementation in NetworkManager? you could probably take it up with RedHatI'm not sure what other ways are there to configure the AP in NetworkManager so that it doesn't do NAT
you would need to experiment if you are using the mode: AP feature in NetworkManager, there are likely various config options
https://www.baeldung.com/linux/nmcli-wap-sharing-internet
doing everything manually for WiFi AP using hostapd land individual tools, lets you control every single aspects of the network configs, I prefer this myself over the 'simple' approach e.g. that offered by NetworkManager, this include your firewall rules iptables, nftables etc,
it is in part because the 'simple' AP offered by NetworkManager does so using NAT which is basically firewall rulesets i.e. iptables, nftables, if you don't want it to 'touch' that, then you would need to setup things manually and not use NetworkManager's AP mode. -
install and setup hostapd
-
Why you need to drop ifconfig for ip:
https://opensource.com/article/21/1/ifconfig-ip-linux
If you’re still using ifconfig, you’re living in the past
https://ubuntu.com/blog/if-youre-still-using-ifconfig-youre-living-in-the-past
there are certain things in this article that can be done in ip command that takes more than just ifconfig to do the same.
Introduction to Linux interfaces for virtual networking
^ this matters if you are bothered about containers, docker, virtual machines, virtualbox, vpn, wireguard, vlan, etc etc
otherwise, if you don't need any of containers, docker, virtual machines, virtualbox, vpn, wireguard, vlan, etc etc you can live with ifconfig
in a certain sense, the availability of this network infrastructure in linux along with ip command as one of the tools accounts for the modern trillion $ cloud services: amazon aws, google cloud, azure, ibm redhat, and practically every other vps, web, any sort of cloud services on Internet that runs on linux today.
anyway, to get ifconfig it is simply
sudo apt install net-tools
https://www.fosslinux.com/121757/how-to-install-missing-ifconfig-command-on-linux.htm
-
accordingly, one can remove Netplan if one don't like it
https://www.baeldung.com/linux/etc-network-interfaces-netplan-switch
and that actually even with Netplan one can configure a different renderer, e.g. Network-Manager
https://docs.armbian.com/User-Guide_Networking/or for that matter, I think it is feasible to remove Netplan altogether and just use Network Manager, if one prefers that
or even for that matter switch back to the raw lowest level /etc/network/interfaces as described in the 1st link
In addition-
show the detailed sequence of events and provide details that:
Quote
Netplan by default to manage network settings. But when it uses NetworkManager as renderer, it silently changes iptables rules—without asking, without telling.
if you cannot show this in detail, then what is your basis of saying that it happens?
Note that normally, there is a sequence of events, the interfaces need to be setup first hand, then that the firewall (e.g. iptables) is configured after that.
What you need to proof in addition, is that Netplan or NetworkManager *revoke or change* your iptables / firewall setup if they are configured after Netplan / NetworkManager setup the interfaces.
i.e. that it is potentially maliciousif all that you mention can be rigiously proven then that perhaps we can file that with mitre and have the world cybersecurity issue a major CVE about it.
i.e. that the whole world and every web server, every vps, anyone any servers running wordpress on linux, any webs running linux, everyone including the whole amazonaws, azure, google cloud, redhat ibm, etc etc running linux follow up and fix *all the servers in the Internet*
-
show the detailed sequence of events and provide details that:
-
I'd do it in a 'simplier' way, just use a new uSD card, that is partly a benefit of SBCs running on uSD cards.
-
-
I just tested shutting down hostapd and restarting, it works
systemctl stop hostapd.service systemctl start hostapd.service
system process like hostapd should normally be properly started up and shutdown using systemd, killing the process etc may leave the kernel in inconsistent state. And maybe that's why you observe the issue.
this is how I set it up
https://gist.github.com/ag88/de02933ba65500376d1ff48e504b1bf3
accordingly, hostapd may require the interface to be on a bridge, I'm not sure about this, but that I'm using a (software) bridge so that the wifi interface is on it.
> uname -a Linux orangepizero3a3 6.12.35-current-sunxi64 #1 SMP Fri Jun 27 10:11:46 UTC 2025 aarch64 GNU/Linux > nmcli c NAME UUID TYPE DEVICE bridge a6aa1bb8-c47e-400e-8de1-7faf96489c7a bridge br0 lo 084c74b2-0638-48be-b4c9-364f854ecabd loopback lo br-eth 6bab09b0-e16c-438b-a1bf-e0d82ca5141b ethernet end0 > sudo bridge link 2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
I put both ethernet and wifi on the bridge, wifi is not managed by network manager, hostapd patch that into the bridge.
it is possible to just let hostapd setup the bridge in hostapd.conf, and normally that's all needed.
this isn't the earliest armbian I'm running hostapd in, i've done it since linux 6.6.x kernel an earlier release some 1 year back or so, no issues.
-
anything 'interesting' in dmesg? and what is the Armbian / kernel version? e.g.
uname -a
btw 'real' armbian is currently at linux version 6.12.x
https://www.armbian.com/orange-pi-zero-3/
btw I disabled wpa_supplicant when I run hostapd, I'm not sure if it'd affect anything, normally hostapd should work with wpa_supplicant running should be 'no problem'.
wpa_supplicant is 'connecting out', while hostapd is an AP hotspot.
-
try
ip link set wlan0 up
-
Installing rpi-monitor in Armbian for Orange Pi Zero 3
https://gist.github.com/ag88/65db5434158683e43d1cc77c337ebdb5
-
this is posted to Gist:
https://gist.github.com/ag88/65db5434158683e43d1cc77c337ebdb5
- Introduction
Rpi-monitor
https://github.com/XavierBerger/RPi-Monitor
is a very nice app for monitoring sbc (single board computers/ actually bigger computers as well) like RPi on a web.
it gives you a quick look at various system metrics cpu load, uptime, temperatures etc and more on a nice web page.
and on top, makes nice time series graphs for the same, practically a dashboard.- Installing in Armbian 25.8 for Orange Pi Zero 3
Rpi-monitor is normally not found in the common Apt repositories and actually the binary is a little old.
I tried installing it based on the 'formal' docs but hit some invalid public keys errors, possibly expired certs.
https://xavierberger.github.io/RPi-Monitor-docs/11_installation.htmlso here is a 'workaround'
- Deb packages for rpi-monitor
you can find the packages in this repository (note that this may not be permanant and may change)
https://github.com/XavierBerger/RPi-Monitor-debuse the **rpimonitor_latest.deb** file
https://github.com/XavierBerger/RPi-Monitor-deb/tree/develop/packages- install rpimonitor_latest.deb in Armbian
use apt to install *rpimonitor_latest.deb* as it has varous package dependencies.
e.g. download it to a folder and from there runsudo apt install ./rpimonitor_latest.deb
the prior step should install rpimonitor, and check that the service is running by going to http://your_sbc_ip_address:8888- checking the setup
rpi-monitor is runa as a systemd (unit) service
if it is not running you can try
systemctl status rpimonitor.service
or
journalctl -u rpimonitor.service
to check what went wrong.to start / stop rpi-monitor it is as per basic systemd services e.g.
systemctl start rpimonitor.service
- temperature 'not displaying'
apparently, it is affected by this issue:
https://github.com/XavierBerger/RPi-Monitor/issues/374accordingly the fix/'workaround' is edit /etc/rpimonitor/template/temperature.conf
replace#dynamic.1.postprocess=sprintf("%.2f", $1/1000) dynamic.1.postprocess=$1/1000
-
the board page is a bit out of date
https://www.armbian.com/orange-pi-zero-3/
Debian 12 (Bookworm) Minimal / IOT SHA ASC 241.1 MB Debian 12 (Bookworm) Minimal / IOT SHA ASC 230.3 MB
@Igor ^ how do we update that on the boards page?
are actually the same file. proof:
download the sha file for each of them and look at the content, you can see that both the filename and hash is identical in both sha texts.
this means that both files are in fact identical and actually the same size, despite the incorrect file size indication on the front page.
in fact that is currently linked to this release on github
https://github.com/armbian/community/releases/tag/25.8.0-trunk.375
^ this is released last week
there are in fact 'earlier' releases, I'm running an image from this release
https://github.com/armbian/community/releases/tag/25.8.0-trunk.309
I'd suggest going with the 'latest and greatest' (trunk 375) (which is that on the boards page currently) and if there are issues, then try that a little earlier e.g. in the latter link (trunk 309).
armbian community images are rolling releases, they are 'fast moving' and perhaps come back in a few weeks, and it could be another trunk release number.
but simply take an image 'as of now' and normally it 'just works' e.g. from the boards page.
-
all those things are wow
give kodi a try?
https://kodi.tv/ -
tried mining feathercoin,
git clone https://github.com/ghostlander/cpuminer-neoscrypt
lots of missing dependencies to build that
apt install automake autoconf-archive pkg-config libtool libcurl4-openssl-dev
but once done it is autogen.sh, configure, make
next register on https://www.mining-dutch.nl/
then run
./minerd -D --algo=neoscrypt --url=stratum+tcp://mining-dutch.nl:9993 -u username.worker1 -p d=10
SpoilerHash: 020E9F4B68201E05469CC87039286A9EEFAFB6525E9CDDAD40E4DCFC6D950000x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:07:06] thread 2: 537 hashes, 1.097 KH/s [2025-07-17 20:07:06] accepted: 14/14 (100.000%), 4.398 KH/s (yay!!!) [2025-07-17 20:07:14] DEBUG (little endian): hash <= target Hash: FD8193D5659404573894CC22F8A37859A2347842E382CCF151747A0E34220100x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:07:14] thread 1: 9481 hashes, 1.100 KH/s [2025-07-17 20:07:14] accepted: 15/15 (100.000%), 4.397 KH/s (yay!!!) [2025-07-17 20:07:18] DEBUG (little endian): hash <= target Hash: 9B92D3883EA6CE4BC66BE97CF9CDC6E8C51B0D28B8C3D7F2BA28B8C58D310100x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:07:18] thread 2: 13983 hashes, 1.100 KH/s [2025-07-17 20:07:18] accepted: 16/16 (100.000%), 4.400 KH/s (yay!!!) [2025-07-17 20:07:32] DEBUG (little endian): hash <= target Hash: 3FC00FD320605941571915FC723A4CBB2C9E798552E309C980F333CA76B40000x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:07:32] thread 1: 20346 hashes, 1.101 KH/s [2025-07-17 20:07:32] accepted: 17/17 (100.000%), 4.401 KH/s (yay!!!) [2025-07-17 20:07:34] thread 3: 66030 hashes, 1.100 KH/s [2025-07-17 20:07:36] DEBUG (little endian): hash <= target Hash: 787E9A8E6CF0D6293659419BA9963ED809F7D606A2AD8E879968A5B075620000x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:07:36] thread 1: 4421 hashes, 1.100 KH/s [2025-07-17 20:07:36] accepted: 18/18 (100.000%), 4.400 KH/s (yay!!!) [2025-07-17 20:07:42] DEBUG (little endian): hash <= target Hash: 27163C9021EAE5D4D5D458F384751990AE336F19BD3AC8D980AA97C55A940000x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:07:42] thread 3: 8654 hashes, 1.101 KH/s [2025-07-17 20:07:42] accepted: 19/19 (100.000%), 4.400 KH/s (yay!!!) [2025-07-17 20:08:00] thread 0: 65995 hashes, 1.100 KH/s [2025-07-17 20:08:18] thread 2: 65977 hashes, 1.100 KH/s [2025-07-17 20:08:36] thread 1: 65992 hashes, 1.100 KH/s [2025-07-17 20:08:37] DEBUG (little endian): hash <= target Hash: 037AD1DB8D7C7FAB0E022F8541BA34D67A7E9B3695B396FAF84C6D47AD950000x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:08:37] thread 0: 40427 hashes, 1.100 KH/s [2025-07-17 20:08:37] accepted: 20/20 (100.000%), 4.401 KH/s (yay!!!) [2025-07-17 20:08:39] DEBUG (little endian): hash <= target Hash: 5FBB0159477A05E1324B6A3D240B89DAEDF34A83A8AA78FE155FA86DE3140100x0 Target: 0000000000000000000000000000000000000000000000000000000098990100x0 [2025-07-17 20:08:39] thread 3: 62568 hashes, 1.101 KH/s [2025-07-17 20:08:39] accepted: 21/21 (100.000%), 4.401 KH/s (yay!!!)
a whopping 1.1 k hash/s on each core, well not very impressivve, but it mines
i think this is no Neon SIMD
Stop monitoring using [ctrl]-[c] Time CPU load %cpu %sys %usr %nice %io %irq Tcpu C.St. 20:22:02 1416 MHz 3.90 100% 0% 0% 99% 0% 0% 53.2 °C 0/7 20:22:07 1416 MHz 3.91 100% 0% 0% 99% 0% 0% 53.2 °C 0/7 20:22:12 1416 MHz 3.92 100% 0% 0% 99% 0% 0% 53.4 °C 0/7
^ this is with the fan on
optimise it a little in makefile
#CFLAGS = -g -O2 CFLAGS = minerd_CPPFLAGS = -O3 -mcpu=cortex-a53 -march=armv8-a -ftree-vectorize -funsafe-math-optimizations
Spoiler[2025-07-17 20:41:42] DEBUG (little endian): hash <= target Hash: 02D285CA9C499E30195BD3EC4F4DF544D03EDDC7A00DFC0D255EB1E7BA160000x0 Target: 0000000000000000000000000000000000000000000000000000008099190000x0 [2025-07-17 20:41:42] thread 1: 19364 hashes, 1.127 KH/s [2025-07-17 20:41:42] accepted: 1/1 (100.000%), 1.127 KH/s (yay!!!) [2025-07-17 20:41:54] thread 3: 32766 hashes, 1.128 KH/s [2025-07-17 20:41:54] thread 0: 32766 hashes, 1.127 KH/s [2025-07-17 20:41:54] thread 2: 32766 hashes, 1.124 KH/s [2025-07-17 20:42:42] thread 1: 67603 hashes, 1.127 KH/s [2025-07-17 20:42:53] thread 3: 67650 hashes, 1.128 KH/s [2025-07-17 20:42:54] thread 0: 67639 hashes, 1.127 KH/s [2025-07-17 20:42:54] thread 2: 67439 hashes, 1.124 KH/s [2025-07-17 20:43:42] thread 1: 67627 hashes, 1.128 KH/s
well, just a very minor 0.025 k hash/s improvement per core. perhaps it already has Neon SIMD or that it needs 'hand optimization', that is hard. -
Quote
I don't even have a reference viewpoint what should I start comparing?
I read claims that Python3-numpy, python3-opencv are highly optimized, but I never researched HOW OPTIMIZED
I have also heard that DRM can help accelerate machine learning https://www.youtube.com/watch?v=NQz6VqvtehI&t=5m7s
well, Neon SIMD isn't just useful for that matrix math, it is useful e.g. as a video decoder/encoder in place of specialized on chip video hardware. it could partially explain the 'better performance' of mpv (https://mpv.io/)
e.g. if mpv is after all built with -o3 or that mpv uses a library that is optimised iwth Neon SIMD, it could likely practically see a performance as the on-chip proprietary video hardware which is not publicly documented.
with an apparent 100% cpu usage if all 4 cpu cores are used with Neon SIMD.
I think I once chanced upon an Rpi forum comment about shifting the codes to Neon SIMD instead instead of using propietary video hardware, partly as these 'small' chips has 'limited' capabilities for on chip video processing etc.
it isn;'t really a bad thing if after all we'd use say an Opi Z3 as a 'dedicated' video streamer. A thing is at 100% cpu, non compute threads may struggle to get a slot to run at times, it may take setting 'nice' levels so that some threads get a higher priority.
I've been thinking about running a (crypto coin) miner on it, probably would do that some time. They certainly don't get close to say even a Haswell, or Ryzen or even a 'low end gpu' but that they are faster than the 'older' 'smaller' chips
for a comparison, the quoted 'old' figures
https://linux-sunxi.org/Benchmarks#Linpack
-mcpu=cortex-a8 -march=armv7-a -mfpu=neon -mfloat-abi=hard -funsafe-math-optimizations -fno-fast-math
Memory required: 315K. LINPACK benchmark, Double precision. Machine precision: 15 digits. Array size 200 X 200. Average rolled and unrolled performance: Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 16 0.61 88.52% 6.56% 4.92% 37885.057 32 1.21 85.12% 2.48% 12.40% 41459.119 64 2.43 93.83% 2.47% 3.70% 37561.254 128 4.86 91.77% 2.47% 5.76% 38381.368 256 9.70 92.06% 2.89% 5.05% 38173.000 512 19.41 91.29% 2.47% 6.23% 38634.432
mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -mfpu=neon -mfloat-abi=hard -funsafe-math-optimizations -fomit-frame-pointer -ffast-math -funroll-loops -funsafe-loop-optimizations
Memory required: 315K. LINPACK benchmark, Double precision. Machine precision: 15 digits. Array size 200 X 200. Average rolled and unrolled performance: Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 16 0.53 90.57% 1.89% 7.55% 44843.537 32 1.05 90.48% 3.81% 5.71% 44390.572 64 2.13 90.14% 2.35% 7.51% 44615.905 128 4.23 90.54% 3.07% 6.38% 44390.572 256 8.46 90.19% 2.84% 6.97% 44672.596 512 17.03 90.55% 2.76% 6.69% 44250.892
vs that above is like 8x - 10x improvements on a single core
-
ok we have a cheap SBC Z3 H618, but we'd still want to run it as like a supercomputer
https://linux-sunxi.org/Benchmarks#Linpack
download
https://www.netlib.org/benchmark/linpackc.new
save as linpack.c
makefiile
all: linpack-noopt linpack-o3 linpack-noopt: linpack.c gcc -o $@ $^ linpack-o3: linpack.c gcc -O3 -o $@ $^ -lm -mcpu=cortex-a53 -march=armv8-a -ftree-vectorize -funsafe-math-optimizations clean: linpack-noopt linpack-o3 rm $^ .PHONY: all clean
ok, for your convenience it is in the attached zip file. to unzip you may need (as sudo):
apt install zip unzip
for the compilers you may need
apt install build-essential
$ make gcc -o linpack-noopt linpack.c gcc -O3 -o linpack-o3 linpack.c -lm -mcpu=cortex-a53 -march=armv8-a -ftree-vectorize -funsafe-math-optimizations $ ./linpack-noopt Enter array size (q to quit) [200]: Memory required: 315K. LINPACK benchmark, Double precision. Machine precision: 15 digits. Array size 200 X 200. Average rolled and unrolled performance: Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 32 0.68 88.14% 2.66% 9.20% 71117.671 64 1.36 88.13% 2.66% 9.21% 71103.230 128 2.72 88.14% 2.66% 9.20% 71118.447 256 5.44 88.14% 2.66% 9.20% 71117.368 512 10.89 88.14% 2.66% 9.20% 71118.505 Enter array size (q to quit) [200]: q $ ./linpack-o3 Enter array size (q to quit) [200]: Memory required: 315K. LINPACK benchmark, Double precision. Machine precision: 15 digits. Array size 200 X 200. Average rolled and unrolled performance: Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 128 0.53 86.33% 2.89% 10.78% 374433.231 256 1.05 86.33% 2.88% 10.79% 374573.654 512 2.10 86.34% 2.88% 10.79% 374443.201 1024 4.21 86.32% 2.88% 10.80% 374574.751 2048 8.42 86.32% 2.88% 10.80% 374612.768 4096 16.83 86.33% 2.88% 10.79% 374574.926 Enter array size (q to quit) [200]: q
This is single core benchmark, apparently gcc -o3 does Neon SIMD
-
Arm Neon is quite a thing, SIMD
https://developer.arm.com/documentation/102159/latest/
https://github.com/thenifty/neon-guide
and accordingly aarch64 (e.g. Cortex A53, A55, A72, A75, A76 etc etc i.e. arm V8a onwards have them)
https://developer.arm.com/documentation/102474/0100/Fundamentals-of-Armv8-Neon-technology
the H618 is an A53 and hence should have it.
it is a good 'replacement' for proprietary hardware etc as this like Intel's sse, avx , simd are defiined and standardized by Arm.
Hence, they'd work if programs are coded and compiled to use them. Accordiingly, the pripietary video hardware is still undocumented (at least not publicly accessible), and most of that works are reverse engineered and incomplete.
apps written to use Neon SIMD would however 'just works' and accelerated by virtue that it is SIMD.
-
Quote
* mpv plays most mp4s VERY SMOOTHLY BUT WITH 100% CPU
oops, I missed reading that 100% cpu, but it is ok it is a a53 after all 😅
videos I'd guess is still 'difficult' on z3, accordingly there is some support for gpu vector graphics but I'd guess mostly just triangles.
video decoding can be done with just neon (vector computation) , but i'd guess there is still limited access to video decoding hardware.
using neon is likely to give that 100% cpu reading as the cpu is busy literally, using real video hardware would be 'invisible' in a sense, the cpu usage may look low but that one won't see that the video hardware itself may after all be reading 100%.
-
run dmesg, after you plug that uart into the port
it should show the usb dongle connected and the port
then a few more thiings,
- bad wires ensure that no matter what you do no data pass over the wires (I've seen this, especially those dupont pin connections)
- wrong connections ensure that no matter what you do no data pass over the wires. Are you sure you are talking to the correct *pins* and *port* on the host side?
-
lousy dongles ensure that no matter what you do no data pass over the wires, get 'better' ones. oh well, this depends a little on luck, but I used ch340 usb-uart bridges, and they worked just well
https://www.aliexpress.com/w/wholesale-ch340-uart.html
searching usb uart normally returns a lot of entries
https://www.aliexpress.com/w/wholesale-usb-uart.html
if one doesn't work, try another - oh then there is DTS overlay etc, sometimes that fix is needed
- bad / no drivers etc (dmesg should show it, on windows your mileage may vary)
- etc etc
the rationale is, if you did it once successfully, either remember how you did it or document it
sometimes, alternatives include, connect hdmi to monitor, usb keyboard and mouse and use as alternative console, mileage may vary.
-
thread about video in case anyone is looking for it
and a recent 'success story'
-
sound is a gotcha on the opi z3, actually opi z3 has sound but output only. accordingly opi z2 has sound both input (mic) and output.
and i think for 'convenience' many would after all use a usb sound card instead, just that there is only one usb port and the other 2 is actually on the extension pins on opi z3 as do with the audio output on z3
http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-3.html
as for usb + audio extension, orangepi sells an extension board
but that accordingly without that it may be possible to hack those usb connectors
https://www.aliexpress.com/w/wholesale-usb-female-type-a-with-wire.htmll
if one is willing to go the distance with electronics,
for the microphone i did a little research and found that there are mems microphone modules around
small, compact and possibly can be easily paired with boards like z , z2 or z3
https://www.aliexpress.com/w/wholesale-mems-microphone.html
but that most of these are I2S interfaces and I'm not too sure if it is feasible
apparently it is there for output, but I'm not sure about input
-
I've some old boards too e.g.
https://www.armbian.com/orange-pi-one/
interestingly there is an updated image for it, but that things I remember there are lots of gotcha unlike the whole many generation of incremental improvements between boards that finally evolved into a opi z3.
among the gotchas on orangepi one and orangepi pc h3 is that it uses a proprietary openrisc chip for power off which back then, if you run poweroff, the cpu will instead become very hot rapidly and you have to pull the usb cable quickly.
today there is this thing crust which i've not yet tried which is deemed to be able to orderly shutdown the soc
https://github.com/crust-firmware/crust
opi z3 uses a PMIC with its own internal firmware and I think it is comms i2c etc that starts the shutdown process.
things are different between the generations (of boards and kernel)
---
my guess is to try a new u-boot, it may take doing a build
and the changes may be quite similar to this
https://github.com/armbian/build/pull/8334
https://github.com/armbian/build/pull/8334/commits/49ccbe88bc2ddf31b55ece850d28ef18c6ae8a1a
---
if you want to venture and experiment with just u-boot alone
here is how I once tried
https://github.com/ag88/1.5GB_Fix_for_Armbian_on_OrangePiZero3
https://github.com/ag88/1.5GB_Fix_for_Armbian_on_OrangePiZero3/blob/main/build.md
-
just like to say that the recent images
works just well
_ _ _ _ _ /_\ _ _ _ __ | |__(_)__ _ _ _ __ ___ _ __ _ __ _ _ _ _ (_) |_ _ _ / _ \| '_| ' \| '_ \ / _` | ' \ / _/ _ \ ' \| ' \ || | ' \| | _| || | /_/ \_\_| |_|_|_|_.__/_\__,_|_||_|_\__\___/_|_|_|_|_|_\_,_|_||_|_|\__|\_, | |___| |__/ v25.8 rolling for Orange Pi Zero3 running Armbian Linux 6.12.35-current-sunxi64 Packages: Debian stable (bookworm) Support: for advanced users (rolling release) IPv4: (LAN) xxx.xxx.xxx.xxx (WAN) yyy.yyy.yyy.yyy IPv6: fd00:xxxx:xxxx::xxxx:xxxx (WAN) xxxx:xxxx::yyyy:yyyy WiFi AP: SSID: (ssid), Performance: Load: 2% Uptime: 3:50 Memory usage: 4% of 3.83G CPU temp: 41°C Usage of /: 3% of 58G RX today: 7 MiB Commands: Configuration : armbian-config Monitoring : htop
Routing between 2 NIC's
in Beginners
Posted
just 2 cents :
if PC1 can access "Rocky Liinux" ,
if what you need is to access a particular UDP or TCP port on Device 1 10.10.10.2, you can try port forwarding
normally done with iptables, nftables, ufw etc
also called NAT (netowork address translation)
e.g.
https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)#Destination_NAT
this needs to be done on "Rocky Linux"