When I ported the hdmi_audio dkms package from ubuntu to debian (since ubuntu package hard-coded kernel version checking) and install, it shows many compilation errors.
Did I missed some library include path / compile parameters for building the dkms module? Alan Source code: http://intel.archive.canonical.com/pool/public/o/oem-audio-i915-baytrail-dkms/ DKMS package installation messages: # dpkg -i oem-audio-i915-baytrail-dkms_0.20150605_all.deb (Reading database ... 148856 files and directories currently installed.) Preparing to unpack oem-audio-i915-baytrail-dkms_0.20150605_all.deb ... ------------------------------ Deleting module version: 0.20150605 completely from the DKMS tree. ------------------------------ Done. Unpacking oem-audio-i915-baytrail-dkms (0.20150605) over (0.20150605) ... Setting up oem-audio-i915-baytrail-dkms (0.20150605) ... Loading new oem-audio-i915-baytrail-0.20150605 DKMS files... First Installation: checking all kernels... Building for 3.18.21 Building for architecture amd64 Building initial module for 3.18.21 Error! Bad return status for module build on kernel: 3.18.21 (amd64) Consult /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/make.log for more information. dpkg: error processing package oem-audio-i915-baytrail-dkms (--install): subprocess installed post-installation script returned error exit status 1 Processing triggers for initramfs-tools (0.120) ... Errors were encountered while processing: oem-audio-i915-baytrail-dkms # cat /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/make.log DKMS make.log for oem-audio-i915-baytrail-0.20150605 for kernel 3.18.21 (amd64) Sun Sep 27 16:29:28 HKT 2015 make -C /lib/modules/3.18.21/build M=/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build modules make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[1]: Entering directory '/usr/local/src/kernel/linux-3.18.21' CC [M] /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.o In file included from include/linux/printk.h:261:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/kobject.h:20, from include/linux/device.h:17, from include/linux/platform_device.h:14, from /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:29: /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c: In function ‘snd_intelhad_pcm_prepare’: include/linux/dynamic_debug.h:64:16: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘ssize_t’ [-Wformat=] static struct _ddebug __aligned(8) \ ^ include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’ DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ ^ include/linux/printk.h:267:2: note: in expansion of macro ‘dynamic_pr_debug’ dynamic_pr_debug(fmt, ##__VA_ARGS__) ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:1478:2: note: in expansion of macro ‘pr_debug’ pr_debug("period_size=%d\n", ^ include/linux/dynamic_debug.h:64:16: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ [-Wformat=] static struct _ddebug __aligned(8) \ ^ include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’ DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ ^ include/linux/printk.h:267:2: note: in expansion of macro ‘dynamic_pr_debug’ dynamic_pr_debug(fmt, ##__VA_ARGS__) ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:1481:2: note: in expansion of macro ‘pr_debug’ pr_debug("buffer_size=%d\n", snd_pcm_lib_buffer_bytes(substream)); ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c: In function ‘snd_intelhad_pcm_pointer’: /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:1546:6: warning: unused variable ‘l’ [-Wunused-variable] u32 l[4]; ^ In file included from include/linux/printk.h:261:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/kobject.h:20, from include/linux/device.h:17, from include/linux/platform_device.h:14, from /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:29: /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c: In function ‘hdmi_audio_probe’: include/linux/dynamic_debug.h:64:16: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘u64 *’ [-Wformat=] static struct _ddebug __aligned(8) \ ^ include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’ DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ ^ include/linux/printk.h:267:2: note: in expansion of macro ‘dynamic_pr_debug’ dynamic_pr_debug(fmt, ##__VA_ARGS__) ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:1790:2: note: in expansion of macro ‘pr_debug’ pr_debug("hdmi_audio_probe dma_mask: %d\n", devptr->dev.dma_mask); ^ include/linux/dynamic_debug.h:64:16: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘u64 *’ [-Wformat=] static struct _ddebug __aligned(8) \ ^ include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’ DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ ^ include/linux/printk.h:267:2: note: in expansion of macro ‘dynamic_pr_debug’ dynamic_pr_debug(fmt, ##__VA_ARGS__) ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:1864:3: note: in expansion of macro ‘pr_debug’ pr_debug("hdmi_audio_probe dma_mask is : %d\n", card->dev->dma_mask); ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c: At top level: /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio.c:1750:23: warning: ‘had_ops_v1’ defined but not used [-Wunused-variable] static struct had_ops had_ops_v1 = { ^ CC [M] /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/intel_mid_hdmi_audio_if.o LD [M] /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/hdmi_audio/hdmi_audio.o CC [M] /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.o In file included from /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.c:33:0: /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.h:277:2: error: unknown type name ‘drm_local_map_t’ drm_local_map_t *sarea; ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.h:1382:2: error: unknown type name ‘drm_dma_handle_t’ drm_dma_handle_t *status_page_dmah; ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.h:1621:24: error: field ‘base’ has incomplete type struct drm_gem_object base; ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.h:1730:2: error: unknown type name ‘drm_dma_handle_t’ drm_dma_handle_t *phys_handle; ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.c:1486:10: error: ‘drm_gem_vm_open’ undeclared here (not in a function) .open = drm_gem_vm_open, ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.c:1487:11: error: ‘drm_gem_vm_close’ undeclared here (not in a function) .close = drm_gem_vm_close, ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.c:1495:10: error: ‘drm_gem_mmap’ undeclared here (not in a function) .mmap = drm_gem_mmap, ^ /var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.c:1540:18: error: ‘drm_gem_dumb_destroy’ undeclared here (not in a function) .dumb_destroy = drm_gem_dumb_destroy, ^ scripts/Makefile.build:257: recipe for target '/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.o' failed make[3]: *** [/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915/i915_drv.o] Error 1 scripts/Makefile.build:402: recipe for target '/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915' failed make[2]: *** [/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build/i915] Error 2 Makefile:1381: recipe for target '_module_/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build' failed make[1]: *** [_module_/var/lib/dkms/oem-audio-i915-baytrail/0.20150605/build] Error 2 make[1]: Leaving directory '/usr/local/src/kernel/linux-3.18.21' Makefile:10: recipe for target 'all' failed make: *** [all] Error 2