Welcome! Log In Create A New Profile


Cannot compile i915 kernel driver as a module on CoreOS

Posted by Jason Kulatunga 

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:

    [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
    [*] Intel 8xx/9xx/G3x/G4x/HD Graphics

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 [github.com] if that helps)

Thanks for all your help!
Welcome here! You need to read this useful information to solve your question.

Your Email:


Spam prevention:
Please, solve the mathematical question and enter the answer in the input field below. This is for blocking bots that try to post this form automatically.
Question: how much is 20 plus 13?