# UDEV migration issue? [Solved]

## kellwood

Hello All,

I have made several attempts to upgrade my system to a newer kernel and switch to udev but have failed.  I apologize for posting but I have read the FAQ etc and I am looked at everything many times.  The error that I get when I boot is:

 *Quote:*   

> 
> 
> VFS: Cannot open root device "822" or unkown-block(8,34)
> 
> Please append or correct "root=" boot option
> ...

 

I am pretty sure I followed the gentoo upgrade guide closely enough to where I think I can narrow things down to

 *Quote:*   

> 
> 
> 1. Kernel config
> 
> 2. Lilo boot options
> ...

 

Since things are not working, I am thinking that I am simply overlooking something obvious - I just can't see it.  So, I was hoping someone could look at the config files below and see if they should be OK for UDEV.

Thanks

Kevin

Here is my lilo.conf and I am booting "Newest" for UDEV:

```

lba32

boot = /dev/sdb1

map = /boot/.map

install = /boot/boot-menu.b   # Note that for lilo-22.5.5 or later you

                              # do not need boot-{text,menu,bmp}.b in

                              # /boot, as they are linked into the lilo

                              # binary.

menu-scheme=Wb

prompt

timeout=150

delay = 50

vga = normal

image = /boot/kernel-2.6.12-gentoo-r9

   root = /dev/sdc2

   #root = /devices/discs/disc0/part3

   label = 2.6.12-r9

   read-only # read-only for checking

image = /boot/kernel-2.6.15-gentoo-r1

   root = /dev/sdc2

   append = "nodevfs udev devfs=nomount"

   #root = /dev/discs/disc2/part2

   label = Newest

   read-only # read-only for checking

```

Here is my .config for the "Newest" kernel.

