From bee9e2df54d2003b73a2274ab887eb079731cc16 Mon Sep 17 00:00:00 2001 From: Christian Friesicke Date: Sat, 11 Mar 2017 17:45:54 +0100 Subject: [PATCH] :memo: Add Q&A entry about private futex warning Since this problem can be pin-pointed to kernel versions that are older than 2.6.22, a Q&A entry separate from the more general "Kernel too old" problem may be justified. This Q&A entry discusses the origin of the problem, some of the symptoms (no symptoms for "simple" programs like vim, but warnings and crashes for others), and concludes with a remark about possible (but complicated) workarounds. --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 2eea0a0..98f0c9e 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,34 @@ Troubleshooting > The output shows the minimum recommended Linux kernel version. +## Kernel doesn't support private futexes ## + +> **Q**: Why do I get the warning: "kompat: this kernel doesn't support private +> futexes and PRoot can't emulate them."? + +> **A**: This happens on older host OS kernels when the trick of showing a fake +> kernel version to the JuNest chroot is applied (see above: +> [Kernel too old](#kernel-too-old)). + +> The consequence of showing a fake kernel version to the JuNest chroot is that +> in the background, PRoot needs to translate requests from applications in the +> chroot to the old kernel of the host OS. Some of the newer kernel +> functionality can be emulated, but private futexes cannot be translated. + +> Private Futexes were introduced in Linux kernel 2.6.22. Therefore, the above +> problem likely appears on old Linux systems, for example RHEL5 systems, which +> are based on Linux kernel 2.6.18. Many of the core tools like `which`, `man`, +> or `vim` run without problems while others, especially XOrg-based programs, +> are more likely to show the warning. These are also more likely to crash +> unexpectedly. + +> Currently, there is no (easy) workaround for this. In order to be fully +> compatible with kernels below 2.6.22, both the precompiled package from +> JuNest and all software that is installed later needs to be compiled for this +> kernel. Most likely this can only be achieved by building the needed software +> packages from source, which kind of contradicts JuNest's distro-in-a-distro +> philosophy. + ## SUID permissions ## > **Q**: Why I do not have permissions for ping?