Hi Gokhan,
I don't have a clear answer to your question, but some small tricks that can help.
The recipe you wrote is correct as far as i can tell, looking on the Yocto Project Mega-Manual .
My guess is there might be something wrong with that "D" variable expansion.
How to check this?
The bitbake -e <recipe_name> | egrep "^D=" comes in very handy. In fact this is the way to check if any variable is set as expected (e.g.: bindir).
If there is something wrong, try replacing "D" with some hard-coded path. Watch out for the "/" in te paths you create. These can be very tricky.
As for where all apps go and where rootfs is being assembled, this is found by checking "IMAGE_ROOTFS" variable. Check if there is /usr/bin there and if yes, replace "D" with "IMAGE_ROOTFS". Sure this is hacking, but might get you close to a result.
Happy bitbaking :smileyhappy:,
Costin