It may be worth trying a "huge" kernel config rather than generic. That would remove the requirement to have an initrd and would build in support for most hardware directly into the kernel rather than requiring modules. Again, you could be running into issues with generating a proper initrd if the current system isn't working properly. Once you get everything working with the huge kernel, you could look into moving to a more generic kernel with mostly modules and requiring an initrd.
If you use
this config, it should be based on the 3.15.5 kernel that is included in the /testing directory of 64bit version of -current.
In checking online, it seems the z97 motherboards have been working fine on Ubuntu 14.04, which is based on the 3.13.11 kernel, so any kernels newer than that should carry support for your motherboard including the 3.15.5 that is linked above.