# WTF is Framebuffer console the default in 2.6.30?

## diskmuncher

I've been struggling with this for days now, trying to get a 2.6.30 (gentoo-sources ~amd64) kernel to compile without framebuffer.  I have:

run make menuconfig, which refuses to allow me to deselect CONFIG_FB even though no drivers are configured (and FRAMEBUFFER_CONSOLE is off, and splash images are off in grub)

I have manually edited .config to set CONFIG_FB, CONFIG_FRAMEBUFFER_CONSOLE, CONFIG_FB_FILLRECT, CONFIG_FB_COPYAREA, CONFIG_FB_IMAGEBLIT all to no.

As soon as I run a make (or make oldconfig) the .config is rewritten with these options set back to Y

I made sure these options were set to N in arch/x86/configs/*defconfig

I'm not a n00b at manually building/installing kernels, but this issue has me stumped.  I did not have any problem compiling without FB support under 2.6.27-gentoo-r8

Here's the diff between my .config and the one after a make (and below that, the output of emerge --info)[/code].  If I need to post the whole config, I will.

bullitt linux # diff ../.config.jdc .config

4c4

< # Tue Jul  7 14:52:09 2009

---

> # Tue Jul  7 17:53:37 2009

1684c1684

< CONFIG_FB=n

---

> CONFIG_FB=y

1688,1690c1688,1690

< CONFIG_FB_CFB_FILLRECT=n

< CONFIG_FB_CFB_COPYAREA=n

< CONFIG_FB_CFB_IMAGEBLIT=n

---

> CONFIG_FB_CFB_FILLRECT=y

> CONFIG_FB_CFB_COPYAREA=y

> CONFIG_FB_CFB_IMAGEBLIT=y

1769c1769

< CONFIG_FRAMEBUFFER_CONSOLE=n

---

> CONFIG_FRAMEBUFFER_CONSOLE=y

unix: emerge --info

Portage 2.2_rc33 (default/linux/amd64/2008.0/desktop, gcc-4.3.3, glibc-2.10.1-r0, 2.6.27-gentoo-r8 x86_64)

=================================================================

System uname: Linux-2.6.27-gentoo-r8-x86_64-Intel-R-_Core-TM-2_Duo_CPU_P8400_@_2.26GHz-with-gentoo-2.0.1

Timestamp of tree: Mon, 06 Jul 2009 15:30:01 +0000

app-shells/bash:     4.0_p24

dev-java/java-config: 2.1.8-r1

dev-lang/python:     2.6.2-r1

dev-util/cmake:      2.6.4

sys-apps/baselayout: 2.0.1

sys-apps/openrc:     0.4.3-r3

sys-apps/sandbox:    2.0

sys-devel/autoconf:  2.13, 2.63-r1

sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11

sys-devel/binutils:  2.19.1-r1

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6a

virtual/os-headers:  2.6.30

ACCEPT_KEYWORDS="amd64 ~amd64"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"

CXXFLAGS="-O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LDFLAGS="-Wl,-O1"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage/layman/maekke /usr/local/portage/layman/thousand-parsec /usr/local/portage/layman/xen /usr/local/portage/layman/jyujin /usr/local/portage/layman/kde-testing /usr/local/portage/layman/lordvan /usr/local/portage/layman/rox /usr/local/portage/layman/rion /usr/local/portage/layman/gnash-cvs /usr/local/portage/layman/php-4 /usr/local/portage/layman/rostov /usr/local/portage/layman/roslin /usr/local/portage/layman/kde3 /usr/local/portage/layman/otih /usr/local/portage/layman/postgresql-testing /usr/local/portage/layman/xfce-dev /usr/local/portage/layman/sugar /usr/local/portage/layman/pd-overlay /usr/local/portage/layman/openoffice-geki /usr/local/portage/layman/desktop-effects /usr/local/portage/layman/ruby /usr/local/portage/layman/wrobel /usr/local/portage/layman/enlightenment /usr/local/portage/layman/drizzt-overlay /usr/local/portage/layman/n8x0 /usr/local/portage/layman/loki_val /usr/local/portage/layman/nouveau /usr/local/portage/layman/mpd /usr/local/portage/layman/gentoo-quebec /usr/local/portage/layman/perl-experimental /usr/local/portage/layman/zugaina /usr/local/portage/layman/dberkholz /usr/local/portage/layman/wschlich-testing /usr/local/portage/layman/mamona /usr/local/portage/layman/tante /usr/local/portage/layman/voip /usr/local/portage/layman/d /usr/local/portage/layman/finnish /usr/local/portage/layman/lxde /usr/local/portage/layman/lisp /usr/local/portage/layman/sping /usr/local/portage/layman/ibormuth /usr/local/portage/layman/chtekk-syscp /usr/local/portage/layman/secondlife /usr/local/portage/layman/xwing /usr/local/portage/layman/crg /usr/local/portage/layman/soor-overlay /usr/local/portage/layman/alexxy /usr/local/portage/layman/dotnet /usr/local/portage/layman/x11 /usr/local/portage/layman/jokey /usr/local/portage/layman/falco /usr/local/portage/layman/tcl-multislot /usr/local/portage/layman/java-overlay /usr/local/portage/layman/dirtyepic /usr/local/portage/layman/kde /usr/local/portage/layman/betelgeuse /usr/local/portage/layman/python-testing /usr/local/portage/layman/hanno-xgl /usr/local/portage/layman/sipx /usr/local/portage/layman/vmware /usr/local/portage/layman/halcy0n /usr/local/portage/layman/je_fro /usr/local/portage/layman/cell /usr/local/portage/layman/pchrist /usr/local/portage/layman/trauma /usr/local/portage/layman/kolab /usr/local/portage/layman/verlihub /usr/local/portage/layman/gentoo-bsd /usr/local/portage/layman/vdr-devel /usr/local/portage/layman/nirbheek /usr/local/portage/layman/multilib /usr/local/portage/layman/powerpc /usr/local/portage/layman/graaff /usr/local/portage/layman/gentoo-taiwan /usr/local/portage/layman/hwoarang /usr/local/portage/layman/wolf31o2 /usr/local/portage/layman/java-gcj-overlay /usr/local/portage/layman/steev /usr/local/portage/layman/pcsx2 /usr/local/portage/layman/vdr-xine /usr/local/portage/layman/toolchain /usr/local/portage/layman/gnome /usr/local/portage/layman/dottout /usr/local/portage/layman/tcl-8.6 /usr/local/portage/layman/gentoo-china /usr/local/portage/layman/chtekk-apps /usr/local/portage/layman/matsuu /usr/local/portage/layman/jmbsvicetto /usr/local/portage/layman/games /usr/local/portage/layman/pioto-overlay /usr/local/portage/layman/ikelos /usr/local/portage/layman/pda /usr/local/portage/layman/berkano /usr/local/portage/layman/dagger /usr/local/portage/layman/marineam-xen /usr/local/portage/layman/hollow /usr/local/portage/layman/flameeyes-overlay /usr/local/portage/layman/openrc /usr/local/portage/layman/s3d /usr/local/portage/layman/n4g-experimental /usr/local/portage/layman/ltsp /usr/local/portage/layman/n4g /usr/local/portage/layman/dertobi123 /usr/local/portage/layman/python-experimental /usr/local/portage/layman/openmoko /usr/local/portage/layman/gpe /usr/local/portage/layman/tove /usr/local/portage/layman/emacs /usr/local/portage/layman/arcon /usr/local/portage/layman/voyageur /usr/local/portage/layman/php-experimental /usr/local/portage/layman/dev-zero /usr/local/portage/layman/deathwing00 /usr/local/portage/layman/hawking /usr/local/portage/layman/vps /usr/local/portage/layman/mozilla /usr/local/portage/layman/gcc-porting /usr/local/portage/layman/efika /usr/local/portage/layman/devnull /usr/local/portage/layman/trapni /usr/local/portage/layman/interactive-fiction /usr/local/portage/layman/webapps-experimental /usr/local/portage/layman/raw /usr/local/portage/layman/science /usr/local/portage/layman/rbu /usr/local/portage/layman/pro-audio /usr/local/portage/layman/seemant /usr/local/portage/layman/remi /usr/local/portage/layman/vdr-experimental /usr/local/portage/layman/pythonhead /usr/local/portage/layman/genstef /usr/local/portage/layman/kerberos /usr/local/portage/layman/wschlich /usr/local/portage/layman/ub0rlay /usr/local/portage/layman/oss-overlay /usr/local/portage/layman/plan9 /usr/local/portage/layman/freevo /usr/local/portage/layman/php-testing /usr/local/portage/layman/m68k /usr/local/portage/layman/iwlwifi /usr/local/portage/layman/postgresql-experimental /usr/local/portage/layman/vdr-testing /usr/local/portage/layman/bangert /usr/local/portage/layman/suka /usr/local/portage/layman/luke-jr /usr/local/portage/layman/nx /usr/local/portage/layman/qting-edge /usr/local/portage/layman/sunrise /usr/local/portage/layman/xemacs /usr/local/portage/layman/philantrop /usr/local/portage/layman/sabayon /usr/local/portage/layman/leio /usr/local/portage/layman/aross /usr/local/portage/layman/lu_zero /usr/local/portage/layman/kvm /usr/local/portage/layman/mysql-testing /usr/local/portage/layman/scarabeus /usr/local/portage/layman/liquidx /usr/local/portage/layman/lila-theme /usr/local/portage/layman/zen-overlay /usr/local/portage/layman/gnustep /usr/local/portage/layman/akoya /usr/local/portage/layman/swegener /usr/local/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="32bit 64bit X X509 a52 aac aalib acct acl acpi additions addressbook admin administrator adplug ads aff aften agent agg aim aio alias allegro alsa amarok amarok2 amavis amazon amd64 amr amrnb amrwb animgif ansi aotuv apache2 applet archive arts artworkextra audit autoipd avahi avantgo bash-completion bcmath berkdb bluetooth bonjour bookmarks branding bzip2 cairo calendar caps cdda cddax cddb cdio cdparanoia cdr cgi cleartype cli clisp consolekit cracklib crypt cups curl cvs dbus dga dhcp dirac directfb djvu dri dv dvd dvdarchive dvdnav dvdr dvdread eap-tls eds emboss encode esd evo exchange exif fam ffmpeg firefox flac fontconfig force-cgi-redirect fortran ftp galago gd gdbm gedit gif git glib glitz gnome gnome-keyring gnome-print gnomecd gnutls google-gadgets gpg gphoto2 gpm gsm gstreamer gtk guile hal hash howl-compat iconv id3tag ieee1394 imap imlib inquisitio isdnlog jadetex java java-external java6 jingle jpeg jpeg2k kde kde4 kdm kerberos kolab kontact laptop lcms ldap ldap-sasl libnotify libsysfs libv4l2 live lj lzma mad md5sum mdnsresponder-compat messages midi mikmod mjpeg mmx mng mono mozdevelop mozilla mp3 mpeg msn mssql mudflap multilib musepack mysql mysqli nautilus ncurses network networking networkmanager nls nntp nptl nptlonly nsplugin oav ocaml odbc ogg opengl openmp openssl oscar otr pam pch pcntl pcre pda pdf perl php plasma png policykit portage posix postfix postgis postgres ppds pppd prediction privacy procmail pth pulseaudio python python-bindings qt3 qt3support qt4 quicktime rdesktop readline reflection rss rtsp ruby ruby-bindings samba sasl scanner schroedinger sdl sdl-image session sharedext shout silc simplexml skins slang slp sndfile snmp soap sockets speex spell spl sql sqlite sqlite3 srp sse sse2 sse3 sse4.1 sse4.2 sse4a sse5 ssh ssl ssse3 startup-notification stream subversion suexec suhosin svg swat syncengine sysfs syslog sysvipc tcl tcpd theora threads tidy tiff tk tokenizer tools truetype unicode upnp urandom usb utils v4l v4l2 vcd vcdinfo vcdx vhook vhosts video videos vim vim-pager vim-syntax vim-with-x virtual-users visual visualization vlc vlm vnc voice volctrl vorbis wav wavpack wddx web webdav webkit wifi winbind wireshark wma wmf wmp x264 xanim xattr xcb xcomposite xfs xine xinerama xinetd xml xmlreader xmlrpc xmlwriter xmp xorg xplanet xpm xulrunner xv xvid xvmc yahoo yaz zeroconf zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="intel vmware fbdev"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

----------

## rahulthewall

```

Symbol: FB [=y]                                                                                     

  │ Prompt: Support for frame buffer devices                                             

  │   Defined at drivers/video/Kconfig:22                                                   

  │   Depends on: HAS_IOMEM                                                                 

  │   Location:                                                                                        

  │     -> Device Drivers                                                                          

  │       -> Graphics support                                                                    

  │   Selected by: DRM_RADEON && HAS_IOMEM && DRM && PCI || DRM_I915 && <choice> && AGP_INTEL           

```

----------

## rettahs

You've got "intel" selected in your VIDEO_CARDS.

Check to see if Kernel Mode Setting By Default (or some such) is set (should be under the DRI section in Graphics)

----------

## diskmuncher

 *rahulthewall wrote:*   

> 
> 
> ```
> 
> Symbol: FB [=y]                                                                                     
> ...

 

So this is a definite change from 2.6.27, where I had DRM_I915, CONFIG_AGP, CONFIG_AGP_INTEL all configured Y, but was still able to unconfigure X and Console framebuffers.  In fact, using "make xconfig" (which I'd hadn't used in 10 years of doing kernel configs) I was actually able to see the CONFIG_FB and FRAMEBUFFER_CONSOLE defaults get set as soon as I chose the i915 DRM driver (with or without KMS).

I have an Intel GM945, which isn't explicitly listed, but I assume works "best" with DRM_i915 and perhaps DRM_i915_KMS (although there's a lot of debate about this in other distros buglists).   I've been trying to determine if X (KDE 4.2) works faster with or without the framebuffer (and also whether I can get compiz or other 3D effects working).

----------

## Cyker

Wait, what, so you can't use textmode anymore if those ops are active?!

----------

## rahulthewall

@diskmuncher

I have GM945 as well and it works with DRM_i915 and with DRM_i915_KMS (though the framebuffer provided by KMS in 2.6.30 does not cover the whole of the screen and is therefore not that nice). I have 3D effects working on this hardware (KDE4 default, xorg-server-1.6* and xf86-video-intel-2.7.1) and the performance is satisfactory.

@Cyker

And yes, if you enable KMS by default then you would get a framebuffer powered console - so no 80 X 60 text based console on bootup. (I assume that is what you meant with textmode.)

----------

## s4e8

 *Cyker wrote:*   

> Wait, what, so you can't use textmode anymore if those ops are active?!

 

I config CONFIG_FRAMEBUFFER_CONSOLE=m，still get a textmode console, until modprobe fbcon.

----------

