cdemu 0.8 was released for a 2.6.16 kernel. In the 2.6.17 kernel, the function generic_file_read() was replaced with the do_sync_read() function. Here are two approaches to solve this:

More on cdemu:

Remember: You can check your kernel as follows:

# uname -a
Linux dappy 2.6.20-gentoo-r1 #1 PREEMPT Thu Mar 8 18:41:41 GMT 2007 i686 AMD Athlon(tm) XP 1700+ AuthenticAMD GNU/Linux

The Source tar-ball way

The Gentoo ebuild way

(only works if you are runnign Gentoo, Sabayon or other derivative)

The 'proper' way to patch a Gentoo ebuild:

# ebuild /usr/local/portage/app-cdr/cdemu/cdemu-0.8.ebuild digest
# echo "app-cdr/cdemu"  >> /etc/portage/package.keywords
# emerge cdemu

The quick-and-dirty way to fix a Gentoo ebuild (package) is:

# emerge --digest cdemu
# emerge cdemu