Hey,

I'm working on a project to enable the i915 kernel driver in CoreOS so that I can do Hardware Transcoding inside containers.
I want to package this kernel driver as a module, rather than rebuilding the whole kernel because CoreOS does automatic kernel updates, which would eventually override my changes.

I've been able to determine the kernel config options necessary to enable the i915 driver, specifically I needed to enable:
However after configuring both as modules, and compiling I get the following "Unknown Symbol" errors when I attempt to modprobe the .ko modules

[ 4411.274987] drm: Unknown symbol hdmi_vendor_infoframe_init (err 0)
[ 4411.275703] drm: Unknown symbol dma_fence_add_callback (err 0)
[ 4411.276399] drm: Unknown symbol dma_buf_attach (err 0)
[ 4411.277241] drm: Unknown symbol dma_fence_default_wait (err 0)
[ 4411.277955] drm: Unknown symbol dma_buf_export (err 0)
[ 4411.278617] drm: Unknown symbol dma_buf_map_attachment (err 0)
[ 4411.279285] drm: Unknown symbol dma_fence_remove_callback (err 0)
[ 4411.280108] drm: Unknown symbol dma_buf_unmap_attachment (err 0)
[ 4411.280813] drm: Unknown symbol dma_fence_context_alloc (err 0)
[ 4411.281467] drm: Unknown symbol dma_fence_signal (err 0)
[ 4411.282152] drm: Unknown symbol dma_buf_get (err 0)
[ 4411.282811] drm: Unknown symbol dma_buf_put (err 0)
[ 4411.283376] drm: Unknown symbol dma_buf_fd (err 0)
[ 4411.284019] drm: Unknown symbol dma_fence_init (err 0)
[ 4411.284745] drm: Unknown symbol hdmi_avi_infoframe_init (err 0)
[ 4411.285634] drm: Unknown symbol dma_fence_enable_sw_signaling (err 0)
[ 4411.286390] drm: Unknown symbol dma_buf_detach (err 0)
[ 4411.287144] drm: Unknown symbol dma_fence_release (err 0)
[ 4411.287922] drm: Unknown symbol sync_file_get_fence (err 0)
[ 4411.288665] drm: Unknown symbol sync_file_create (err 0)

From what I've been able to figure out, neither the required HDMI (CONFIG_HDMI) or DMA kernel options can be built as modules.

eg. when I look at the drivers/video Module.symvers file I dont see hdmi_vendor_infoframe_init even though the drivers/video/hdmi.c file exports it.
hdmi.c is behind a boolean (not tristate) config option CONFIG_HDMI.a

Am I SOL? Should I go back to trying to build the whole CoreOS kernel with built-ins rather than as kernel modules?

I'm still really new to all this kernel stuff, I'm hoping theres something simple I'm missing

FYI, the kernel version I'm building is 4.14.81 (specifically 4.14.81-coreos from https://github.com/coreos/linux/tree/v4.14.81-coreos if that helps). This issue does not seem to be CoreOS specific, other than the fact that their base kernel does not include the HDMI or DMA options enabled.  

Thanks for all your help!