Sometimes its required to downgrade a package version e.g. you are suspecting that the problem is caused by udev version 171 so you would like to build a root file system incrementally using udev 164
So you do required rituals of selecting 164 version of udev using PREFERRED_VERSION_udev = “164″
and then bitbake <your image>
and expectedly it should build your image again with udev 164 in it but it may not happen and you might end up with errors like
| Configuring udev.
| Configuring task-base-extended.
| Configuring sysvinit-pidof.
| Configuring tinylogin.
| Configuring sysvinit.
| Collected errors:
| * satisfy_dependencies_for: Cannot satisfy the following dependencies for task-base:
| * libudev0 (>= 171) *
| * opkg_install_cmd: Cannot install package task-base.
| ERROR: Function ‘do_rootfs’ failed (see /home/kraj/work/angstrom/build/tmp-angstrom_2010_x-uclibc/work/qemumips-angstrom-linux-uclibc/console-image-1.0-r0/temp/log.do_rootfs.15163 for further information)
NOTE: package console-image-1.0-r0: task do_rootfs: Failed
ERROR: Task 8 (/home/kraj/work/angstrom/sources/meta-angstrom/recipes-angstrom/images/console-image.bb, do_rootfs) failed with exit code ’1′
ERROR: ‘/home/kraj/work/angstrom/sources/meta-angstrom/recipes-angstrom/images/console-image.bb’ failed
You could try to clean task-base or console-image but it wont help. The problem here is that there is a package which has created a dependency on libudev0 >= 171 but now we are sysrooting with 164. Ideally bitbake should have noticed it and rebuilt the concerned recipe but it does not happen.
Time for some sleuthing. You need to figure out with package is wanting libudev0 171+
$ cd build/tmp-angstrom_2010_x-uclibc/deploy/ipk/mips
$ for f in *.ipk; do ar p $f control.tar.gz | tar -zxO ./control|grep “libudev0 (>= 171)” && ls $f; done
Depends: libgcc1 (>= 4.6.0+svnr175150), libx11-6 (>= 1.4.3), libz1 (>= 1.2.5), libxcb1 (>= 1.7), uclibc (>= 0.9.31+0.9.32rc3), libxml2 (>= 2.7.8), libxext6 (>= 1.3.0), gstreamer (>= 0.10.32), libudev0 (>= 171), libxv1 (>= 1.0.6), gst-plugins-base, libiconv (>= 1.13.1), libice6 (>= 1.0.7), libgudev-1.0-0 (>= 171), libglib-2.0-0 (>= 2.28.8), libxau6 (>= 1.0.6), libsm6 (>= 1.2.0), libuuid1 (>= 2.19.1), libxdmcp6 (>= 1.1.0)
gst-plugins-base-video4linux_0.10.32-r0_mips.ipk
So you know now the ipk which is depending on udev 171 and is being pulled into the image
so now you can go and manually clean the recipe which is providing gst-plugins-base-video4linux_0.10.32-r0_mips.ipk and bitbake <your image> again
Now it should it get it right 