[PATCH] drm2 and i915kms compiled into kernel
Konstantin Belousov
kostikbel at gmail.com
Tue Dec 23 10:23:52 UTC 2014
On Mon, Dec 22, 2014 at 07:47:06PM +0100, Andre Albsmeier wrote:
> As someone who prefers to have (for me) mandatory stuff compiled
> into the kernel, here is what I had to do w.r.t. drm2 and i915kms
> in case someone likes to do the same (tested on 9.3-STABLE):
>
The patch below is not correct for HEAD or stable/10, because it does
not take TTM/radeon into the consideration.
I did not added the option to compile i915kms into static kernel, because
display console is non-functional in such setup. It is changed in
HEAD and 10 with vt(4) integration, but definitely cannot be made
working on 9.
> --- sys/conf/files.ORI 2014-10-31 19:21:35.000000000 +0100
> +++ sys/conf/files 2014-12-18 13:57:01.000000000 +0100
> @@ -1127,6 +1127,70 @@
> compile-with "${NORMAL_C} -I$S/dev/e1000"
> dev/e1000/e1000_osdep.c optional em | igb \
> compile-with "${NORMAL_C} -I$S/dev/e1000"
> +dev/drm2/drm_drv.c optional drm2
> +dev/drm2/drm_crtc.c optional drm2
> +dev/drm2/drm_ioc32.c optional drm2
> +dev/drm2/drm_modes.c optional drm2
> +dev/drm2/drm_gem_names.c optional drm2
> +dev/drm2/drm_agpsupport.c optional drm2
> +dev/drm2/drm_stub.c optional drm2
> +dev/drm2/drm_context.c optional drm2
> +dev/drm2/drm_dma.c optional drm2
> +dev/drm2/drm_irq.c optional drm2
> +dev/drm2/drm_vm.c optional drm2
> +dev/drm2/drm_drawable.c optional drm2
> +dev/drm2/drm_linux_list_sort.c optional drm2
> +dev/drm2/drm_fops.c optional drm2
> +dev/drm2/drm_gem.c optional drm2
> +dev/drm2/drm_bufs.c optional drm2
> +dev/drm2/drm_ioctl.c optional drm2
> +dev/drm2/drm_sysctl.c optional drm2
> +dev/drm2/drm_sman.c optional drm2
> +dev/drm2/drm_hashtab.c optional drm2
> +dev/drm2/drm_mm.c optional drm2
> +dev/drm2/drm_memory.c optional drm2
> +dev/drm2/drm_global.c optional drm2
> +dev/drm2/drm_scatter.c optional drm2
> +dev/drm2/drm_pci.c optional drm2
> +dev/drm2/drm_auth.c optional drm2
> +dev/drm2/drm_lock.c optional drm2
> +dev/drm2/ttm/ttm_tt.c optional drm2
> +dev/drm2/ttm/ttm_bo.c optional drm2
> +dev/drm2/ttm/ttm_bo_vm.c optional drm2
> +dev/drm2/ttm/ttm_bo_util.c optional drm2
> +dev/drm2/ttm/ttm_memory.c optional drm2
> +dev/drm2/ttm/ttm_page_alloc.c optional drm2
> +dev/drm2/drm_crtc_helper.c optional drm2
> +dev/drm2/drm_edid.c optional drm2
> +dev/drm2/drm_fb_helper.c optional drm2
> +dev/drm2/drm_dp_iic_helper.c optional drm2
> +dev/drm2/i915/i915_drv.c optional i915kms drm2
> +dev/drm2/i915/i915_dma.c optional i915kms drm2
> +dev/drm2/i915/i915_gem.c optional i915kms drm2
> +dev/drm2/i915/i915_gem_gtt.c optional i915kms drm2
> +dev/drm2/i915/i915_gem_evict.c optional i915kms drm2
> +dev/drm2/i915/i915_gem_tiling.c optional i915kms drm2
> +dev/drm2/i915/i915_suspend.c optional i915kms drm2
> +dev/drm2/i915/i915_irq.c optional i915kms drm2
> +dev/drm2/i915/i915_gem_execbuffer.c optional i915kms drm2
> +dev/drm2/i915/i915_debug.c optional i915kms drm2
> +dev/drm2/i915/intel_ringbuffer.c optional i915kms drm2
> +dev/drm2/i915/intel_overlay.c optional i915kms drm2
> +dev/drm2/i915/intel_display.c optional i915kms drm2
> +dev/drm2/i915/intel_dp.c optional i915kms drm2
> +dev/drm2/i915/intel_sdvo.c optional i915kms drm2
> +dev/drm2/i915/intel_panel.c optional i915kms drm2
> +dev/drm2/i915/intel_opregion.c optional i915kms drm2
> +dev/drm2/i915/intel_modes.c optional i915kms drm2
> +dev/drm2/i915/intel_fb.c optional i915kms drm2
> +dev/drm2/i915/intel_hdmi.c optional i915kms drm2
> +dev/drm2/i915/intel_sdvo.c optional i915kms drm2
> +dev/drm2/i915/intel_sprite.c optional i915kms drm2
> +dev/drm2/i915/intel_iic.c optional i915kms drm2
> +dev/drm2/i915/intel_bios.c optional i915kms drm2
> +dev/drm2/i915/intel_crt.c optional i915kms drm2
> +dev/drm2/i915/intel_lvds.c optional i915kms drm2
> +dev/drm2/i915/intel_tv.c optional i915kms drm2
> dev/et/if_et.c optional et
> dev/en/if_en_pci.c optional en pci
> dev/en/midway.c optional en
>
> Now one can specify drm2 and i915kms in the kernel config and
> the resulting kernel works perfectly.
>
> For reasons unknown to me, files/patch-i915kms of xf86-video-intel
> makes the driver load the i915kms module unconditionally. This
> results in complaints about existing module (but works otherwise)
> and can be prevented by this patch:
>
> --- src/intel_device.c.orig 2014-12-18 15:58:17.000000000 +0100
> +++ src/intel_device.c 2014-12-18 16:12:15.000000000 +0100
> @@ -135,6 +135,7 @@
>
> ret = drmCheckModesettingSupported(id);
> if (ret || 1) {
> + if( kld_isloaded( "vgapci/i915kms") == 0 )
> if (xf86LoadKernelModule("i915kms"))
> ret = drmCheckModesettingSupported(id);
> if (ret)
>
>
> For this to work, we have to link xf86-video-intel against libutil.
> I use:
>
> --- Makefile.ORI 2014-12-22 19:40:20.000000000 +0100
> +++ Makefile 2014-12-22 19:40:45.000000000 +0100
> @@ -28,6 +28,7 @@
> CONFIGURE_ENV+= xorg_cv_cc_flag__Wno_maybe_uninitialized=no
> CONFIGURE_ARGS+= --enable-sna
> CONFIGURE_ARGS+= --disable-glamor
> +CONFIGURE_ARGS+= LDFLAGS=-lutil
> INSTALL_TARGET= install-strip
>
> .include <bsd.port.mk>
>
>
> Maybe someone even wants to commit this stuff (which doesn't hurt
> when using drm2 and i915kms as module).
>
> -Andre
>
> _______________________________________________
> freebsd-x11 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe at freebsd.org"
More information about the freebsd-x11
mailing list