# Booten mit Framebuffer und Linux Pinguin Logo in der Console

## flammenflitzer

Hallo, diese Anleitung 

```
https://wiki.gentoo.org/wiki/Uvesafb
```

 ist ja nun veraltet. Wie bekomme ich bei der Nutzung vom Proprietärem Nvidia Treiber 

```
x11-drivers/nvidia-drivers
```

 ohne Initial RAM Filesystem und RAM Disk mit Grub2 und Systemd das Linux Logo beim Booten hin?

MfG

----------

## schmidicom

Ich habe es mir wegen den ganzen Firmwareblobs welche viele Treiber brauchen auch abgewöhnt diese gleich fest in den Kernel zu packen und stand deshalb vor einem ähnlichen Problem wie du. Bei mir habe ich es folgend gelöst:

```
CONFIG_X86_SYSFB=y

CONFIG_FB_EFI=y

CONFIG_FB_SIMPLE=y
```

Alle weiteren Treiber landen dann bei mir als Module auf der Platte und müssen vom Kernel nach dem Zugriff auf "/" geladen werden. Bis jetzt funktionierte das bei mir sehr gut, mein Kernel switcht sauber (also ohne geflacker) vom FB_EFI oder FB_SIMPLE zum eigentlichen Treiber.

Mit dem Treiber von Nvidia müsste das ja eigentlich auch klappen...

----------

## flammenflitzer

Könntest du den Rest auch posten? Welche Kernelmodule? Was hast du zu Systemd hinzugefügt? Und die Grub2 config. MfG

----------

## schmidicom

Meinst du die ganze Kernelkonfig? Die kannst gern haben.

Laptop - V4.14.3 - https://drive.google.com/file/d/1antzrk7fExD1gMsQQ1MixtspmNJyEtt7/view?usp=sharing

Die ist von meinem Laptop mit Intelgrafik und wegen dem bereits erwähnten Firmwareblob ist der Intel-Treiber nur als Modul konfiguriert. Spezielle Kerneloptionen braucht das ganze nicht, der Kernel lädt den Intel-Treiber automatisch sobald er das kann.

----------

## flammenflitzer

Danke. Leider habe ich für die ganze Sache keine Anleitung gefunden. Beispielsweise muss m.E. doch bei openrc consolefont im boot-Level 

```
rc-update add consolefont boot
```

aktiviert sein. Zum Thema consolefont mit systemd habe ich nur den Vermerk gefunden: 

```
systemd-vconsole-setup.service 
```

. Brauche ich das? Wie aktiviere ich das? 

```
systemctl restart systemd-vconsole-setup
```

?

----------

## schmidicom

Ich musste wirklich nichts anderes machen als den Kernel so zu konfigurieren mit systemd-vconsole-setup.service oder dessen Konfiguration "vconsole.conf" bin nie in Berührung gekommen. So weit ich weiß muss man sich auch erst dann darum kümmern wenn man die Standards des Kernels (Tastaturlayout oder eben Font) ändern will. Mag sein das es zwischen systemd und OpenRC einen Unterschied gibt aber auch wenn meine Erfahrungen mit OpenRC etwas länger her sind erinnere ich mich nicht daran irgendwann mal etwas extra Konfiguriert haben zu müssen.

Probiere es doch einfach mal aus, mehr als nicht funktionieren kann es ja wohl nicht.

----------

## flammenflitzer

```
lammenflitzer ~ $ cat /usr/src/linux/.config  | grep FB | grep -v \#

CONFIG_X86_SYSFB=y

CONFIG_FB=y

CONFIG_FB_CMDLINE=y

CONFIG_FB_NOTIFY=y

CONFIG_FB_CFB_FILLRECT=y

CONFIG_FB_CFB_COPYAREA=y

CONFIG_FB_CFB_IMAGEBLIT=y

CONFIG_FB_SYS_FILLRECT=m

CONFIG_FB_SYS_COPYAREA=m

CONFIG_FB_SYS_IMAGEBLIT=m

CONFIG_FB_SYS_FOPS=m

CONFIG_FB_DEFERRED_IO=y

CONFIG_FB_MODE_HELPERS=y

CONFIG_FB_SIMPLE=y

CONFIG_HID_PICOLCD_FB=y
```

 

```
flammenflitzer ~ $ cat /usr/src/linux/.config  | grep LOGO | grep -v \#

CONFIG_LOGO=y

CONFIG_LOGO_LINUX_CLUT224=y
```

```
flammenflitzer ~ $ cat /usr/src/linux/.config  | grep VG | grep -v \#

CONFIG_VGA_ARB=y

CONFIG_VGA_ARB_MAX_GPUS=16

CONFIG_VGA_CONSOLE=y

CONFIG_VGACON_SOFT_SCROLLBACK=y

CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=256

CONFIG_USB_SISUSBVGA=m
```

Das sollte doch m.E. passen.

Vielleicht liegt es an der /etc/default/grub ?

```
GRUB_DISTRIBUTOR="Gentoo"

GRUB_TIMEOUT=5

GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"

GRUB_GFXMODE=1680x1050x32

GRUB_THEME="/boot/grub/themes/starfield/theme.txt"
```

----------

## schmidicom

So wie ich das Zusammenspiel der beiden Optionen "CONFIG_X86_SYSFB=y" und "CONFIG_FB_SIMPLE=y" verstanden habe setzen diese die Anzeige so fort wie sie vom BIOS/UEFI initialisiert wurde, zumindest so lange bis ein besserer Treiber geladen werden kann. Also ist es vom Kernel vermutlich schlicht etwas zu viel verlangt an dieser Stelle gleich das Logo mit der besten Qualität (224-color) anzuzeigen.

