Check out my first novel, midnight's simulacra!
Linux Framebuffer
From dankwiki
(Redirected from Linux framebuffer)
It would seem that the Intel framebuffer drivers do not (and will not?) support the i965. But...
[recombinator](0) $ fbset -i mode "1024x768-60" # D: 62.360 MHz, H: 47.530 kHz, V: 60.013 Hz geometry 1024 768 1024 768 16 timings 16036 128 32 16 4 128 4 accel true rgba 5/11,6/5,5/0,0/0 endmode Frame buffer device information: Name : Intel(R) 965G Address : 0xd0000000 Size : 8122368 Type : PACKED PIXELS Visual : TRUECOLOR XPanStep : 8 YPanStep : 1 YWrapStep : 0 LineLength : 2048 MMIO Address: 0xe0300000 MMIO Size : 524288 Accelerator : Intel 830M/845G/85x/865G [recombinator](0) $ uname -a Linux recombinator 2.6.28-rc6 #1 SMP Sat Nov 22 01:55:26 EST 2008 x86_64 GNU/Linux [recombinator](0) $
and, from dmesg:
Linux agpgart interface v0.103 agpgart-intel 0000:00:00.0: Intel 965G Chipset agpgart-intel 0000:00:00.0: detected 7676K stolen memory agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000 intelfb: Framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/945GME/965G/965GM chipsets intelfb: Version 0.9.6 intelfb 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 intelfb: 00:02.0: Intel(R) 965G, aperture size 256MB, stolen memory 7932kB intelfb: Non-CRT device is enabled ( DVO port B ). Disabling mode switching. intelfb: Initial video mode is 1024x768-16@60. intelfb: Changing the video mode is not supported. Console: switching to colour frame buffer device 128x48
GEM
GEM, the Graphics Execution Manager present in recent X.org (requiring 2.6.29 for kernel support), takes over the framebuffer (this is actually an effect of Kernel Mode Switching on Intel graphics hardware):
[recombinator](0) $ fbset -i mode "1600x1200-0" # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz geometry 1600 1200 1600 1200 32 timings -1 0 0 0 0 0 0 rgba 8/16,8/8,8/0,0/0 endmode Frame buffer device information: Name : inteldrmfb Address : 0xd07df000 Size : 7680000 Type : PACKED PIXELS Visual : TRUECOLOR XPanStep : 1 YPanStep : 1 YWrapStep : 0 LineLength : 6400 MMIO Address: 0xe0300000 MMIO Size : 1048576 Accelerator : Intel 830M/845G/85x/865G [recombinator](0) $ uname -a Linux recombinator 2.6.29.1 #1 SMP Fri Apr 3 22:43:27 EDT 2009 x86_64 GNU/Linux [recombinator](0) $
It would seem that DRM must be loaded prior to intelfb (or both built into the kernel rather than as modules). Otherwise, you'll get an intelfb (as opposed to inteldrmfb), and it won't cooperate with X very well at all. From Linux 2.6.31-rc4's ChangeLog:
commit 78af08d90b8f745044b1274430bc4bc6b2b27aca Merge: a1cc1ba ecca068 Author: Linus Torvalds <torvalds@linux-foundation.org> Date: Fri Jul 17 21:19:50 2009 -0700 Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm: Move a dereference below a NULL test fb/intelfb: conflict with DRM_I915 and hide by default drm/ttm: fix misplaced parentheses drm/via: Fix vblank IRQ on VIA hardware. drm: drm_gem, check kzalloc retval drm: drm_debugfs, check kmalloc retval drm/radeon: add some missing pci ids
See also
- Consoles
- Kernel Newbies entry on 2.6.29's Kernel Mode Setting
- KernelTrap article on KMS (planning stage, 2007-05-17)
- Fedora Project wiki entry on KMS