# [solved] fbcondecor im initramfs

## cryptosteve

Moin,

ich versuche, ein frühes fbcondecor hinzubekommen. Bislang war es so, dass die Framebuffer-Dekoration erst hinzugeschaltet wurde, nachdem /etc/init.d/fbcondecor in runlevel 'default' lief. Jetzt habe ich es in den Runlevel 'boot' verschoben, aber auch hier greift es (logischerweise) erst, nachdem die initrd vollständig durchgelaufen ist.

Wer hat ein Setup laufen, bei dem die Dekorationen bereits im initramfs laufen?

Ein paar Infos:

splashutils:

```
[ebuild   R    ] media-gfx/splashutils-1.5.4.4-r2  USE="fbcondecor gpm mng png truetype -hardened" 0 kB
```

Kernel:

(hier auch komplett: http://daemon.crashmail.de/~stell/lenovo-t500-kernelconfig-3.6.6.txt)

```
[root@fightclub:~]# grep FB_ /usr/src/linux/.config | grep -v "is not set"

CONFIG_FB_DDC=m

CONFIG_FB_BOOT_VESA_SUPPORT=y

CONFIG_FB_CFB_FILLRECT=y

CONFIG_FB_CFB_COPYAREA=y

CONFIG_FB_CFB_IMAGEBLIT=y

CONFIG_FB_BACKLIGHT=y

CONFIG_FB_MODE_HELPERS=y

CONFIG_FB_VESA=y

CONFIG_FB_RADEON=m

CONFIG_FB_RADEON_I2C=y

CONFIG_FB_RADEON_BACKLIGHT=y

CONFIG_FB_CON_DECOR=y
```

Grafik:

```
Graphics:  Card: Intel Mobile 4 Series Chipset Integrated Graphics Controller 

           X.Org: 1.13.0 drivers: intel (unloaded: vesa) Resolution: 1680x1050@60.0hz 

           GLX Renderer: Mesa DRI Mobile Intel GM45 Express Chipset GLX Version: 2.1 Mesa 9.0

```

Dann ziemlich ohne Plan, weil ich schon zu viele Tips und zu viele HOWTOs gelesen habe:

```
title=Gentoo Linux (3.6.6-gentoo-stv-rev-3b)

root (hd0,1)

kernel /boot/kernel dolvm root=/dev/ram0 init=/linuxrc crypt_root=/dev/sda4 real_root=/dev/mapper/cryptvg-gentooroot video=intelfb:1680x1050@60,mttr splash=verbose,fadein,theme:natural_gentoo console=tty1 quiet

initrd=/boot/initramfs
```

last but not least:

```
Portage 2.1.11.31 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.4, glibc-2.16.0, 3.6.6-gentoo-stv-rev-3a x86_64)

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

System uname: Linux-3.6.6-gentoo-stv-rev-3a-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T9550_@_2.66GHz-with-gentoo-2.2

Timestamp of tree: Thu, 15 Nov 2012 14:45:01 +0000

ld GNU ld (GNU Binutils) 2.23

ccache version 3.1.8 [enabled]

app-shells/bash:          4.2_p39

dev-lang/python:          2.7.3-r2, 3.2.3-r1

dev-util/ccache:          3.1.8

dev-util/cmake:           2.8.9-r1

dev-util/pkgconfig:       0.27.1

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.11.5

sys-apps/sandbox:         2.6

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.4

sys-devel/binutils:       2.23

sys-devel/gcc:            4.5.4, 4.6.3

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4.2

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.6 (virtual/os-headers)

sys-libs/glibc:           2.16.0

Repositories: gentoo x-portage

ACCEPT_KEYWORDS="amd64 ~amd64"

ACCEPT_LICENSE="* -@EULA Q3AEULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -march=core2 -pipe -fomit-frame-pointer"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"

CXXFLAGS="-O2 -march=core2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--with-bdeps=y"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="ftp://mirror.leaseweb.com/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://gd.tuwien.ac.at/opsys/linux/gentoo/ ftp://de-mirror.org/distro/gentoo/ ftp://gd.tuwien.ac.at/opsys/linux/gentoo/"

LANG="de_DE.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="de"

MAKEOPTS="-j4"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

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

PORTAGE_TMPDIR="/home/stell/temp/portage"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

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

USE="3dnow 3dnowext X a52 aac aalib acl acpi addressbook akonadi alsa amd64 apng autoipd battery berkdb branding bzip2 cairo calendar cdda cddb cdr cli consolekit cracklib crypt cups custom-optimization cxx dbus declarative dhcpcd djbfft dri dts dvb dvd dvdnav dvdr ebook embedded emboss enca encode exif extensions extras faac faad fam fax fbcondecor ffmpeg firefox firefox3 flac fontconfig fortran gallium gdbm gif gmplayer gpm gstreamer hddtemp hpijs iconv icq icu id3 id3tag idn ieee1394 jpeg kde kipi lame laptop lastfm lastfmradio lcms libnotify lm_sensors logitech-mouse mad mdnsresponder-compat minizip mjpeg mmx mmxext mng modules mp2 mp3 mp3tunes mp4 mpd mpeg mpi msn mudflap multilib musicbrainz ncurses networkmanager nfs nfsidmap nfsv3 nfsv4 nls nptl nsplugin ogg opengl openmp oscar otr pam pango pcre pdf phonon plasma png podcast policykit ppds ppp pppd qt3support qt4 readline redeyes reiser4 reiserfs replytolist romio scanner sdl semantic-desktop session smime sna snmp spell sql sse sse2 sse3 ssl startup-notification static-libs svg symlink taglib tcpd thinkpad threads thumbnail tiff tint2conf tordns truetype tv tv_check tv_combiner tv_pick_cgi tvtime udev udisks unicode upower usb v4l v4l2 vaapi vcd virtualbox vnc vorbis webkit wifi wxwidgets x264 xcb xcomposite xinerama xml xscreensaver xv xvid youtube 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="authn_core authz_core socache_shmcb unixd 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse synaptics virtualbox vmmouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" PHP_TARGETS="php5-3" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel vesa radeon radeonhd virtualbox r600 i915 i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

```

----------

## fuchur

Hi

Hast du nur die docs übersehen?. Steht eigentlich alles dort:

/usr/share/doc/splashutils-1.5.4.4-r2/quickstart

/usr/share/doc/splashutils-1.5.4.4-r1/early_bootup

Erstelle schon seit es fbdecore gibt danach meine initramfs.

MfG

----------

## cryptosteve

Auch die hab ich natürlich gesehen. Ich baue meine initrd mit genkernel und war davon ausgegangen, dass der das mit erledigen kann. 

Von daher hatte ich den Fehler eigentlich in der grub-Zeile erwartet.

Momentan weigert sich splash_geninitramfs noch standhaft, meine luks/lvm-Konfiguration mit einzubeziehen. Da müsste ich wohl erstmal richtig einsteigen.

Ich such nochmal ....

----------

## bell

Erstmal muss der Framebuffer fest im Kernel drin sein. An sonsten hat der Splash erst eine Chance, wenn das Framebuffer Modul geladen ist. Für Deine Grafikkarte wäre es dann KMS-Splash:

DRM_I915 [=y] 

DRM_I915_KMS [=y]

(unter Direct Rendering Manager (XFree86 4.1.0 and higher DRI support))

Folgende Kernel-Einstellungen kannst Du ruhig weglassen, da sie zu anderen FB-Treibern gehören: *Quote:*   

> CONFIG_FB_BOOT_VESA_SUPPORT=y 
> 
> CONFIG_FB_VESA=y
> 
> CONFIG_FB_RADEON=m
> ...

 

Da Du bereits eine Genkernel-initramfs nutzt, füge folgende Option bei dem Genkernel-Aufruf hinzu:

```
--splash=gentoo-burn
```

Natürlich kannst Du jeden anderen Splash aus /etc/splash angeben.

Die letzte Änderung wäre dann der Kernel-Parameter in der Grub-Config:

```
splash=silent,theme:gentoo-burn
```

Zu "video=intelfb:1680x1050@60,mttr": Das kannst Du rausnehmen. Der "intelfb" ist schon länger aus dem Kernel rausgeflogen. Der neue Treiber unterstützt diese Parameter nicht. Er initialisiert sich immer in der bestmöglichen Auflösung.

Ein nützlicher Parameter für den neuen Treiber, auch wenn dieser nichts mit dem Framebuffer zu tun hat: 

```
i915.i915_enable_rc6=1
```

Damit aktiviert man ein Paar Stromspar-Funktionen des Intel-Chips.

----------

## cryptosteve

So, danke zunächst für eure Tips.

Man, ich bin schon ganz durcheinander ... den größten Fehler habe ich gefunden und beseitigt (false initrd gebootet, man, wie peinlich).

Jetzt bekomme ich beim Start folgende Meldungen:

```
Can't open cfg file /etc/splash/livecd-2007.0/800x600.cfg 

No verbose image specified in the theme

No silent image specified in the theme
```

Damit gehe ich jetzt nochmal bei google suchen und schonmal die Tips von bell umsetzen.

----------

## cryptosteve

So, die beiden ersten Optionen hatte ich im Kernel bereits drin, die anderen lasse ich nochmal so stehen, weil mein Notebook eine Hybridgrafik hat und ich bei Bedarf auf die Radeon-Karte wechsle. Mag sein, dass da der eine oder andere Parameter noch überflüssig ist, aber da will ich mir jetzt keine zweite Baustelle aufmachen.

----------

## cryptosteve

Sorry Jungs,

ich blicks nicht, die Sau weigert sich standhaft:

```
Can't open cfg file //etc/splash/natural_gentoo/1024x768.cfg.

No verbose picture specified in the theme.

No verbose picture specified in the theme.

Failed to get backround decoration image.
```

Zu dem Zeitpunkt, wo er dort nach /etc/splash sucht, kann er da ja auch noch gar nicht zugreifen, weil /etc im verschlüsselten lvm liegt. Sollte er das Verzeichnis in die initramfs kopiert haben?

[ .. 2 Minuten später .. ]

So, es lichtet sich ... in der initramfs ist das 1024x768 gar nicht enthalten.

```
[ ... ]

lib64/splash/sys

etc

etc/splash

etc/splash/natural_gentoo

etc/splash/natural_gentoo/images

etc/splash/natural_gentoo/images/verbose-1680x1050.jpg

etc/splash/natural_gentoo/images/silent-1680x1050.jpg

etc/splash/natural_gentoo/1680x1050.cfg

etc/splash/luxisri.ttf

etc/initrd.splash

.

[ ... ]
```

Dann kann das natürlich auch nicht funktionieren.  :Smile: 

Mit diesem erneuten Wissen gehe ich jetzt nochmal testen ...

----------

## bell

Mich wundert es dass der Framebuffer nicht in die volle Auflösung geht. Schaue mal in der "dmesg"-Ausgabe welcher Framebuffer aktiv ist. Wahrscheinlich schnappt der CONFIG_FB_VESA=y dem Intel-Treiber die Grafikkarte vor der Nase weg. Und der VESA-Framebuffer kann nur 1024x768. Deaktiviere den VESA-FB lieber.

----------

## fuchur

Hi

 *cryptosteve wrote:*   

> Moin,
> 
> ich versuche, ein frühes fbcondecor hinzubekommen. Bislang war es so, dass die Framebuffer-Dekoration erst hinzugeschaltet wurde, nachdem /etc/init.d/fbcondecor in runlevel 'default' lief. Jetzt habe ich es in den Runlevel 'boot' verschoben, aber auch hier greift es (logischerweise) erst, nachdem die initrd vollständig durchgelaufen ist.
> 
> 

  *cryptosteve wrote:*   

> So, es lichtet sich ... in der initramfs ist das 1024x768 gar nicht enthalten. 
> 
> 

 

Du hast doch geschrieben das du eine Splash hast bei deinen Runlevels. Wenn du den mit der Auflösung nimmst der auch in den Runlevels

funktioniert sollte der auch in der initrd funktionieren.

MfG

----------

## cryptosteve

 *bell wrote:*   

> Mich wundert es dass der Framebuffer nicht in die volle Auflösung geht. Schaue mal in der "dmesg"-Ausgabe welcher Framebuffer aktiv ist. Wahrscheinlich schnappt der CONFIG_FB_VESA=y dem Intel-Treiber die Grafikkarte vor der Nase weg. Und der VESA-Framebuffer kann nur 1024x768. Deaktiviere den VESA-FB lieber.

 

Das wäre 'ne Lösung, wobei vesa bei mir offenbar auf 1440x900 kommt, aber eben nicht auf 1680x1050. Zudem coredumpt bei mir ein Startprozess in der initramfs, wenn der splash vorhanden ist und auch gefunden wird - ansonsten kommt halt die o.g. Fehlermeldung.

```
[stell @ fightclub:~]% dmesg | grep vesa

[    0.550202] vesafb: mode is 1440x900x8, linelength=1472, pages=23

[    0.550203] vesafb: scrolling: redraw

[    0.550205] vesafb: Pseudocolor: size=8:8:8:8, shift=0:0:0:0

[    0.550488] vesafb: framebuffer at 0xd0000000, mapped to 0xffffc90004480000, using 2587k, total 32704k
```

Dann versuche ich es nachher nochmal ohne vesafb und schmeiße ihn aus dem Kernel raus, vielleicht coredumpt er dann nicht mehr.  :Smile: 

----------

## Josef.95

 *cryptosteve wrote:*   

> Dann versuche ich es nachher nochmal ohne vesafb und schmeiße ihn aus dem Kernel raus ...

  Ja, wenn du KMS nutzen möchtest (was zu empfehlen ist) dann sollten möglichst alle anderen Framebuffer-Treiber deaktiviert sein.

Siehe dazu zb auch im X Server Configuration HOWTO im Abschnitt "Kernel modesetting"Last edited by Josef.95 on Fri Nov 16, 2012 5:29 pm; edited 1 time in total

----------

## cryptosteve

Hi,

bahh, pfui Spinne, was fürn Hexenwerk. Es taugt einfach nichts, wenn man den Mechanismus nicht vollständig verstanden hat. Nachdem ich nun also prüfen konnte, ob die richtigen Splash-Files im initramfs sind und nachdem ich geblickt hatte, welche Optionen man im grub braucht und welche heutzutage obsolet für dieses Thema sind, dann ist das nur noch halb so wild.

Dank dem Tipp von bell:

 *bell wrote:*   

> Wahrscheinlich schnappt der CONFIG_FB_VESA=y dem Intel-Treiber die Grafikkarte vor der Nase weg.

 

konnte ich dann auch den letzten Showstoppper entfernen und nun klappt es. Vielen Dank, das hätte mich wohl noch ein paar Stunden gekostet, bis ich darauf gekommen wäre, dass vesafb hier quer schießt ...

----------

## cryptosteve

Nachtrag:

Weil wir gerade im IRC darüber schnacken und ich deshalb nochmal auf diesen Thread aufmerksam wurde:

Hier nochmal die aktuell funktionierende Kernelconfig mit das Lenovo Thinkpad T500 mit fbcondecor: http://daemon.crashmail.de/~stell/kernelconfig_3.7.3_t500.txt

Und noch fix ein kleiner Screenshot.

----------

