-
-
Notifications
You must be signed in to change notification settings - Fork 492
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
Odroid N2 | Testing and developing #5039
Comments
Now benchmarked fully overclocked, and while RAM is significantly faster (likely unrelated), CPU is even a little slower and I'm not able to reach the 3.92 seconds anymore (repeated several times) 🤔. Probably related to the upgrade from Bullseye to Bookworm I made, not sure:
We really need to raise the iteration counts/sizes for fast devices, else relative variations are too large. However, nice is that the CPU temperature goes down to 30 °C in a seconds with the default metal heat spreader the PCB sits on. And it works very stable (given a sufficient PSU). Idle frequencies stay the same, so this additional power is only used when required, and as long as you have no long term full CPU load, there is no additional risk for overheating. |
Thanks for working on this version. Waiting for mine to arrive.. Any ETA on a DietPi release? |
you mean for DietPi v8? If yes, have a look to #5059 |
Further testing with GUI:
Now trying to upgrade to the Armbian Linux 5.10 image, device tree and U-Boot. Interestingly they use the same |
With Armbian/mainline kernel, while CPU speed is a little faster, the RAM R/W benchmark is much lower, and eMMC read speed is as well repeatable significantly lower 🤔:
Need to check back what the reason can be. None of the Odroid/ Also I cannot get HDMI audio to work. I see only one audio card, which seems to be the 3.5mm jack. |
Summing up with Armbian mainline kernel testing:
I will also test Armbian's "next" kernel version and Meveric's new mainline kernel image (both kernel should match, Meveric's image is still in testing, lacks device tree overlay and U-Boot packaging, but nice is some additional overlays for fan/PWM control): https://oph.mdrjr.net/meveric/images/Bullseye/ |
I found the reason for the low RAM/tmpfs I/O benchmark: The two little cores stay at minimum 100 MHz CPU frequency, even with ondemand + io_is_busy=1 instead of schedutil CPU governor. This seems affect RAM/tmpfs I/O massively. Applying performance governor to the little cores solves it. Since we want to measure full RAM I/O performance here, unaffected by current CPU frequency, I'll change the benchmark to apply performance governor temporarily. This is done after the CPU benchmark, so has no effect on CPU temperature results. |
- DietPi-Benchmark | Apply performance CPU governor when running RAM I/O benchmark to avoid low frequency affecting RAM I/O results: #5039 (comment) - DietPi-Benchmark | A bunch of wording and coding enhancements, not affecting benchmark results
Figured out how to toggle HDMI and 3.5mm audio: https://forum.armbian.com/topic/19579-some-experiences-with-odroid-n2-on-debian-bullseye/?do=findComment&comment=135005 |
New image up and ready for testing: https://dietpi.com/downloads/images/testing/ |
@MichaIng is there any reason why I can't move RootFS to an external SSD drive connected over USB? |
What is the file system format of the attached USB drive? |
It's ext4 |
This is generally only offered on systems which do have and need a dedicated |
Marking as closed, but please keep testing and reporting if any issue or missing feature appears. I'll recreate the image tomorrow to ship with now stable DietPi v8.1 master branch and move it to stable. |
I've been running the new N2+ test image for a couple of weeks now and for the first time the board is running without reboots, freezes etc. I've just noted one issue: I have the N2 fan installed and it's turning on and off all the time, without the cpu being used a lot and the ambient temp being OK. |
|
Important thing is that the fan is working as set: above 40º it turns on and below turns off! |
Not sure what changes then. Without the |
No, I meant that initially it remained with the postboot.d script. For hours. Then suddenly it was gone. |
On the positive side I can confirm that this is the first image than runs on the N2+ top stable! |
Probably when the CPU temperature dropped again below 40 °C? |
No. It always showed: when the temp got above 40 (fan started) and when it got below (fan stopped). All the time netdata showed the fan. It disappeared out of the blue. |
Okay, very strange. |
P.S. uninstalling netdata (and deleting the /etc/netdata folder) and then reinstalling from scratch doesn't help. Fan does not show again. |
Hi, this morning (after a good night´s sleep ;) ) Netdata is again showing the fans! Did not do anything, just reappeared..... This is without the postboot.d script! But the |
spoke to soon. The fan graph shows but it does not update.... |
@MichaIng - I can't seem to get any audio out from this image on the 3.5mm jack. According to the documentation, it looks like hw:0,1 should be the DAC, but even choosing that in Though, that's probably better than what I'm seeing with the vendor kernel in the current 8.1 release, where it doesn't respect the volume controls at all, and just plays everything at full blast when it's enabled. |
Please use the hardcoded |
Recreated the image based on stable DietPi release, with minor fine tuning to our boot configs and moved to stable. |
@MichaIng How do we get the final updates/tunings to a running beta image? Thx in advance. |
When you are at latest beta release, the code is identical to master. I fixed enabling the correct serial console on image creation, but did that manually for the previous image, so when you didn't disable it anyway,
|
Replaced my boot.cmd with the new version. thx! |
For it to become effective, as stated at the top of the file, run: mkimage -C none -A arm64 -T script -d /boot/boot.cmd /boot/boot.scr But the change really has no practical effect, being cosmetic. |
I tried the hardcoded Using that hardcoded option on the stable image, I tried the following in I unmuted No matter what I seem to try, I get nothing out of the Roon Bridge app, and if I try
Am I missing an option somewhere? |
Hmm, let me test. |
Ah, can you try to enable the auto-conversion plugin in dietpi-config ALSA settings? I really need to verify that it is in fact a noop when the stream is already supported by the output device and only does anything when not. In that case we could remove that option and have it enabled OOTB. |
After changing that setting, Unfortunately, I'm still not hearing anything, so there seems to be something else going on as well. |
Found it, please do: sed -i -e 's/OdroidN2_HDMI/odroidn2_hdmi/' -e 's/OdroidN2_3\.5mm/odroidn2_3.5mm/' /boot/dietpi/func/dietpi-set_hardware Then re-select the |
- DietPi-Config | Resolved an issue where the onboard audio selection for our new Odroid N2 image did not work. Many thanks to @Kreeblah for reporting this issue: #5039 (comment)
Fixed with: 372ca17 I'll probably send a live patch, since the image just went live it will be applied for most users on first boot automatically. |
That did it, mostly. I'm getting sound now, but I'm also getting a very loud pop whenever a PCM stream starts, and a slightly quieter (though still quite loud) one whenever a PCM stream ends. Just from searching around, it seems this can happen on x86/x64-based systems with power management settings turning the audio hardware off, thought I don't know whether that applies to an ARM device. For anybody else who comes across this, it seems that the minimum things that need to be unmuted to get audio out of the 3.5mm jack are |
https://forum.odroid.com/viewtopic.php?f=177&t=34451&p=259180#p259451 seems to imply that power management settings can affect it on the N2 as well, though I haven't been able to figure out yet what to change on the mainline kernel that would be equivalent to what's in that post. |
EDIT new image available
for testing: https://dietpi.com/downloads/images/Finally I have an Odroid N2+ 4 GiB here, many thanks to Hardkernel for providing it.
The included eMMC module contained an Ubuntu image and I verified that kernel and
/boot/boot.ini
both match ours precisely. Okay not 100%, we only allocate the device tree overlay RAM address when any overlays are actually enabled, which are as well not in our case (no second UART, no SPI and I2C enabled by default) and we do not set overclocking settings to the kernel command line but leave them empty so that the system can fall back to the default. However verified that this all works as expected, and otherwise all bootloader/kernel/firmware wise our image matches the official Hardkernel image, which is intended for now.First boot
First of all I needed to tinker a bit before I was able to login/do input via debug UART
/dev/ttyS0
, but now it works fine (NB: Flow control: None!), as an alternative to SSH and for watching/debugging early boot logs.There are some kernel errors at boot. So far I see no negative impact, but while this is not uncommon, I don't like it, but it doesn't seem to cause issues:
cgroup2
is among it, and this is expected since this kernel Linux 4.4 does not really have cgroup2 support.Benchmarks
Benchmark done, and... this is a monster! 😱
Headless mode
As mentioned, interesting is the RAM allocated for the framebuffer. I assured this is still done when every video based config in
/boot/boot.ini
is disabled, which is. The framebuffer device is located at/proc/device-tree/meson-fb
, so let's create a device tree overlay to disable it:Prior to reboot:
After reboot:
Quite precisely the 75 MiB less.
But why that complicated, we are on U-Boot with a
/boot/boot.ini
where we can remove whole parts of the device tree right form the start: I removed/disabled the overlay again and instead added the device tree removals close to the end of/boot/boot.ini
so that it looks like that:Works, but some drivers then fail, expectedly. I tried to remove more video/codec related devices, but this either leads to various additional kernel errors or even renders the system unbootable since parts of the kernel expect them, some drivers, or one device references the other. Could be tuning by carefully checking cross-dependencies. However, same result:
Probably it would be possible to lower this to 40 MiB idle RAM, but the framebuffer module only is the major part. Btw, while the serial console keeps working without the framebuffer, it has a limited size of 640x480 (or so) 😄. SSH of course is completely unaffected.
We'll add this as headless mode with DietPi v8.0 I'd say, probably with v7.9 already when I find time to do some more tests. If someone could verify that this works the same way on Odroid C4, that would be awesome! I'm not sure whether on HC4 this is disabled by default, would make sense at least, otherwise also a test on this would be good, so we can add it for all of them as headless mode. I'll likely go with the device tree overlay, which feels somehow nice and safer compared to simply removing the device completely.
Tomorrow, video tests are on the plate, of course with framebuffer again enabled 😉. Then the Armbian ~upstream kernel will be tested.
The text was updated successfully, but these errors were encountered: