Cannot compile i915 kernel driver as a module on CoreOS

Jason Kulatunga jason at thesparktree.com
Mon Dec 10 11:49:47 EST 2018


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:

   - 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 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!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20181210/cc1200a8/attachment.html>


More information about the Kernelnewbies mailing list