Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 466424

Summary: =sys-kernel/openvz-sources-2.6.32.72.10 doesn't let CONFIG_DEVTMPFS=y to be enabled together with CONFIG_VE=y for support with >sys-fs/udev-171
Product: Gentoo Linux Reporter: Vladimir Romanov (RETIRED) <blueboar>
Component: [OLD] Core systemAssignee: Gentoo VPS Team (OBSOLETE) <vserver-devs+disabled>
Status: RESOLVED FIXED    
Severity: normal CC: andreis.vinogradovs, proxy-maint, udev-bugs
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 04:06:11 UTC
I have debian 6.0.x Linux with Gentoo OpenVZ Virtuals installed in them. The OpenVZ kernel, shipped with Debian has no DEVTMPFS enabled, so, udev in OpenVZ containers don't work. Udev-171 is last existing udev, which don't need DEVTMPFS.
It is now masked, and marked for removal at 60 days. Please, don't do it. Let it be in the tree.

Debian 7.0.x, AFAIK don't have OpenVZ kernel at all, so i can't upgrade to it.

Reproducible: Always
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2013-04-19 06:15:37 UTC
And if you remove udev and udev-mount from runlevels and handle creating the required /dev entries by `mknod` and `MAKEDEV` after mounting it by hand as 'tmpfs'?
That is what I'm reading how others solved the issue.
If that is really the way to go with about this, then it should be automated somehow by the boot process.

