-   Fedora (
-   -   custom kernel not booting (

bocochoco 12-21-2012 10:48 AM

custom kernel not booting
I've got a dell xps 13z laptop with a new fedora 17 install. The cypress trackpad doesn't have a driver, so tapping and gestures dont work and I can't control the backlight. So, I downloaded the 3.7.0 kernel sauce from the gnu site and applied patches from an arch linux package which has proper drivers and modifications to make it work. Recompiled the kernel just fine and installed it. I haven't done a kernel compile with patches like this before, and I think I forgot a step.

After copying the vmlinuz file to /boot and running dracut on it, then grub2-mkconfig -o /boot/grub2/grub.cfg, it made me an initramfs image and updated the config grub config.

I rebooted and tried to load the new kernel (3.7.0-ARCH, apparently). It doesn't work.

I get an error:


dracut Warning: Unable to process initqueue

dracut Warning: Unable to process initqueue
dracut Warning: /dev/disk/by-uuid/c94ab3c5-c58a-4bb8-b9d0-aac835c00402 does not exist

Dropping to debug shell.

I tried changing the commandline to the kernel supplying root=LABEL=root instead of the uuid, and it tells me that it doesn't exist. Same thing happens when I change it to root=/dev/sda2. e2label shows that /dev/sda2 is labelled as root.

Just noticed that while in the dracut debug shell, /dev/sda doesn't exist, neither does /dev/by-label or /dev/by-uuid.

Any ideas what I missed?

yancek 12-21-2012 11:20 AM

Does the uuid the error message shows as 'does not exit' actually exist? Run blkid or ls /dev/disk/by-uuid.
What does fdisk show? Does sda exist?

bocochoco 12-21-2012 11:32 AM

Yup, the device exists.

# blkid /dev/sda2
/dev/sda2: LABEL="root" UUID="c94ab3c5-c58a-4bb8-b9d0-aac835c00402" TYPE="ext4"

fdisk shows that /dev/sda has partitions. This information gathered from a different (working) kernel.

It looks like a symlink to udevd in the initramfs isn't pointing to the right location. I can't seem to edit the image though. It's not gzip'd and it wont let me mount it. tells me invalid fs type.


[root@umbreon boot]# lsinitrd initramfs-3.7.0-ARCH.img | grep udevd
lrwxrwxrwx  1 root    root          17 Dec 21 11:31 usr/sbin/udevd -> ../lib/udev/udevd
-rwxr-xr-x  1 root    root      165976 May 31  2012 usr/lib/udev/udevd
[root@umbreon boot]# lsinitrd initramfs-3.6.10-2.fc17.x86_64.img | grep udevd
lrwxrwxrwx  1 root    root          19 Dec 20 14:11 usr/sbin/udevd -> /usr/lib/udev/udevd
-rwxr-xr-x  1 root    root      165976 May 31  2012 usr/lib/udev/udevd

edit: Modified the initramfs image, changing that link. Same results. :(

edit 2: I went back and looked at my .config file and I noticed that I didn't compile in ext2 or ext3 support and ext4 was enabled as a module. I'm recompiling with them built in rather than a module. Hopefully this fixes it. :/

bocochoco 12-21-2012 01:51 PM

Dell XPS 13z
Rebuilding the kernel with the correct config worked perfectly.

I had a hard time getting the patches for the kernel in the first place. Took a bit of searching, so I hope this might help someone else. Here's how I got all the hardware to work. This is for a Dell Studio XPS 13z.

Download this stuff: (these are kernel patches that the dell hws team applied to a kernel for ubuntu). Download the tarball This is kernel 3.7.

extract your tarballs to somewhere (In my case, /home/quyzi/Downloads)
cd into the directory of the linux kernel code

cd /home/quyzi/Downloads/linux-3.7/
export srcdir = /home/quyzi/Downloads/linux-mainline-dell
  patch -p1 -i "${srcdir}/fuse-ntfs-fix.patch"
  patch -p1 -i "${srcdir}/cypress49ca49a.patch"
  patch -p1 -i "${srcdir}/cypressc70c867.patch"
  patch -p1 -i "${srcdir}/cypress271d736.patch"
  patch -p1 -i "${srcdir}/cypressd29a837.patch"
  patch -p1 -i "${srcdir}/cypressce1b702.patch"
  patch -p1 -i "${srcdir}/cypress2abd2a6.patch"
  patch -p1 -i "${srcdir}/cypress25a9bac.patch"
  patch -p1 -i "${srcdir}/cypressecbe652.patch"
  patch -p1 -i "${srcdir}/cypress1c6c152.patch"
  patch -p1 -i "${srcdir}/cypress756f8ce.patch"
  patch -p1 -i "${srcdir}/cypressdfeb9e1.patch"
  patch -p1 -i "${srcdir}/cypressfba5b9a.patch"
  patch -p1 -i "${srcdir}/cypress-3.7-mt-init.patch"
  patch -p1 -i "${srcdir}/revert-pch-backlight-registers.patch"
  patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"

Now you need to configure the kernel properly and compile. Then install

make menuconfig
make modules_install
cp arch/x86_64/bzImage /boot/vmlinuz-3.7.0-custom
chmod ugo+x /boot/vmlinuz-3.7.0-custom

I needed an initramfs image, so I had dracut build one. Then make a new grub config to boot using the new kernel.

dracut /boot/initramfs-3.7.0-custom.img 3.7.0-custom
grub2-mkconfig -o /boot/grub2/grub.cfg

All times are GMT -5. The time now is 07:01 AM.