Ma Tianfu Posted December 30, 2018 Posted December 30, 2018 I wonder how much ram is consumed by kernel, system services and tmpfs on a typical armbian system? Rockchip rk3308G has 64MB ram packaged in cpu. A dirty cheap 4 layer board could have a cpu, a few discrete power chips, a mmc card slot, and a wifi/bt module, with a bunch of low speed io and two usb 2.0 port, one host and one otg. The cpu is quad core cortex A35, powerful and power efficient, compared to Pi Zero W or BBB. Does that sound interesting for an iot node? Or it is too crippled to do anything useful? I hope python or node.js could run on such a board, but for node, the memory usage should be very careful. Any suggestions?
guidol Posted December 30, 2018 Posted December 30, 2018 For me - I cant see any useful possibilities for a armbian-system <256MB With 256Mb my smallest system is a Orange Pi R1. On a OrangePi Zero with 512MB the memory looks like this with node.js, Node-Red and PM2: top - 20:24:16 up 1 day, 10:49, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 99 total, 1 running, 55 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.4 us, 0.5 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 505156 total, 163500 free, 156164 used, 185492 buff/cache KiB Swap: 252576 total, 252576 free, 0 used. 331636 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25008 root 20 0 8664 2820 2364 R 2.9 0.6 0:03.39 top 1285 root 20 0 121740 40844 19220 S 0.3 8.1 5:28.15 PM2 v3.2.4: God 1303 root 20 0 160508 82408 20548 S 0.3 16.3 7:46.98 node-red 17323 root 20 0 0 0 0 I 0.3 0.0 0:29.46 kworker/0:1-eve 24991 root 20 0 0 0 0 I 0.3 0.0 0:00.18 kworker/1:1-eve 1 root 20 0 26936 5456 3832 S 0.0 1.1 1:09.13 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.16 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 9 root 20 0 0 0 0 S 0.0 0.0 0:00.58 ksoftirqd/0 10 root 20 0 0 0 0 I 0.0 0.0 0:27.12 rcu_sched 11 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh 12 root rt 0 0 0 0 S 0.0 0.0 0:00.25 migration/0 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 15 root rt 0 0 0 0 S 0.0 0.0 0:00.07 migration/1 16 root 20 0 0 0 0 S 0.0 0.0 0:02.13 ksoftirqd/1 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2 20 root rt 0 0 0 0 S 0.0 0.0 0:00.24 migration/2 21 root 20 0 0 0 0 S 0.0 0.0 0:00.23 ksoftirqd/2 24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3 25 root rt 0 0 0 0 S 0.0 0.0 0:00.24 migration/3 26 root 20 0 0 0 0 S 0.0 0.0 0:00.19 ksoftirqd/3 29 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kdevtmpfs 30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns 35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 36 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper
TonyMac32 Posted December 30, 2018 Posted December 30, 2018 2 hours ago, Ma Tianfu said: Rockchip rk3308G has 64MB ram packaged in cpu. I was unaware of RAM packaged on board that SoC, do you have a datasheet? Yes, Armbian could run on it if you tailored a command line image to fit, same as for the Allwinner V3s. obviously you'd have to look long and hard at the use case and the tools you want to use in that limited memory space.
guidol Posted December 30, 2018 Posted December 30, 2018 32 minutes ago, TonyMac32 said: do you have a datasheet? in this v1.4 datasheet (or here - also v1.4) you could read about the embedded 64Mb of the Rockchip rk3308G
TonyMac32 Posted December 30, 2018 Posted December 30, 2018 5 minutes ago, guidol said: in this datasheet you could read about the embedded 64Mb of the Rockchip rk3308G Aha! I only turned up the V1.1 datasheet that does not specify the "G" variant. 1
TonyMac32 Posted December 30, 2018 Posted December 30, 2018 I might add that almost half the balls on the package go to ground on the "G", a shame it wasn't available in a friendlier package than a BGA, although sitting quietly for a moment, one begins to realize that the V3s has 64 MB for a single 32-bit core to use, while the RK3308G is splitting in between 4 64-bit cores. If I were to use it I'd probably power down all but 2 of the cores if possible. I wonder if XIP is an option? It appears QSPI is a possible medium.
sfx2000 Posted December 30, 2018 Posted December 30, 2018 2 hours ago, TonyMac32 said: I might add that almost half the balls on the package go to ground on the "G", a shame it wasn't available in a friendlier package than a BGA, although sitting quietly for a moment, one begins to realize that the V3s has 64 MB for a single 32-bit core to use, while the RK3308G is splitting in between 4 64-bit cores. If I were to use it I'd probably power down all but 2 of the cores if possible. I was just going to say - reminds me a lot of the Allwinner V3s chat... and BGA isn't very maker friendly... It's a Quad A35, and with 64MB of embedded DRAM, I can't imagine they're running a lot of 64 bit ARM code there... To @Ma Tianfu point - would be a nice little IOT board, but with limited RAM, not really comparable to BeagleBone Black or RPi Zero - Armbian might be a tight squeeze, but OpenWRT/LEDE might fit in and be fairly performant...
Ma Tianfu Posted December 31, 2018 Author Posted December 31, 2018 The chip is targetted on smart speaker market, according to rockchip guys. They have a SDK based on v4.4 kernel and build root, with a lot of voice/audio processing packages. Probably 32 bit system recommended. I don't know whether zram could help a little on memory constraint or doesn't help at all. I will give it a try when I have a board. Both rk3308 and its G variant have similar cores/performance to Allwinner A64/R18, but they are cheaper and easier (built-in ddr2 or 16 bit ddr2/ddr3) with have better driver support. I think both of them have great potential on IoT market, though they officially position them as processors for speaker.
sfx2000 Posted December 31, 2018 Posted December 31, 2018 5 hours ago, Ma Tianfu said: Both rk3308 and its G variant have similar cores/performance to Allwinner A64/R18, but they are cheaper and easier (built-in ddr2 or 16 bit ddr2/ddr3) with have better driver support. I think both of them have great potential on IoT market, though they officially position them as processors for speaker. Had a chance to go back thru the data sheet - the 3308 and the G variant have the same pinout, so the same board if planned for 3308 can be also used with the G model, which is kind of nice as it does give some product line flexibility for design. It does max out at 512MB if not using the G, and one can still use ARMv8-A as a build target with Aarch32...
Recommended Posts