udev-182 needs CONFIG_ DEVTMPFS in kernel

After the latest upgrades on my gentoo vserver system running a 3.3.0 Linux  vserver-kernel (vserver-sources-2.3.3.1), the system did not start up properly anymore. No kernel modules got loaded and even the network devices have not been available after a reboot. This is more or less the worst case, since then one has to be physically in front of the machine and can not repair the system via ssh remote login.

The kernel upgrade was not the reason for this,  but the upgrade to udev-182. This is what the log said:

Mar 21 17:20:05 mittelerde /etc/init.d/sshd[5563]: ERROR: cannot start sshd as net.eth0 would not start
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6075]: Udev uses a devtmpfs mounted on /dev to manage devices.
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6076]: This means that CONFIG_DEVTMPFS=y is required
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6077]: in the kernel configuration.
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6067]: ERROR: udev-mount failed to start
Mar 21 17:20:09 mittelerde /etc/init.d/udev[6066]: ERROR: cannot start udev as udev-mount would not start
Mar 21 17:21:06 mittelerde /etc/init.d/net.eth0[6463]: ERROR: interface eth0 does not exist

With the information “CONFIG_DEVTMPFS=y is required” the log contains the necessary hint to get things to work. The CONFIG_DEVTMPFS option had to be enabled in the kernel. Afterwards the kernel has to be recompiled. The option can be found in menuconfig under Device Drivers-> Generic Driver options and is called Maintain a devtmpfs filesystem to mount at /dev.  For getting the devfs automatically mounted at boot time it makes sense to also enable the option Automount devtmpfs at /dev, after the kernel mounted the rootfs (CONFIG_DEVTMPFS_MOUNT).

It is safe to enable these options with older udev versions. Doing so protects your system from not working any more when you get the udev update later.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)
Loading...

zen-sources-3.2 with tuxonice

Starting with the 2.6.36 kernel, tuxonice has been removed from zen-sources. The latest official tuxonice patch, that is available at present, is for the linux kernel 3.0. In the meanwhile more recent patches, for kernel version 3.2.1 and 3.2.10, have appeared at crow202.org. So I patched the zen-stable-3.2 sources with the 3.2.1 tuxonice patch from there.

Suspend to RAM works with this kernel, at least on my Dell Precison M65 and my Desktop, as well as suspend to disk does. Furthermore I can confirm, that the 3.2.1 patch also works on the x86_64 architecture.

To get things to work, download the zen-stable-3.2 kernel tree from zen-kernel.org and extract it. Afterwards download the 3.2.1 tuxonice patch from crow202.org and apply it. After applying the patch you can continue with the standard kernel building process. As with zen-sources-3.1,  no additional patch is necessary for the zcache feature, the fix is already included in zen-stable-3.2. The zcache feature doubles RAM efficiency while providing a significant performance boosts on many workloads. The zcache feature is located under staging drivers in the kernel tree and depends on the cleancache feature, which is located under processor types and features. To enable the zcache feature, you have to pass the zcache keyword to your kernel, in example in your grub.conf.

Example: kernel /bzImage panic=60 root=/dev/hda3 zcache

For Gentoo users there is a more easy way: Download my modified overlay from zen-sources-3.2.tar.gz (1137) and extract it in /usr/local/portage. The overlay contains all necessary patches. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

If you want to use tuxonice include tuxonice in your USE-flags. Then emerge zen-sources and build the kernel as you like.

Tuxonice is not officially supported in current zen-sources. So If you’re using the files above, don’t report any bugs to zen-sources.org. You are on your own.

For my Precision M65 I used the following kernel config: config_zen_3.2_dell_m65.zip (1137)

For more information on the zen-sources patchset see www.zen-sources.org.

best regards

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

zen-sources-3.1 with tuxonice

Starting with the 2.6.36 kernel, tuxonice has been removed from zen-sources. The latest official tuxonice patch that is available is for the linux kernel 3.0.  However, I found a more recent patch at gmane.org. So I patched the zen-stable-3.1 sources with this tuxonice patch.

Suspend to RAM works with this kernel, at least on my Dell Precison M65 and my Desktop, as well as suspend to disk does.

To get things to work, download the zen-stable-3.1 kernel tree from zen-kernel.org and extract it. Afterwards download the tuxonice patch from gmane.org and apply it. After applying the patch you can continue with the standard kernel building process. This time no additional patch is necessary for the zcache feature, the fix is already included in zen-stable-3.1. The zcache feature doubles RAM efficiency while providing a significant performance boosts on many workloads. The zcache feature is located under staging drivers in the kernel tree and depends on the cleancache feature, which is located under processor types and features. To enable the zcache feature, you have to pass the zcache keyword to your kernel, in example in your grub.conf.

Example: kernel /bzImage panic=60 root=/dev/hda3 zcache

For Gentoo users there is a more easy way: Download my modified overlay from zen-sources-3.1.tar.gz (1060) and extract it in /usr/local/portage. The overlay contains all necessary patches. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

If you want to use tuxonice include tuxonice in your USE-flags. Then emerge zen-sources and build the kernel as you wish.

Tuxonice is not officially supported in current zen-sources. So If you’re using the files above, don’t report any bugs to zen-sources.org. You are on your own.

For my Precision M65 I used the following kernel config:  config_zen_3.1_dell_m65.zip (1115)

For more information on the zen-sources patchset see www.zen-sources.org.

best regards

Jürgen

 

 

 

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

iptables mirror target for linux kernel 3.1

After my last kernel upgrade I tried to build the iptables mirror target published here. The iptables mirror target takes the packet sent to your machine and returns the same packet to the machine the packet came from. Thus, let’s say someone tries to scan your machine or tries an attack he would scan his own machine or even attack his own machine. Guess what happened when I tried it with kernel versions 3.1 and 3.2 , it did not build anymore with the current linux kernel. There were some changes in the  kernels network stack. So I had to modify the iptables mirror target again to make the module work with current kernel versions. You can download the newer release for kernel version 3.1 and probably future kernels here:

MIRROR.3.1.0.tar.gz (2362) gplv3-127x51

The kernel module has been tested with kernel version 3.2.1 and 3.1. To build the module, boot the kernel you want to use the module with. Afterwards unpack the archive and run the compile.sh script to build the module. Then run the install.sh script for installing the compiled module into the /lib/modules directory for your kernel.

Now you may use the mirror target in place of the REJECT or DROP target in the INPUT, FORWARD and PREROUTING chains, like this in your firewall script:

$IPTABLES -A INPUT -j MIRROR

Beware: The use of the mirror target may lead to strange results, in example if you want to connect to an iptables protected machine which uses the mirror target, you may end up connecting to the local machine without recognizing it. It also may use much bandwith. The worst case occurs if you have two machines using the module. These machines may end up playing ping pong. So you have been warned, use with caution and at your own risk. For more information see: MIRROR target.

Downloads for older kernel versions are below. Notice the version numbering 2.6.25 works for kernels up to 2.6.27. 2.6.28 also works for 2.6.29 and 2.6.30 kernels. The 2.6.13 version of the module should work up to kernel version 2.6.16.

MIRROR.2.6.13.tar.gz (3199)
MIRROR.2.6.24.tar.gz (3639)
MIRROR.2.6.25.tar.gz (3358)
MIRROR.2.6.28.tar.gz (3409)
MIRROR.2.6.31 (3231)
MIRROR.2.6.35.tar.gz (3161)
MIRROR.2.6.36.tar.gz (3248)
MIRROR.2.6.37.tar.gz (2985)
MIRROR.3.0.7.tar.gz (2672)
gplv3-127x51

regards
Jürgen

 

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

zen-sources-3.0 with tuxonice

Starting with the 2.6.36 kernel, tuxonice has been removed from zen-sources. The latest tuxonice patch that is available is for the linux kernel 3.0.  So I patched the zen-stable-3.0 sources with tuxonice. Hopefully a patch for more recent kernel versions will be available soon.

Suspend to RAM works with this kernel, at least on my Dell Precison M65 and my Desktop, as well as suspend to disk does.

To get things to work, download the zen-stable-3.0 kernel tree from zen-kernel.org and extract it. Afterwards download the tuxonice patch from tuxonice.net and apply it. For getting the zcache feature, to work you have to download and apply this patch: linux-3.0-zcache-fix.patch.bz2 (1163) The zcache feature doubles RAM efficiency while providing a significant performance boosts on many workloads.  The patch has been extracted from vserver-sources-2.3.2.5 with working zcache feature.  After applying the patch  you can continue with the standard kernel building process. The zcache feature is located under staging drivers in the kernel tree and depends on the cleancache feature, which is located  under processor types and features. To enable the zcache feature, you have to pass the zcache keyword to your kernel, in example in your grub.conf.

Example: kernel /bzImage panic=60 root=/dev/hda3 zcache

For Gentoo users there is a more easy way: Download my modified overlay from zen-sources-3.0.tar.gz (1008) and extract it in /usr/local/portage. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

If you want to use tuxonice include tuxonice in your USE-flags. Then emerge zen-sources and build the kernel as you wish.

Tuxonice is not officially supported in current zen-sources. So If you’re using the files above, don’t report any bugs to zen-sources.org. You are on your own.

For my Precision M65 I used the following kernel config: config_zen_3.0_dell_m65.zip (1032)

For more information on the zen-sources patchset see www.zen-sources.org.

best regards

Jürgen

 

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

iptables mirror target for linux kernel 3.0.7

After my last kernel upgrade I recognized that the iptables mirror target I published here does not work anymore with kernel version 3.0. There were some changes in kernel code. Thus I had to modify the iptables mirror target again to make it work with current kernel versions. You can download the newer release for kernel version 3.0 and probably future kernels here:

MIRROR.3.0.7.tar.gz (2672) gplv3-127x51

The kernel module has been tested with kernel version 3.0.7. According to the kernel changelog it should work with kernels since 2.6.39. If you have tried the mirror module with other kernel versions  than 3.0.7, please leave a reply for others to know whether other versions work, or not.

To build the module, boot the kernel you want to use the module with. Afterwards unpack the archive and run the compile.sh script to build the module. Then run the install.sh script for installing the compiled module into the /lib/modules directory for your kernel.

Now you may use the mirror target in place of the reject or drop target in the INPUT, FORWARD and PREROUTING chains, like this in your firewall script:

$IPTABLES -A INPUT -j MIRROR

Beware: The use of the mirror target may have strange results, in example if you want to connect to an iptables protected machine which uses the mirror target, you may end up connecting to the local machine without recognizing it. It also may use much bandwith. The worst case occurs if you have two machines using the module.  These machines may end up playing pingpong. So you have been warned, use with caution and at your own risk. For more information see: MIRROR target.

Downloads for older kernel versions are below. Notice the version numbering 2.6.25 works for kernels up to 2.6.27. 2.6.28 also works for 2.6.29 and 2.6.30 kernels. The 2.6.13 version of the module should work up to kernel version 2.6.16.

MIRROR.2.6.13.tar.gz (3199)
MIRROR.2.6.24.tar.gz (3639)
MIRROR.2.6.25.tar.gz (3358)
MIRROR.2.6.28.tar.gz (3409)
MIRROR.2.6.31 (3231)
MIRROR.2.6.35.tar.gz (3161)
MIRROR.2.6.36.tar.gz (3248)
MIRROR.2.6.37.tar.gz (2985)
gplv3-127x51

regards
Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

tuxonice problems with nvidia-drivers-270.41.06

A few days ago nvidia-drivers-270.41.06 appeared in the gentoo partage tree. During my regular updates it got installed. Afterwards turonice did not work anymore with the configuration I wrote about in zen-sources-2.6.38_p20110501 with tuxonice.

The dmesg output during supend to disk was:

Freezing processes & syncing filesystems.
Stopping fuse filesystems.
Freezing user space processes … (elapsed 0.01 seconds) done.
Stopping normal filesystems.
Freezing remaining freezable tasks … (elapsed 0.01 seconds) done.
Preparing Image. Try 1.
Restarting normal filesystems.
Stopping fuse filesystems.
Freezing user space processes … (elapsed 0.00 seconds) done.
Stopping normal filesystems.
Freezing remaining freezable tasks …
Freezing of tasks failed after 20.00 seconds (1 tasks refusing to freeze, wq_busy=0):
khugepaged      R  running task        0   619      2 0x00800000
ffff88004ef24fa0 ffffffff81692eb9 ffff88004ef24fa0 ffff8800cf13e0c0
ffff8800c861e000 ffff8800c861e010 ffff8800c861e000 ffff8800cf13e330
ffff8800c861ffd8 ffff8800c861e010 ffff8800cf13e148 ffff8800cf13e330
Call Trace:
[<ffffffff81692eb9>] ? schedule+0x729/0xea0
[<ffffffff8169308b>] ? schedule+0x8fb/0xea0
[<ffffffff8110d4ab>] ? __page_check_address+0x10b/0x190
[<ffffffff8110d9f6>] ? page_referenced_one+0x96/0x220
[<ffffffff8110eb7a>] ? page_referenced+0x2da/0x370
[<ffffffff810f13fd>] ? shrink_page_list+0x21d/0x5d0
[<ffffffff810f1b9e>] ? shrink_inactive_list+0x15e/0x4d0
[<ffffffff812d74b8>] ? __next_cpu+0x18/0x30
[<ffffffff8103877b>] ? resched_best_mask+0x3b/0xd0
[<ffffffff810f22bb>] ? shrink_zone+0x3ab/0x500
[<ffffffff810f32bf>] ? do_try_to_free_pages+0xcf/0x470
[<ffffffff810f3965>] ? try_to_free_pages+0xa5/0x1c0
[<ffffffff810e7d5c>] ? __alloc_pages_nodemask+0x49c/0x900
[<ffffffff81050496>] ? try_to_del_timer_sync+0x76/0x110
[<ffffffff81050690>] ? process_timeout+0x0/0x10
[<ffffffff81126461>] ? khugepaged_alloc_hugepage+0x51/0xe0
[<ffffffff81061c70>] ? autoremove_wake_function+0x0/0x30
[<ffffffff811266bd>] ? khugepaged+0xad/0x10e0
[<ffffffff81061c70>] ? autoremove_wake_function+0x0/0x30
[<ffffffff81126610>] ? khugepaged+0x0/0x10e0
[<ffffffff81126610>] ? khugepaged+0x0/0x10e0
[<ffffffff81061706>] ? kthread+0x96/0xa0
[<ffffffff8103c6af>] ? schedule_tail+0x4f/0x110
[<ffffffff81003bd4>] ? kernel_thread_helper+0x4/0x10
[<ffffffff81061670>] ? kthread+0x0/0xa0
[<ffffffff81003bd0>] ? kernel_thread_helper+0x0/0x10

Cleaning up…
Restarting all filesystems …
Restarting tasks … done.
video LNXVIDEO:00: Restoring backlight state
TuxOnIce debugging info:
– TuxOnIce core  : 3.2
– Kernel Version : 2.6.38.4-zen
– Compiler vers. : 4.4
– Attempt number : 1
– Parameters     : 17 700428 2 1 -2 4
– Overall expected compression percentage: 50.
– Compressor is ‘lzf’.
– Block I/O active.
Used 0 pages from swap on /dev/sda6.
– Max outstanding reads 1. Max writes 0.
Memory_needed: 1024 x (4096 + 360 + 112) = 4677632 bytes.
Free mem throttle point reached 0.
– Swap Allocator enabled.
Swap available for image: 2098481 pages.
– File Allocator active.
Storage available for image: 0 pages.
– No I/O speed stats available.
– Extra pages    : 0 used/500.
– Result         : Hibernation was aborted.
: Freezing filesystems and/or tasks failed.

Somehow there seems to be a problem with nvidia-drivers-270.41.06. After downgrading to nvidia-drivers-260.19.44 tuxonice worked as usual.

Addon:

This solution was partly wrong. As I noticed later, the problem still persists occasionally. With the older nvidia-driver the probability that the problem occurs just was lower. However, the main reason  for the tuxonice abort is some incompatibility between tuxonice and the new transparent hugepage feature of the kernel. As a workaround one may disable the transparent hugepage support before suspension and reenable it afterwards. I.e. one can include something like the following in his hibernate configuration:

OnSuspend 90 echo ‘never’ > /sys/kernel/mm/transparent_hugepage/enabled

OnResume 90 echo ‘always’ > /sys/kernel/mm/transparent_hugepage/enabled

or

OnResume 90 echo ‘madvise’ > /sys/kernel/mm/transparent_hugepage/enabled

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...