But yes, I can change the mask message and remove the '60 days' from it so we can keep the old udev for a bit longer.
However keeping behind with sys-fs/udev is the most stupidest solution for the problem, and is not really going to work since many packages in Portage already require at least 196, 197.
Comment 2 Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 06:22:08 UTC
Well, i shall try to do it.
Comment 3 Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 06:33:20 UTC
Well, i removed udev from init scripts, now there is hundreds of devices in /dev (which doesn't actually exist).

By now there is only one error - gentoo tries to open Console 12 (Alt+F12), i think, to throw messages, but there is no such console in OpenVZ, so it throws many errors in syslog.

When i begin to add devices to container (i need to proxy audio card to virtual machine), may be other problems will occur.
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2013-04-19 06:45:48 UTC
I see MAKEDEV being used for console at:

http://forum.openvz.org/index.php?t=msg&th=11196&goto=48348&#msg_48348

And I see:

$ grep mknod /etc/init.d/udev-mount 
	[ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
	[ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
	[ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
	[ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
	[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11

What about creating own init script for OpenVZ to initialize these /dev nodes?
Comment 5 Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 06:51:32 UTC
It creates it, no problem. There is tty12 in /dev. Problem is that OpenVZ does not permit to write something to it. It says - "operation not permitted".
Comment 6 Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 06:55:36 UTC
Ouch. Find an answer. http://forum.openvz.org/index.php?t=msg&goto=34850& . Now it is working.
Comment 7 Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 06:59:43 UTC
So, now i can work in OpenVZ without udev. Now, i think, i will wait for one of three things - 

1) Gentoo team changes something in eudev (so, that it can be with or without DEVTMPFS). Well, i don't believe, that it can be done.
2) RHEL team will release RHEL7, and OpenVZ will be made for 3.x.x kernels
3) This thing - http://openvz.org/Vzctl_for_upstream_kernel will evolve into something more usable
Comment 8 Vladimir Romanov (RETIRED) gentoo-dev 2013-04-19 07:00:20 UTC
I think, bug may be closed.
Comment 9 Samuli Suominen (RETIRED) gentoo-dev 2013-04-19 07:06:22 UTC
(In reply to comment #8)
> I think, bug may be closed.

OK, lets wait for what the OpenVZ maintainers have to say about this first (the people in the vserver-devs@g.o mail alias)
Comment 10 michael 2013-04-26 21:36:49 UTC
I'm not sure what kernel specifically is being used by Digital Ocean but existing gentoo users there are affected by this same issue. (they are not allowing any new gentoo builds until they come up with another image. Portage is already failing to update and trying to force udev-202 even though I have it masked.
Comment 11 Andreis Vinogradovs ( slepnoga ) 2013-05-12 19:55:07 UTC
You
Comment 12 Andreis Vinogradovs ( slepnoga ) 2013-05-12 20:03:31 UTC
If you have use >200 udev, you can run ( in test enviroment) openvz in vanilla 
kernel ( >3.7 is minimal, latest recommended).

http://wiki.openvz.org/Vzctl_for_upstream_kernel
Comment 13 Peter Volkov (RETIRED) gentoo-dev 2013-06-10 11:42:04 UTC
Udev is a nice feature to have inside containers and personally I use it on my servers. But evidently to have this feature administrator either have to use kernel with DEVTMPFS enabled or build own kernel. In my view building kernel is not a hard task in Gentoo - just take config from upstream, build it with gcc-4.4 (or for me it works with gcc-4.6...) and use dracut to generate initramfs... 

The problem in this bug is that debian do not enable required features in their kernel. In my opinion this is bug in debian kernels so, please, post it there. Note, upstream suggested configuration ( http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/configs/config-2.6.32-042stab076.8.x86_64 ) has everything required enabled.

If it's impossible to convince debian maintainer or build customized kernel then it's possible to disable/mask udev in stages and maintain static device nodes.
Comment 14 Peter Volkov (RETIRED) gentoo-dev 2013-06-10 15:44:40 UTC
And update subject as it adds misunderstanding. It's perfectly valid to have both options enabled:

vz ~ # egrep 'CONFIG_(VE|DEVTMPFS)=' /boot/config-2.6.32-openvz-076.8 
CONFIG_VE=y
CONFIG_DEVTMPFS=y
Comment 15 Samuli Suominen (RETIRED) gentoo-dev 2013-06-10 15:50:20 UTC
(In reply to Peter Volkov from comment #14)
> And update subject as it adds misunderstanding. It's perfectly valid to have
> both options enabled:
> 
> vz ~ # egrep 'CONFIG_(VE|DEVTMPFS)=' /boot/config-2.6.32-openvz-076.8 
> CONFIG_VE=y
> CONFIG_DEVTMPFS=y

From this thread,

http://forums.gentoo.org/viewtopic-t-917082-start-25.html

See post from 'chris972' saying,

"The "!VE" makes all the difference. You CAN'T activate it with openvz, because devels consider OpenVZ can't work with DEVTMPFS."

I've verified it back then, it was not possible to enable both at the same time, has this been changed in later OpenVZ patchsets?
Comment 16 Peter Volkov (RETIRED) gentoo-dev 2013-06-10 16:01:30 UTC
Interesting. As far as I see, there is no such restriction anymore:

config DEVTMPFS
        bool "Create a kernel maintained /dev tmpfs (EXPERIMENTAL)"
        depends on HOTPLUG && SHMEM && TMPFS

And I remember there was a change to make devtmpfs "virtualized" (work in CTs), so I think that issue was fixed.
Comment 17 Samuli Suominen (RETIRED) gentoo-dev 2013-06-10 16:57:27 UTC
(In reply to Peter Volkov from comment #16)
> Interesting. As far as I see, there is no such restriction anymore:
> 
> config DEVTMPFS
>         bool "Create a kernel maintained /dev tmpfs (EXPERIMENTAL)"
>         depends on HOTPLUG && SHMEM && TMPFS
> 
> And I remember there was a change to make devtmpfs "virtualized" (work in
> CTs), so I think that issue was fixed.

I'll take your word for it (since you can enable both at the same time)

(And that'd be this bug FIXED then, and old $subject was correct :-)
Comment 18 Peter Volkov (RETIRED) gentoo-dev 2013-06-10 17:53:22 UTC
kk ;)