You shouldn't need to patch the kernel. So the Sparkfun board has a USB from the photo. That will probably just give you a virtual COM port if you plug it into a PC. I would expect from that you would/could/should get the skip/play/pause type messages. You can probably test and do that with some fairly simple (AT?) commands.

Now the empeg doesn't have a USB host port but does have a regular serial port. I'm assuming the white square in the middle of the red board is the actual BT module doing all the work. It will likely have a regular serial port on which with some level shifting should talk to the empeg serial port.

Then it's a case of an application or script that sits on the empeg talking to the BT module via the empeg serial port for commands and also talking to the player software (or kernel) to control the empeg player software. Passing the track info back to the car is likely even possible.

Or an Arduino that can do the USB host to the sparkfun board and then convert it to empeg serial commands. Arduino just seems a bit superfluous to me although is likely and easier method to program if low level stuff isn't your thing.
#40104192 120Gb (no longer in my E36 M3, won't fit the E46 M3)