You are not logged in.
Pages: 1
Hello,
I've just upgraded the kernel from 3.4.9 to 3.5.3. There was a problem when creating the initramfs though:
# mkinitcpio -p linux
==> Building image from preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.5.3-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [pata]
-> Running build hook: [scsi]
-> Running build hook: [sata]
-> Running build hook: [encrypt]
==> ERROR: binary dependency `libudev.so.1' not found for `cryptsetup'
==> ERROR: binary dependency `libudev.so.1' not found for `dmsetup'
==> ERROR: binary dependency `libudev.so.1' not found for `dmsetup'
-> Running build hook: [lvm2]
==> ERROR: binary dependency `libudev.so.1' not found for `/sbin/lvm'
==> ERROR: binary dependency `libudev.so.1' not found for `/sbin/lvm'
==> ERROR: binary dependency `libudev.so.1' not found for `/sbin/dmsetup'
==> ERROR: binary dependency `libudev.so.1' not found for `/sbin/dmsetup'
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [usbinput]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux.img
==> WARNING: errors were encountered during the build. The image may not be complete.When I then tried to boot the kernel, there was an error saying 'libudev1.so.1' is missing. I've managed to chroot into the installation and I found 'libudev.so.1' existed but 'libudev1.so.1' didn't. So I copied '/usr/lib/libudev.so.1' as '/usr/lib/libudev1.so.1' and rebuilt the kernel.
Now /usr/lib/ looks like this:
# ls -l |grep libudev
-rw-r--r-- 1 root root 683744 30. srp 22.52 libudev.a
lrwxrwxrwx 1 root root 16 30. srp 22.52 libudev.so -> libudev.so.1.1.0
lrwxrwxrwx 1 root root 16 7. zář 13.09 libudev.so.1 -> libudev.so.1.1.0
-rwxr-xr-x 1 root root 67584 30. srp 22.52 libudev.so.1.1.0
-rwxr-xr-x 1 root root 67584 7. zář 13.19 libudev1.so.1Now it works OK, but I have a few questions: Why does it need 'libudev1.so.1' when mkinitcpio says it needs 'libudev.so.1'? Is copying the file the correct solution to the problem? How come 'libudev1.so.1' was missing in my installation? Is this a bug? etc.
I'll be happy for any answer I can get.
Thanks a lot, Mike.
Last edited by mike54 (2012-09-07 14:17:32)
Offline
Presumably, this was also the upgrade where systemd replaced libsystemd and systemd-tools. Because of the way that pacman handles replacements of packages, there was a brief period of time where libudev.so.1 really didn't exist, so mkinitcpio is right to throw those errors.
No, you shouldn't be copying over anything (you weren't actually missing anything after the upgrade finished). The correct thing to do here would have just been to rerun 'mkinitcpio -p linux' after pacman exited.
I've no idea where you got 'libudev1.so.1' from. I'm quite sure that the errors you saw on bootup were for a missing libudev.so.1.
Offline
Gosh, you're right. I was quite confident I saw libudev1.so.1, I even wrote it down. Incorrectly, I guess. I deleted the libudev1.so.1 and initramfs creation ended OK. Thanks a lot. M.
Edit: Just out of curiosity: How exactly does pacman handle replacements of packages? Can't find it on the wiki...
Edit2: That was a stupid question. (I went through the logs and it's clear to me now)
Last edited by mike54 (2012-09-07 14:40:15)
Offline
Pages: 1