-
-
Notifications
You must be signed in to change notification settings - Fork 495
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 XU4 | Force legacy cgroup v1 usage #4705
Comments
To add: this issue maybe the same or similar to that described here: https://archlinuxarm.org/forum/viewtopic.php?f=15&t=15354 An incompatibility somewhere with 'cgroup'... |
I guess kernel version is to low according this GitHub post opencontainers/runc#2959 (comment) It seem 4.15 is required at least to be able to use cgroup v2, But I guess there is no newer kernel than 4.14 for Odroid @MichaIng |
Can you try to reinstall Docker to assure the packages from the Bullseye suite are installed: apt install --reinstall docker-ce-cli containerd.io docker-ce I do not believe yet that Docker now strictly requires Linux v4.15+ without any major version increment. If Docker still won't work, and you are in mood for some backups and testing, we may push the Linux v5.4 bump for Odroid XU4 (and alike): #3861 Since I don't have it here, I cannot test it. Aside of installing the new kernel package, the So if you have a monitor and keyboard, and either a spare SD card to clone the current one to, or at least backup the content of that FAT partition (which contains all files we'd going to change), I'd love to go through this with you. I'll also sent a mail to Meveric, to check back whether he already did some tests on his end, or otherwise want to follow or help to get his images updated as well. |
That command doesn't fully work as it seems...
This output above is from the second time I ran the command - the first time the output got refreshed by my silly iPad SSH client. So I'm not sure if containerd.io actually got updated. Either way, a reinstall of portainer gives the same error after this. Are the reports that docker-ce and docker-ce-cli can't be downloaded indicative of a wider problem? I dont think I'm in a position/have time at the moment to do detailed testing with multiple SDs, kernel changes, and I also can't easily hook up a monitor etc. sorry. |
I can add though, I tried the fix in the link I posted above (appending systemd.unified_cgroup_hierarchy=0 to the line in boot.ini), and that allowed the reinstall of portainer to complete without error, and docker/portainer is running fine now! Are there any negative implications likely to this change? |
Strange error with the package download, I don't remember if I have seen this already, and no reason given either. The packages are definitely there: https://download.docker.com/linux/debian/dists/bullseye/pool/stable/armhf/ Great find with the cgroup downgrade, I missed that one. So looks like Bullseyes systemd by default uses a new cgroup implementation/version which is not supported by Linux v4.14 or older yet. So we need to add this at best directly to all our images (via next update) where we know that the kernel version is that low currently. The setting is described here: https://manpages.debian.org/bullseye/systemd-sysv/init.1.en.html#KERNEL_COMMAND_LINE grep cgroup2 /proc/filesystems We should then also set dmesg -l emerg,alert,crit,err And while it seems to be not used by default on Buster, the kernel command line parameter is understood already, so we can add it to our default boot config files without need to worry that users face boot warnings when creating Buster images via PREP. |
for what it's worth I've ran the 5.3.11 kernel for years on 3 HC2 devices just fine, and this has 5.4 kernel https://www.armbian.com/odroid-hc1/ (as Michalng mentioned)
I can test with 1 of my 3 devices in many user production environment (they only use samba & nfs) is there an image available? Armbian offers:
I've never used that though just noticed it.. years too late lol |
The kernel command line arguments are applied on next update on future images, at least for devices where we know how to do it: 3724290 E.g. on NanoPi M2 there is no boot configuration file, so I'm no sure how to achieve it there. In those cases users are informed about the issue. It may leave the question open about how to fix it, but it is probably better to get issues about that question that such with "Docker fails to install". |
Wrong value to disable hybrid mode: 73ecb61 Dammit, either the cgroupsv2 capability test is not precise or it alone is not the only issue. I installed Linux 4.9 on a Bullseye system, and even that it is <4.15, is shows:
Installing Docker works, but installing a container (Portainer tested) fails:
I applied the kernel command line arguments and retried: # grep 'cgroup2' /proc/filesystems
nodev cgroup2 But Portainer installs and runs fine. Removing the arguments breaks Portainer startup again. Even on a Debian Stretch system (where that kernel comes from) the above shows this output, even that the kernel natively does not support it, but Portainer still installs and runs fine. So generally the cgroup2 mount type is available on all (x86_64) kernel versions down til Stretch, and it can be mounted successfully. Whether or not it is mounted however depends on the Debian/systemd version: Bullseye:
Buster
Stretch
Now I guess those kernel command line arguments control whether systemd mounts v1, v2 or hybrid. And indeed:
|
Okay, I give up on this. It is not general cgroups v2 support, but cgroups BPF support to manage device access permissions, which is usually missing on Linux 4.14 and earlier. But I couldn't find a way to reliably test whether this is available or not, especially since the kernel build config is not always available. @simonfisher @G2G2G2G @davindisko grep cgroup2 /proc/filesystems And @G2G2G2G as you use Linux v5.3, does the bootloader still use I answered the boot.ini question myself: Armbian's Linux 5.4 image uses it as well. So kernel version check will be added to only apply the workaround on Linux 4.14 and below. |
The command:
Basically what you already had in the above post
Keep in mind my system is some 5.3 kernel that was only on armbian for a few months and I never reimaged anything.. not sure about their 5.4 kernel, if you have a dietpi or want me to run armbian's I can reimage it You answered the other one yourself? (If not let me know how to check the bootloader.. I am only familiar with /etc/defaults/grub which is not on these SBCs Here's this if it means anything
Is there any dietpi 5.4 kernel IMAGE file I can run on this? I'd like to dd it onto an sd card and give it a go |
Jep, so as well a |
@MichaIng ohh I figured it out, I was asking for a new image a few times.. I always thought you guys used armbian kernels on some of your distros but it's only debian.. (I'm slow) so I just have to take the current image and upgrade to bullseye. |
Armbian is also only Debian 😉. For Odroids we use Meveric's Odroid repository for kernel and some GPU accelerated libraries/packages: https://dietpi.com/meveric/ |
I know it's debian. Was just strictly kernels..that's why I said I'd test a 5.4 one (armbian's kernel) Is this coming soon? Looks like they added kernel 5.4 last year? https://forum.odroid.com/viewtopic.php?p=303023#p303023 Is there a way I can update to it via apt? |
Only on x86_64, the Debian kernel is used, in all other cases a different kernel package is used which is completely independent from the underlying Debian version. You could update the kernel package, but you also need to update the bootloader (U-Boot) and the boot configuration |
ohhh ok |
Creating a bug report/issue
Required Information
Linux DietPi 4.14.241+ #1 SMP PREEMPT Wed Jul 28 16:55:16 UTC 2021 armv7l GNU/Linux
Additional Information (if applicable)
Installed on a prior DietPi install, then upgraded to bullseye, portainer wasn't working so attempted reinstall
Steps to reproduce
Expected behaviour
Working Portainer...
Actual behaviour
This crash log:
Extra details
The text was updated successfully, but these errors were encountered: