Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPU lscpu not identifying ARM processors #2701

Closed
RoyCRoderickIII opened this issue Mar 5, 2024 · 46 comments
Closed

CPU lscpu not identifying ARM processors #2701

RoyCRoderickIII opened this issue Mar 5, 2024 · 46 comments
Assignees
Labels
enhancement New feature or request

Comments

@RoyCRoderickIII
Copy link

So looking over the shells script its apparent the CPU info only handles for intel,amd cpu's. Both Powershell and Ubuntu have arm variants and multiple miner options that we already use in RBM just arm versions. I have managed to successfully install and run RBM on a orange PI in arm ubuntu as a server only due to lack of CPU detection. I would be more then happy to provide my lscpu or whatever else you may require to be able to add arm variants to the CPU detection. I would also be willing to provide feedback on what works as is, and suggestions of existing ARM miners that are work i.e the arm Xmrig, jaydee's ccminer-opt etc, ccminer verus etc. With the rise of ARM everywhere I don't think i can overstate what a huge advantage this could be for RBM, especially in a economy where power prices are on the rise, and SBC's are using less power then cellphones and achieving much higher hashrates.

@RainbowMiner RainbowMiner self-assigned this Mar 5, 2024
@RainbowMiner
Copy link
Owner

Thank you! So let's try to get a grip on ARM.
Could you please run cputest.sh in your RainbowMiner folder and post the result here?

@RainbowMiner RainbowMiner added the enhancement New feature or request label Mar 6, 2024
@RoyCRoderickIII
Copy link
Author

Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Model name: Cortex-A76
Model: 0
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 2
Stepping: r4p0
CPU max MHz: 2400.0000
CPU min MHz: 408.0000
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
L1d cache: 384 KiB (8 instances)
L1i cache: 384 KiB (8 instances)
L2 cache: 2.5 MiB (8 instances)
L3 cache: 3 MiB (1 instance)
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected

  1. lscpu

Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: ARM
Model name: Cortex-A55
Model: 0
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: r2p0
CPU max MHz: 1800.0000

@RainbowMiner
Copy link
Owner

Super, thank you!
Which one is the more correct? The Cortex-A76 or the lscpu with Cortex-A55?

@RoyCRoderickIII
Copy link
Author

i am attempting to VNC in, for the complete test, nano I just realized cut half of it off. Also in this case with the OrangePi, both are correct, its 8 cores, quad for both the A76 and A55. which actually works out well for phones cause the A55 is a very common chipset.

@RainbowMiner
Copy link
Owner

RainbowMiner commented Mar 6, 2024

Yes, I am missing the most important parts :)

There should be more different outputs inside the cputestresult.txt

1. lscpu

2. cpuinfo

3. Fill CPUInfo object

4. Parse CPU features

5. Add Vendor to CPUInfo object

6. Add RealCores to CPUInfo object

7. Result: CPUInfo

@RoyCRoderickIII
Copy link
Author

CPU-TEST 03/06/2024 15:48:25

  1. lscpu

Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: ARM
Model name: Cortex-A55
Model: 0
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: r2p0
CPU max MHz: 1800.0000
CPU min MHz: 408.0000
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Model name: Cortex-A76
Model: 0
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 2
Stepping: r4p0
CPU max MHz: 2400.0000
CPU min MHz: 408.0000
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
L1d cache: 384 KiB (8 instances)
L1i cache: 384 KiB (8 instances)
L2 cache: 2.5 MiB (8 instances)
L3 cache: 3 MiB (1 instance)
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Vulnerable: Unprivileged eBPF enabled
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected

  1. cpuinfo

processor : 0
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0

processor : 1
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0

processor : 2
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0

processor : 3
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0

processor : 4
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0

processor : 5
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0

processor : 6
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0

processor : 7
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0

Serial : be4737132eeaa2d9

  1. Fill CPUInfo object

  1. Parse CPU features

  1. Add Vendor to CPUInfo object

  1. Add RealCores to CPUInfo object

  1. Result: CPUInfo

{
"Features": {
"": true
},
"Name": "",
"Manufacturer": "",
"Cores": 0,
"Threads": 0,
"PhysicalCPUs": 0,
"L3CacheSize": 0,
"MaxClockSpeed": 0,
"Vendor": "OTHER",
"RealCores": [
0,
-1
],
"IsRyzen": false
}

@RoyCRoderickIII
Copy link
Author

not sure if that was enough for you, so I managed to dig up the datasheet on the chipset.
https://www.cnx-software.com/pdf/datasheet/Rockchip-RK3588S-Datasheet%20V1.0-20211221.pdf

@RainbowMiner
Copy link
Owner

Nice! Thank you very much. With this info I will be able to implement the ARM CPU detection. After that, I will need to find out, which CPU miners actually are able to handle ARM.

@RoyCRoderickIII
Copy link
Author

Well once i get cpu detection i will let it loose and can report back, and when i get home, i can compile list of different ones i currently use both on the pi and on varius phones . Luckily alot of them are just change of architecture, like xmrig, cpuminer-opt etc so should save you some work on the shell scripts.

@RoyCRoderickIII
Copy link
Author

RoyCRoderickIII commented Mar 7, 2024

Also if you like i am happy to collect the data for you for the other arm chips, seeing most newer phones only use a select few chipsets/manufacturers. If you can provide me with a list if exactly what it is you need i can dig it up for say the top 10 or so most common. As well as the Pi families which would open up a whole new world

@RainbowMiner
Copy link
Owner

RainbowMiner commented Mar 7, 2024

In fact, I would love to get my hands on as many examples as possible, so that I can perfectly program and test the detection. For that I would need the outputs of the following two commands for each CPU. Might even be Samsung Exynos or different:
lscpu
cat /proc/cpuinfo

Mostly, I'ld prefer to parse the /proc/cpuinfo - but for some instances, parsing the lscpu might be of use as well.

@RoyCRoderickIII
Copy link
Author

well i have 5-6 phones laying around and I know a few of us in the discord would be very willing to run this, so I will gather up as many as I can. i can reach out to others as well with raseberry pi's etc

@RoyCRoderickIII
Copy link
Author

RoyCRoderickIII commented Mar 8, 2024

So i got the lscpu for the 2 raseberry Pi's off a member of discord, the others are my phones that actually ran userland and in each text is the lscpu and cat /proc/cpuinfo for each phone :)
Blug91.txt
NuuA9L.txt
RP1.txt
RP3.txt
SamsungA03s.txt
SamsungA54G.txt
MotoGPure.txt

Also not sure if this helps, but I found this CPU detection library that seems simple enough, and from what I remember of your shells scripting outputs from what I can remember almost everything you were checking for.
https://github.com/klauspost/cpuid