```

CONFIG_X86_32=y

CONFIG_SEMAPHORE_SLEEPERS=y

CONFIG_X86=y

CONFIG_MMU=y

CONFIG_UID16=y

CONFIG_GENERIC_ISA_DMA=y

CONFIG_GENERIC_IOMAP=y

CONFIG_ARCH_MAY_HAVE_PC_FDC=y

CONFIG_EXPERIMENTAL=y

CONFIG_CLEAN_COMPILE=y

CONFIG_LOCK_KERNEL=y

CONFIG_INIT_ENV_ARG_LIMIT=32

CONFIG_LOCALVERSION=""

CONFIG_LOCALVERSION_AUTO=y

CONFIG_SWAP=y

CONFIG_SYSVIPC=y

CONFIG_SYSCTL=y

CONFIG_HOTPLUG=y

CONFIG_KOBJECT_UEVENT=y

CONFIG_INITRAMFS_SOURCE=""

CONFIG_EMBEDDED=y

CONFIG_PRINTK=y

CONFIG_BUG=y

CONFIG_BASE_FULL=y

CONFIG_FUTEX=y

CONFIG_EPOLL=y

CONFIG_SHMEM=y

CONFIG_CC_ALIGN_FUNCTIONS=0

CONFIG_CC_ALIGN_LABELS=0

CONFIG_CC_ALIGN_LOOPS=0

CONFIG_CC_ALIGN_JUMPS=0

CONFIG_BASE_SMALL=0

CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y

CONFIG_OBSOLETE_MODPARM=y

CONFIG_KMOD=y

CONFIG_STOP_MACHINE=y

CONFIG_IOSCHED_NOOP=y

CONFIG_IOSCHED_AS=y

CONFIG_IOSCHED_DEADLINE=y

CONFIG_IOSCHED_CFQ=y

CONFIG_DEFAULT_AS=y

CONFIG_DEFAULT_IOSCHED="anticipatory"

CONFIG_X86_PC=y

CONFIG_MPENTIUM4=y

CONFIG_X86_CMPXCHG=y

CONFIG_X86_XADD=y

CONFIG_X86_L1_CACHE_SHIFT=7

CONFIG_RWSEM_XCHGADD_ALGORITHM=y

CONFIG_GENERIC_CALIBRATE_DELAY=y

CONFIG_X86_WP_WORKS_OK=y

CONFIG_X86_INVLPG=y

CONFIG_X86_BSWAP=y

CONFIG_X86_POPAD_OK=y

CONFIG_X86_CMPXCHG64=y

CONFIG_X86_GOOD_APIC=y

CONFIG_X86_INTEL_USERCOPY=y

CONFIG_X86_USE_PPRO_CHECKSUM=y

CONFIG_X86_TSC=y

CONFIG_SMP=y

CONFIG_NR_CPUS=8

CONFIG_PREEMPT_NONE=y

CONFIG_PREEMPT_BKL=y

CONFIG_X86_LOCAL_APIC=y

CONFIG_X86_IO_APIC=y

CONFIG_X86_MCE=y

CONFIG_DCDBAS=m

CONFIG_NOHIGHMEM=y

CONFIG_SELECT_MEMORY_MODEL=y

CONFIG_FLATMEM_MANUAL=y

CONFIG_FLATMEM=y

CONFIG_FLAT_NODE_MEM_MAP=y

CONFIG_SPLIT_PTLOCK_CPUS=4

CONFIG_MTRR=y

CONFIG_IRQBALANCE=y

CONFIG_SECCOMP=y

CONFIG_HZ_250=y

CONFIG_HZ=250

CONFIG_PHYSICAL_START=0x100000

CONFIG_PM=y

CONFIG_PM_LEGACY=y

CONFIG_ACPI=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=m

CONFIG_ACPI_IBM=m

CONFIG_ACPI_BLACKLIST_YEAR=0

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_SYSTEM=y

CONFIG_PCI=y

CONFIG_PCI_GOANY=y

CONFIG_PCI_BIOS=y

CONFIG_PCI_DIRECT=y

CONFIG_PCI_MMCONFIG=y

CONFIG_ISA_DMA_API=y

CONFIG_BINFMT_ELF=y

CONFIG_NET=y

CONFIG_PACKET=y

CONFIG_UNIX=y

CONFIG_INET=y

CONFIG_IP_FIB_HASH=y

CONFIG_INET_DIAG=y

CONFIG_INET_TCP_DIAG=y

CONFIG_TCP_CONG_BIC=y

CONFIG_NETFILTER=y

CONFIG_STANDALONE=y

CONFIG_PREVENT_FIRMWARE_BUILD=y

CONFIG_PARPORT=y

CONFIG_PARPORT_PC=y

CONFIG_BLK_DEV_FD=y

CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDECD=y

CONFIG_IDE_GENERIC=y

CONFIG_SCSI=y

CONFIG_SCSI_PROC_FS=y

CONFIG_BLK_DEV_SD=y

CONFIG_CHR_DEV_SG=y

CONFIG_SCSI_CONSTANTS=y

CONFIG_MEGARAID_NEWGEN=y

CONFIG_SCSI_QLA2XXX=y

CONFIG_NETDEVICES=y

CONFIG_DUMMY=m

CONFIG_TUN=m

CONFIG_NET_ETHERNET=y

CONFIG_MII=y

CONFIG_NET_PCI=y

CONFIG_E1000=y

CONFIG_INPUT=y

CONFIG_INPUT_MOUSEDEV=y

CONFIG_INPUT_MOUSEDEV_PSAUX=y

CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024

CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_INPUT_JOYDEV=m

CONFIG_INPUT_EVDEV=m

CONFIG_INPUT_KEYBOARD=y

CONFIG_KEYBOARD_ATKBD=y

CONFIG_INPUT_MOUSE=y

CONFIG_MOUSE_PS2=y

CONFIG_SERIO=y

CONFIG_SERIO_I8042=y

CONFIG_SERIO_SERPORT=y

CONFIG_SERIO_LIBPS2=y

CONFIG_VT=y

CONFIG_VT_CONSOLE=y

CONFIG_HW_CONSOLE=y

CONFIG_SERIAL_8250=y

CONFIG_SERIAL_8250_NR_UARTS=4

CONFIG_SERIAL_CORE=y

CONFIG_UNIX98_PTYS=y

CONFIG_LEGACY_PTYS=y

CONFIG_LEGACY_PTY_COUNT=256

CONFIG_PRINTER=y

CONFIG_AGP=m

CONFIG_AGP_INTEL=m

CONFIG_I2C=y

CONFIG_I2C_ALGOBIT=y

CONFIG_HWMON=y

CONFIG_VIDEO_SELECT=y

CONFIG_VGA_CONSOLE=y

CONFIG_DUMMY_CONSOLE=y

CONFIG_SPEAKUP_DEFAULT="none"

CONFIG_SOUND=m

CONFIG_SND=m

CONFIG_SND_AC97_CODEC=m

CONFIG_SND_AC97_BUS=m

CONFIG_SND_TIMER=m

CONFIG_SND_PCM=m

CONFIG_SND_OSSEMUL=y

CONFIG_SND_MIXER_OSS=m

CONFIG_SND_PCM_OSS=m

CONFIG_SND_INTEL8X0=m

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB=y

CONFIG_USB_DEVICEFS=y

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_OHCI_HCD=y

CONFIG_USB_OHCI_LITTLE_ENDIAN=y

CONFIG_USB_UHCI_HCD=y

CONFIG_USB_STORAGE=y

CONFIG_USB_HID=y

CONFIG_USB_HIDINPUT=y

CONFIG_USB_HIDDEV=y

CONFIG_USB_MON=y

CONFIG_EXT2_FS=y

CONFIG_REISERFS_FS=y

CONFIG_INOTIFY=y

CONFIG_DNOTIFY=y

CONFIG_AUTOFS4_FS=y

CONFIG_ISO9660_FS=y

CONFIG_JOLIET=y

CONFIG_FAT_FS=y

CONFIG_MSDOS_FS=y

CONFIG_VFAT_FS=y

CONFIG_FAT_DEFAULT_CODEPAGE=437

CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

CONFIG_NTFS_FS=m

CONFIG_NTFS_RW=y

CONFIG_PROC_FS=y

CONFIG_PROC_KCORE=y

CONFIG_SYSFS=y

CONFIG_TMPFS=y

CONFIG_RAMFS=y

CONFIG_NFS_FS=y

CONFIG_NFSD=y

CONFIG_NFSD_TCP=y

CONFIG_LOCKD=y

CONFIG_EXPORTFS=y

CONFIG_NFS_COMMON=y

CONFIG_SUNRPC=y

CONFIG_MSDOS_PARTITION=y

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="cp437"

CONFIG_NLS_CODEPAGE_437=y

CONFIG_NLS_ISO8859_1=y

CONFIG_LOG_BUF_SHIFT=15

CONFIG_EARLY_PRINTK=y

CONFIG_X86_FIND_SMP_CONFIG=y

CONFIG_X86_MPPARSE=y

CONFIG_CRC_CCITT=m

CONFIG_CRC32=y

CONFIG_GENERIC_HARDIRQS=y

CONFIG_GENERIC_IRQ_PROBE=y

CONFIG_GENERIC_PENDING_IRQ=y

CONFIG_X86_SMP=y

CONFIG_X86_HT=y

CONFIG_X86_BIOS_REBOOT=y

CONFIG_X86_TRAMPOLINE=y

```