Ich persönlich würde einfach mal alle Varianten des Logo aktivieren, dann hat der Kernel auch schön die Auswahl und kann das nehmen welches gerade am besten passt.Last edited by schmidicom on Fri Dec 08, 2017 2:43 pm; edited 1 time in total

----------

## Josef.95

 *flammenflitzer wrote:*   

> Vielleicht liegt es an der /etc/default/grub ?
> 
> ```
> GRUB_DISTRIBUTOR="Gentoo"
> 
> ...

 

Wahrscheinlich fehlt noch

# Keep resolution when loading the kernel

GRUB_GFXPAYLOAD_LINUX=keep

Schau dazu zb auch im https://wiki.gentoo.org/wiki/GRUB2#Using_framebuffer_display

Welcher Framebuffer-Treiber wird denn nun genutzt? Schau mal via

cat /proc/fb

----------

## schmidicom

@Josef.95

Bedeutet das etwa das der aktuelle GRUB inzwischen sogar standardmäßig die Grafikausgabe so heftig zerlegt das damit selbst der Kernel ohne umfangreicheren Treiber so gut wie nichts mehr anfangen kann?  :Shocked: 

Also ich bin ja der Meinung das ein "Bootloader" eigentlich nicht anderes tun sollte als möglichst unspektakulär das Betriebssystem zu laden, aber vielleicht werde ich ja auch einfach nur alt...

----------

## flammenflitzer

```
# cat /proc/fb
```

 Kein Eintrag. 

Den Unterschied macht 

```
GRUB_GFXPAYLOAD_LINUX=keep
```

Jetzt :

```
# ls /dev/*fb*

/dev/fb0

# cat /proc/fb

0 simple
```

Allerdings ist es noch nicht das, was ich wollte. Jetzt habe ich einen schwarzen Bildschirm mit der Meldung "Gentoo .... wird geladen".

```
GRUB_GFXMODE=640x480
```

 Hier hängt sich der Bootvorgang auf.

```
Dez 09 07:58:57 flammenflitzer bluetoothd[2418]: RFCOMM server failed for Object Push: socket(STREAM, RFCOMM): Protocol not supported (93)

Dez 09 07:58:57 flammenflitzer org.freedesktop.ConsoleKit[2431]: missing action

Dez 09 07:58:57 flammenflitzer dbus[2431]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'

-- Reboot --
```

----------

## schmidicom

 *flammenflitzer wrote:*   

> Den Unterschied macht 
> 
> ```
> GRUB_GFXPAYLOAD_LINUX=keep
> ```
> ...

 

Das sieht doch schon besser aus, zumindest hat dein Kernel jetzt für die anfängliche Grafikausgabe einen Framebuffer der einfach genug sein sollte um dem nvidia-Treiber nicht in die Quere zu kommen. Aber wie bereits gesagt übernimmt dieser Treiber zusammen mit "CONFIG_X86_SYSFB" die Grafikausgabe so wie sie beim laden des Kernel ist und wenn der GRUB diese vor dem laden verändert musst du dort eventuell noch weitere Anpassungen machen.

Ich selbst benutze aber schon lange keinen GRUB mehr, also weiß ich auch nicht wie man sowas gebändigt bekommt.

Sobald das mit dem GRUB passt wäre mal die Installation des Nvidia-Treiber nicht schlecht. Dafür müsste ja ein VIDEO_CARDS="nvidia" in deiner make.conf reichen, wenn nicht dann forcierst du eben die Installation mit "emerge x11-drivers/nvidia-drivers". In dem Packet "x11-drivers/nvidia-drivers" sollte ein Kernel-Treiber drin sein der dann während dem booten den simplefb ersetzt, bei mir äußert sich das im kernelog so:

```
Dez 11 07:48:37 pc131am kernel: simple-framebuffer simple-framebuffer.0: framebuffer at 0xc0000000, 0x8ca000 bytes, mapped to 0xffffa500c2000000

Dez 11 07:48:37 pc131am kernel: simple-framebuffer simple-framebuffer.0: format=a8r8g8b8, mode=1920x1200x32, linelength=7680

...

Dez 11 07:48:37 pc131am kernel: simple-framebuffer simple-framebuffer.0: fb0: simplefb registered!

...

Dez 11 07:48:37 pc131am kernel: fb: switching to amdgpudrmfb from simple

...

Dez 11 07:48:37 pc131am kernel: fbcon: amdgpudrmfb (fb0) is primary device
```

 *flammenflitzer wrote:*   

> Hier hängt sich der Bootvorgang auf.
> 
> ```
> Dez 09 07:58:57 flammenflitzer bluetoothd[2418]: RFCOMM server failed for Object Push: socket(STREAM, RFCOMM): Protocol not supported (93)
> 
> ...

 

Diese letzten drei Zeilen sagen mir nicht wirklich viel, eventuell lässt sich im Rest ja mehr herauslesen. Am besten du packst das ganze Log mal irgendwo Online denn so ist es wenig hilfreich.

----------

## flammenflitzer

Den Nvidia-Treiber habe ich doch. Ist doch keine Neuinstallation....   :Wink: 

Bisher habe ich Grub von meiner Ubuntu-Notfall-Installation genutzt. Jetzt habe ich nur auf den Grub von Gentoo umgestellt. Und dabei wollte ich halt ein angenehmes Bild beim Bootvorgang sehen, das aber auch die Meldungen anzeigt. So wie früher, mit grub(1) und popenrc....

----------