RainbowMiner added a commit that referenced this issue Mar 9, 2024
- update CPU detection to cover most ARM-like processors (issue #2701)
@RainbowMiner
Copy link
Owner

Ok, I have implemented a first draft. Most ARM based CPUs should now be detected.

RainbowMiner added a commit that referenced this issue Mar 9, 2024
- avoid duplicate processor counts for some CPU configurations (issue #2701)
@RoyCRoderickIII
Copy link
Author

RoyCRoderickIII commented Mar 9, 2024

debug_2024-03-08.zip
My debug,and happy to report it detects the cpu and all 8 cores, but does not seem to detect the ram,clock speed,temps etc maybe be a library issue for arms. does not launch a single miner ,or even try to benchmark. Also was ran in client mode and worked as it should copying over from the server.

Update
I stand corrected took it a few but it is downloading miners and attempting to benchmark, I will report when its done.

RainbowMiner added a commit that referenced this issue Mar 9, 2024
- handle non-integer values in Family, Model and Stepping values (issue #2701)
RainbowMiner added a commit that referenced this issue Mar 9, 2024
- add Architecture to CPU object (issue #2701)
@RoyCRoderickIII
Copy link
Author

So pretty much everyone reports back (Exec format error) which i am sure is because of the arch difference,. i was however speaking with ondalf in zpool discord and he filled me in on https://github.com/JayDDee/cpuminer-opt has built-in support for arm8. so i am assuming just need to add a elseif in the compile of the jaydee we already have,and seeing you cant run both arm and x64 on the same machine everything else should be ok lol

RainbowMiner added a commit that referenced this issue Mar 9, 2024
- disable all on ARM, enable Xmrig on ARM (issue #2701)
@RainbowMiner
Copy link
Owner

Yes, I have already build Xmrig for ARMv8. Now I am compiling the JayDDee miner.

@RoyCRoderickIII
Copy link
Author

yeah i saw you did right after I posted which I already could see from the amount of coding you had already been working on it.

@RoyCRoderickIII
Copy link
Author

RoyCRoderickIII commented Mar 9, 2024

WARNING: Error parsing threads config file - cannot create miner config file (Xmrig-CPU#00 {Take2@Mining4people})
PS>TerminatingError(Get-Content): "The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Cannot find path '/home/roy/RainbowMiner/Bin/ANY-Xmrig/config_Take2_1xCortexA55CortexA76_0xff_8.json' because it does not exist."
WARNING: Creating miner config files failed (Xmrig Take2@Mining4people}) [Error: 'Cannot find path '/home/roy/RainbowMiner/Bin/ANY-Xmrig/config_Take2_1xCortexA55CortexA76_0xff_8.json' because it does not exist.'].
   Status: Idle

debug_2024-03-09.zip

This after i manually pulled the new commits.

@RainbowMiner
Copy link
Owner

Thank you for your report. I will check this.
Could you try the following: goto the ANY-Xmrig folder and just start ./xmrig --version there, and tell me the result?

cd /home/roy/RainbowMiner/Bin/ANY-Xmrig
./xmrig --version

@RainbowMiner
Copy link
Owner

RainbowMiner commented Mar 9, 2024

Also, two more things:
there might be some problem with access rights. I would recommend you remove the RainbowMiner folder (and maybe save the config files first) and re-install a new instance. Do not start Rainbowminer as sudo. There is the ocdaemon in the background which should start the miners with elevated right automatically.
Secondly - downgrade the Powershell core to v7.2.18 - all versions above (7.3, 7.4) have a memory leak.

@RoyCRoderickIII
Copy link
Author

RoyCRoderickIII commented Mar 9, 2024

roy@OrangePI516GB:~/RainbowMiner/Bin/ANY-Xmrig$ ./xmrig --version
bash: ./xmrig: cannot execute binary file: Exec format error
yes i believe its a chmod i believe it is? cause the json files are there.

i am not worried about the config files, I have those safe on my laptop, which I am currently using as server. Also redoing powershell should be interesting I had to manual install it haha
image

@RoyCRoderickIII
Copy link
Author

i took your suggestion for Powershell, and reinstalled rbm as well. It seems to be the same, I don't think its making the switch between the x64 and arm version.
debug_2024-03-10.zip

@RainbowMiner
Copy link
Owner

Which Linux is running on that orange pi?
Question: would you be able to compile the Cpuminer Jayddee on that PI? Mine has too low RAM, so the compilation always crashes.

That would be the way:

cd ~
sudo apt-get install build-essential automake libcurl4-openssl-dev libjansson-dev libgmp-dev zlib1g-dev git
git clone https://github.com/JayDDee/cpuminer-opt.git
cd cpuminer-opt
./armbuild-all.sh

That should result in the following files. If you zip them and upload them here would be wonderful.

cpuminer-armv8
cpuminer-armv8-aes
cpuminer-armv8-sha2
cpuminer-armv8-aes-sha2

@RoyCRoderickIII
Copy link
Author

Yeah i already have it compiled, i also just had a thought i am running the pi in client mode, so its copying from my laptop( which i must admit manually enabled all the algos , before i found the enable unprofitable setting in config )i will redo rbm, and leave it as standalone. But its the rockchip ubuntu 20.04 nothing crazy. And when i get home i get those together for ya.

@RoyCRoderickIII
Copy link
Author

This is the Ubuntu I am running seeing it added a bunch of small things already included i.e wifi dongle support, ssh enabled by default etc
https://github.com/Joshua-Riek/ubuntu-rockchip/releases
The ones you requested
cpuminer-opt.tar.gz
cpuminer-opt.tar.gz

And the whole folder after compile

@RainbowMiner
Copy link
Owner

Thank you! I will add this to the CpuminerJayddee module.

@RoyCRoderickIII
Copy link
Author

Anything to help out, have really enjoyed using the software , also out of curiosity which xmrig did you use?
https://github.com/HighVoltage557/XmrigOnAndroid
Is the script ive used on the pi and all my phones and works without a hitch.

RainbowMiner added a commit that referenced this issue Mar 10, 2024
- add cpuinfo-armv8 for ARM sysinfo (issue #2701)
RainbowMiner added a commit that referenced this issue Mar 10, 2024
- handle new cpuinfo-armv8/sysinfo-armv8.sh for ARM (issue #2701)
RainbowMiner added a commit that referenced this issue Mar 10, 2024
- add ARMv8 binaries (issue #2701)
RainbowMiner added a commit that referenced this issue Mar 10, 2024
- fix detection of ARMv8 binaries (issue #2701)
@RainbowMiner
Copy link
Owner

Ok - done. I had some typo in the ARM detection within the miner modules, so we really unintentionally used the default linux variants. Now this is fixed for Xmrig. For CpuminerJayddee, I have included your compiled binaries.
Also, I have added a new ARMv8 compatible cpuinfo-tool, so that temp. and clock should be available now, as well (needs commits: baccc94 and ff7b268)

Regarding your question: I am using the https://github.com/xmrig/xmrig - in fact, the installation shell scripts on the github page you have mentioned do git clone and compile this as well.

@RoyCRoderickIII
Copy link
Author

well am reinstalling RBM as we speak, the clone has been giving me grief all day with rpc errors, so I will do update to the current commits and report back

@RoyCRoderickIII
Copy link
Author

So good news to report, so far only 3 have failed, and it seems like a simple missing library error. Everything else benched and passed minus the 3 on xmrig. if we want to knit pick there are some sensor issues still, its reporting the pi using 82w lol I think it misplaced a decimal 8.2w I can believe I know perfectly well its not pulling 82w. and I will look into something for the temperature sensors, cause when I pulled sensors up in another terminal window the temps where at least 10c off. sensors was showing in the 70c and the rbm showing 80

debug_2024-03-11.zip

@RainbowMiner
Copy link
Owner

RainbowMiner commented Mar 11, 2024

Nice! Thank you for the feedback. That power issue is related to missing TDP values. I will try to gather data.

Edit: the power consumption for ARM boards is so much different from the Intel/AMD. That brings me to the conclusion to add a new config parameter, so that the TDP value can individually be set.

@RoyCRoderickIII
Copy link
Author

Yes, i dunno if you want to continue to use affinity as well for the cpu's , cause I know once we get this all worked out I only plan on running the 4 faster cores. cause the cooling system on these pi's are nothing like a CPU., or maybe separate the core's like how the GPU's show up GPU 00 and GPU 01. Cause what comes to mind is customizing cores running for heat, considering with the pi's its not so much there power usage, but keeping them in a relatively good temperature range,they wont handle being beat up 24/7 with high temps. So if we separate the CPU's gives use the ability to run say 3 and 3 without all the extra binary figuring out.

RainbowMiner added a commit that referenced this issue Mar 11, 2024
- update Powershell Core version to v7.2.18
- add config.txt parameter "PowerCPUtdp" to set a CPU's max. power/TDP in case the build-in power calculation fails. Most useful for ARM (issue #2701)
- add "PowerOffset", "PowerOffsetPercent" and "PowerCPUtdp" to config.txt parameter "ExcludeServerConfigVars" by default.
@RoyCRoderickIII
Copy link
Author

on the Xmrig issues with "/home/roy/RainbowMiner/Bin/ANY-Xmrig/xmrig: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /home/roy/RainbowMiner/Bin/ANY-Xmrig/xmrig)" I have this installed from the script and it runs fine all these algos. Looking over the script https://github.com/HighVoltage557/XmrigOnAndroid/blob/main/compile.sh I ran the dependencies manually and all where accounted for. the only thing from what i can see i have no idea about is the figlet small compiling? or maybe just a library reference issue. I have also enable unprofitable ( just for testing) and happy to report all but the 4 xmrig algos CryptoNightLiteUpx2,Take2,Randomx,RandomArq are running without issue

@RoyCRoderickIII
Copy link
Author

https://github.com/TheRetroMike/VerusCliMining For Verus is a good addition.

RainbowMiner added a commit that referenced this issue Mar 12, 2024
- update ARM version of miner (issue #2701)
@RainbowMiner
Copy link
Owner

I have updated the Xmrig ARM version in the hope to get rid of the library not found problem.

@RoyCRoderickIII
Copy link
Author

I am heading home now i will update and let you know within the hour :)

@RoyCRoderickIII
Copy link
Author

sorry took so long github was being difficult, seems like only take2 and randomx left, the others seem fixed
debug_2024-03-12.zip

@RoyCRoderickIII
Copy link
Author

So pushed update to 4.9.18, firstly xmrig seems all in order now, the cryptonight variants have a hard time mostly cause of lack of usage. take2, and randomx appear to be in working order. Also the power usage and temps seem more accurate now. Only downside so far is now have to rebench everything cause some are showing 80w+ usage and the new fixed ones are showing 4-5w

@RoyCRoderickIII
Copy link
Author

So i come home and notice something while its been benchmarking and running all night, something is weird with the pools, its not just using the config pools, and when you even go to edit pools through the GUI normally your active pools are uptop and inactive below, none of them are split, its like they are all in inactive, but its using all of them.
image
image
as you can see it show no pools are selected. but I redid my laptop and had it copy the configs should it should look like this
image

@RoyCRoderickIII
Copy link
Author

i let it run the rest of the day as is, so its a total disregard for any pool config. its using coins on any pool they are mineable. in the mean time I will just set the coins I want via the individual pools, instead of allowing it to auto pool the coins. I will leave 1 coin as auto pool so can confirm.

@RoyCRoderickIII
Copy link
Author

So let it go all night, seems like it was some weird glitch,once I actually populated the pools with the coins, it never touched the auto pool coin again.

@artplan1
Copy link

I'm very interested in better ARM support, here's cputest results from asahi linux running on Apple M1

Currently I hardcoded to my CPU in cpu detection function, replaced xmrig and CpuminerJayddee with ARM builds, works good

cputest results
CPU-TEST 03/14/2024 22:16:52
================================================================================


1. lscpu
--------------------------------------------------------------------------------

Architecture:                       aarch64
CPU op-mode(s):                     64-bit
Byte Order:                         Little Endian
CPU(s):                             8
On-line CPU(s) list:                0-7
Vendor ID:                          Apple
Model:                              0
Thread(s) per core:                 1
Core(s) per socket:                 2
Socket(s):                          1
Stepping:                           0x2
Frequency boost:                    enabled
CPU max MHz:                        2064.0000
CPU min MHz:                        600.0000
BogoMIPS:                           48.00
Flags:                              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
Model:                              0
Thread(s) per core:                 1
Core(s) per socket:                 6
Socket(s):                          1
Stepping:                           0x2
CPU max MHz:                        3228.0000
CPU min MHz:                        600.0000
BogoMIPS:                           48.00
Flags:                              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
L1d cache:                          896 KiB (8 instances)
L1i cache:                          1.4 MiB (8 instances)
L2 cache:                           28 MiB (3 instances)
NUMA node(s):                       1
NUMA node0 CPU(s):                  0-7
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:           Mitigation; __user pointer sanitization
Vulnerability Spectre v2:           Not affected
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected

2. cpuinfo
--------------------------------------------------------------------------------

processor	: 0
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x024
CPU revision	: 0

processor	: 1
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x024
CPU revision	: 0

processor	: 2
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x025
CPU revision	: 0

processor	: 3
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x025
CPU revision	: 0

processor	: 4
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x025
CPU revision	: 0

processor	: 5
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x025
CPU revision	: 0

processor	: 6
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x025
CPU revision	: 0

processor	: 7
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x61
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0x025
CPU revision	: 0


3. Fill CPUInfo object
--------------------------------------------------------------------------------


4. Parse CPU features
--------------------------------------------------------------------------------


5. Add Vendor to CPUInfo object
--------------------------------------------------------------------------------


6. Add RealCores to CPUInfo object
--------------------------------------------------------------------------------


7. Result: CPUInfo
--------------------------------------------------------------------------------

{
"Features": {
  "": true
},
"Name": "",
"Manufacturer": "",
"Cores": 0,
"Threads": 0,
"PhysicalCPUs": 0,
"L3CacheSize": 0,
"MaxClockSpeed": 0,
"Vendor": "OTHER",
"RealCores": [
  0,
  -1
],
"IsRyzen": false
}

@RoyCRoderickIII
Copy link
Author

So far it runs on the OrangePi without a hitch, however as far as I can tell, I have attempted on 2 phones using various methods termux and userland am looking for other alternatives. The limit for RBM is the systemd service manager, none of those linux like systems have it. you end up with this
`userland@localhost:/RainbowMiner$ sudo ./install.sh
ocdaemon is currently not installed
Installing ocdaemon v1.0.1 to systemd
Created symlink /etc/systemd/system/multi-user.target.wants/ocdaemon.service → /etc/systemd/system/ocdaemon.service.
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Done! ocdaemon is up and running.
bash: line 1: {./Scripts/Install.ps1: No such file or directory
bash: line 1: exit: }: numeric argument required
/usr/bin/chmod: cannot access '/root/.local/share/powershell': No such file or directory
userland@localhost:
/RainbowMiner$ Cannot process the command because of a missing parameter. A command must follow -Command.

Usage: pwsh[.exe] [-Login] [[-File] [args]]
[-Command { - | [-args ]
| [] } ]
[-ConfigurationName ] [-CustomPipeName ]
[-EncodedCommand ]
[-ExecutionPolicy ] [-InputFormat {Text | XML}]
[-Interactive] [-MTA] [-NoExit] [-NoLogo] [-NonInteractive] [-NoProfile]
[-OutputFormat {Text | XML}] [-SettingsFile ] [-SSHServerMode] [-STA]
[-Version] [-WindowStyle <style>] [-WorkingDirectory ]

   pwsh[.exe] -h | -Help | -? | /?

PowerShell Online Help https://aka.ms/powershell-docs

All parameters are case-insensitive.`

@RoyCRoderickIII
Copy link
Author

So given the Arm detection is complete I believe this aspect of Arm devices is complete.

@RainbowMiner
Copy link
Owner

I'm very interested in better ARM support, here's cputest results from asahi linux running on Apple M1

Currently I hardcoded to my CPU in cpu detection function, replaced xmrig and CpuminerJayddee with ARM builds, works good

cputest results

Your CPU should already be detected with the new cpu detection. I will push a release now, so that you can easily update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants