From: Stuart Winter on
On Sat, 6 Mar 2010 07:47:26 +0000 (UTC), tyketto(a)sbcglobal.net.invalid wrote:

> Plus, I find it quite odd that a kernel that boots fine with
> software around it suddenly doesn't when the particular package that
> creates the devices doesn't create it anymore. That would mean that
> either the kernel is bung (which it wouldn't boot at all both pre and
> post updates), or the older udev was broken, shouldn't have worked at
> all, and the new update fixes it properly, or the older one works, and
> the newer one is broken. Seeing that I've used the same .config since
> 2.6.7, I kinda doubt it's the kernel, whether custom or stock.

Are you including udev in the initrd - using mkinitrd -u ? or letting it
use busybox's built in "mdev" ?
If you include udev into your initrd, then adjust the initrd script:

cd /boot
mkdir t
cd t
zcat ../initrd.gz | cpio -di ## (or whatever the initrd is called)
vi init

Go to the bottom of this file:

apply this patch:
--- init.orig 2010-03-06 08:41:46.823362275 +0000
+++ init 2010-03-06 08:41:59.641349155 +0000
@@ -282,6 +282,8 @@
pkill udevd
fi

+/bin/sh
+
unset ERR
mount -o move /proc /mnt/proc
mount -o move /sys /mnt/sys

find . | cpio -o -H newc | gzip -9fv > /boot/initrd.gz ## again use the real name

Then reboot. It'll drop you into a busybox ash shell immediately before
switching to the OS.
If you then look in /dev, you'll probably find your sda* block devices.

At least on ARM this worked - the same udev 151 in the initrd worked fine;
just once the OS booted, it only populated /dev with a very small number of
entries.

So far for ARM I've:
- tried the previous 2.6.32 kernel with the new udev: fail
- tried 2.6.33 with the new udev: fail

What I've now done is re-based the kernel config for the platform with troubles
on another ARM platform which works. Now 2.6.33 and udev 151 work as they should.

Question:
- why does udev in the initrd work fine with the same kernel that will then
fail when the OS boots and runs the OS copy of udev (even though it's
the same udev -- mkinitrd copies udev off the running OS)

Unfortunately my ARM kernel configs were quite different so I don't know what
the difference is that fixes the problem.


--
Stuart Winter
www.slackware.com/~mozes
Slackware for ARM: www.armedslack.org
From: Stuart Winter on
On 06 Mar 2010 09:46:41 GMT, not.a.real.address(a)interlude.org.uk wrote:

> - why does udev in the initrd work fine with the same kernel that will then
> fail when the OS boots and runs the OS copy of udev (even though it's
> the same udev -- mkinitrd copies udev off the running OS)
>
> Unfortunately my ARM kernel configs were quite different so I don't know what
> the difference is that fixes the problem.

For this ARM platform, the udev 151 docs say:
- Udev will not work with the CONFIG_SYSFS_DEPRECATED* option.

Which is what I had configured. However, I still don't know why it worked
in the initrd when the kernel had this configured.

But I'd suggest reading the udev 151 README file to check if your kernel
doesn't conflict with the requirements:
Requirements:
- Version 2.6.27 of the Linux kernel with sysfs, procfs, signalfd, inotify,
unix domain sockets, networking and hotplug enabled:
CONFIG_HOTPLUG=y
CONFIG_UEVENT_HELPER_PATH=""
CONFIG_NET=y
CONFIG_UNIX=y
CONFIG_SYSFS=y
CONFIG_SYSFS_DEPRECATED*=n
CONFIG_PROC_FS=y
CONFIG_TMPFS=y
CONFIG_INOTIFY_USER=y
CONFIG_SIGNALFD=y
CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes)
CONFIG_BLK_DEV_BSG=y (SCSI devices)


--
Stuart Winter
www.slackware.com/~mozes
Slackware for ARM: www.armedslack.org
From: Andy on
Stuart Winter wrote:

> On 06 Mar 2010 09:46:41 GMT, not.a.real.address(a)interlude.org.uk wrote:
>
>> - why does udev in the initrd work fine with the same kernel that will
>> then
>> fail when the OS boots and runs the OS copy of udev (even though it's
>> the same udev -- mkinitrd copies udev off the running OS)
>>
>> Unfortunately my ARM kernel configs were quite different so I don't know
>> what the difference is that fixes the problem.
>
> For this ARM platform, the udev 151 docs say:
> - Udev will not work with the CONFIG_SYSFS_DEPRECATED* option.
>
> Which is what I had configured. However, I still don't know why it worked
> in the initrd when the kernel had this configured.
>
> But I'd suggest reading the udev 151 README file to check if your kernel
> doesn't conflict with the requirements:
> Requirements:
> - Version 2.6.27 of the Linux kernel with sysfs, procfs, signalfd,
> inotify,
> unix domain sockets, networking and hotplug enabled:
> CONFIG_HOTPLUG=y
> CONFIG_UEVENT_HELPER_PATH=""
> CONFIG_NET=y
> CONFIG_UNIX=y
> CONFIG_SYSFS=y
> CONFIG_SYSFS_DEPRECATED*=n
> CONFIG_PROC_FS=y
> CONFIG_TMPFS=y
> CONFIG_INOTIFY_USER=y
> CONFIG_SIGNALFD=y
> CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes)
> CONFIG_BLK_DEV_BSG=y (SCSI devices)

I set CONFIG_SYSFS_DEPRECATED_V2=n, recompiled, re-installed udev-151 and
now it reboots fine. The binary nvidia drivers loads now too. The kernel
help for this option kinda rambles, but now that I know the solution I can
see what it is trying to say.

I knew there would be a simple fix once some people who grok the kernel
esoterica more than I got involved.

Thanks,

Andy

From: Randy on
Robby Workman wrote:

> On 2010-03-05, Randy <zaphod812(a)yahoo.com> wrote:
>
>> Guess I should have mentioned that I compiled everything I use in to my
>> kernel (2.6.31.6) I don't suppose Pat reads this board anymore, think he
>> may have years ago. I'll consider this as bug report filed.
>
>
> Consider this as "NOTABUG"
>
> I'm sorry that your custom kernel doesn't work on our system,
> but we simply don't have time to troubleshoot that.
>
> -RW

Yes you are correct, and thanks for all of your work Robby, I know you have
been here for years. Removing CONFIG_SYSFS_DEPRECATED and a recompile fixes
all problems for me. I had just been using the same kernel config for so
long that I assumed the issue was with udev. Maybe a small warning in the
ChangeLog might be warranted, as you can see I am not the only one that is
going to have issues with this.

Best of luck,
Randy.
From: Robby Workman on
On 2010-03-06, Randy <zaphod812(a)yahoo.com> wrote:
> Robby Workman wrote:
>
>> On 2010-03-05, Randy <zaphod812(a)yahoo.com> wrote:
>>
>>> Guess I should have mentioned that I compiled everything I use in to my
>>> kernel (2.6.31.6) I don't suppose Pat reads this board anymore, think he
>>> may have years ago. I'll consider this as bug report filed.
>>
>>
>> Consider this as "NOTABUG"
>>
>> I'm sorry that your custom kernel doesn't work on our system,
>> but we simply don't have time to troubleshoot that.
>>
>
> Yes you are correct, and thanks for all of your work Robby, I know you have
> been here for years. Removing CONFIG_SYSFS_DEPRECATED and a recompile fixes
> all problems for me. I had just been using the same kernel config for so
> long that I assumed the issue was with udev. Maybe a small warning in the
> ChangeLog might be warranted, as you can see I am not the only one that is
> going to have issues with this.


Yes, this is perhaps worth a word of caution in our docs, but just so
we're clear: we didn't intentionally "not mention" that. It's quite
obvious now (especially to me, since I did much of the early behind
the scenes work on the chain of stuff related to and including udev-149+),
but we (the team) honestly didn't know why this was happening for the
past few days. Once Stuart figured it out, it hit me like a ton of
bricks, but I'd honestly not thought it would be an issue for us.
We've not had that CONFIG_SYSFS_DEPRECATED option set in our default
kernels *ever* at all, so I guess I'd just kicked that bit of memory
off to the back of my head.

-RW
First  |  Prev  | 
Pages: 1 2 3
Prev: 64 bit question
Next: removing emacs