Last edited by kellwood on Wed Apr 05, 2006 8:16 pm; edited 1 time in total

----------

## NeddySeagoon

kellwood,

```
unkown-block(8,34) 
```

Thats /dev/sdc2. As the numbers are both non-zero, your kernel can get to the disk but not understand what it reads.

It looks like your root filesystem is missing from your kernel. Since you don't use an initrd, it must be built in. A module cannot work.

None of your append line is needed for kernels after 2.6.12 because devfsd has been removed, your choices are udev or a static /dev. However its harmless, so doint change it just now.

You didn't say what your root filesystem is, if its not one of 

```
CONFIG_EXT2_FS=y

CONFIG_REISERFS_FS=y
```

you have a problem.

However, udev hasn't got loaded yet, so its not a udev issue.

----------

## kellwood

Thanks for the reply.  My root file system is reiserfs, which is built into the kernel. - Kev

----------

## kellwood

Well, I am trying to figure this one out.  Does /dev exists when I get that type of kernel panic?  Perhaps some udev strangeness caused the scsi drives to be named differently than expected.

----------

## NeddySeagoon

kellwood,

At the stage your error happens, /dev/ exists but is not mounted and cannot be read. With a pure udev system it should only contain /dev/null and /dev/console, other entries are harmless but unnessacary, except for strange hardware that udev does not yet support.

The kernel does not require the /dev/sdc2 entry to mount the root filesystem, that would create a cirular dependancy.

The /dev/sdc2 entry must be there when the rootfscheck script runs or you get a different error.

You have at least 3 SCSI drives, how are they attached ?

USB drives count as SCSI too, USB drives coming and going can change the /dev/sdX letters allocated by udev.

Be sure there are no USB storage devices attached when you run /sbin/lilo and again when you boot. When your system is up, you can write udev rules so USB devices don't get in the way of real hard drives.

If /dev/sdc2 (your root) is on USB, there are other things you need on your append line.

----------

## kellwood

Thanks again.  The are four physical disk with 3+4 set up as hardware raid 0.  This raid disk is /dev/sdc.  Here is the output from fdisk when I am in the devfs kernel:

 *Quote:*   

> 
> 
> boss302 ~ # fdisk -l
> 
> Disk /dev/sda: 36.4 GB, 36420075008 bytes
> ...

 

I have a usb software dongle plugged in.  I will remove it and boot into my udev kernel as a test.

Kev

----------

## kellwood

One more interesting thing - I think.  While trying to boot the udev kernel, I noticed (or didn't notice) that there were no messages about finding the scsi controller that I normally see in the non-udev kernel.  Unfortunately, I can't scroll back to confirm once that kernel panic occurs. The messages go by quickly but I did boot twice to try to watch for it.

Given this, I check the kernel config and the correct controller is built in. I started with a working .config to make the new kernel.

----------

## NeddySeagoon

kellwood,

Boot you non-devfs kernel and post the output of lspci.

It will show what hardware your have.

----------

## kellwood

Ok, I am in my devfs kernel.  Here it is

 *Quote:*   

> 
> 
> boss302 ~ # lspci
> 
> 00:00.0 Host bridge: Intel Corporation E7505 Memory Controller Hub (rev 03)
> ...

 

----------

## NeddySeagoon

kellwood,

Hers your disc controllers from lspci:-

```
00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 01) 

04:0e.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 07) 
```

Your kernel has 

```
CONFIG_SCSI=y

CONFIG_SCSI_PROC_FS=y

CONFIG_BLK_DEV_SD=y

CONFIG_CHR_DEV_SG=y

CONFIG_SCSI_CONSTANTS=y

CONFIG_MEGARAID_NEWGEN=y

CONFIG_SCSI_QLA2XXX=y
```

You need Fusion MPT ScsiHost drivers for SPI, which would shou in your kernel .config post as FUSION_SPI.

A grep shows its not there. Rebuild and reinstall your udev kernel after you have added 

Device Drivers -> Fusion MPT device support -> Fusion MPT ScsiHost drivers for SPI as a built in [*], not [M]

using make menuconfig.

----------

## kellwood

Many many thanks.  That solved the whole issue.  What had happened is that I had copied .config from an earlier kernel version thinking that all would be set.  However, things had changed with respect to how FUSION drivers where handled.

 *Quote:*   

> 
> 
> $ grep FUSION /usr/src/linux-2.6.12-gentoo-r9/.config
> 
> CONFIG_FUSION=y
> ...

 

As you pointed out, CONFIG_FUSION_SPI was not set.

Thanks again

Kevin

----------

## NeddySeagoon

kellwood,

You can copy the .config like that but you must run make oldconfig in the new kernel tree.

It uses the old .config as far as it can (and throws out the rubbish) and asks you to set all the new things.

----------

