# usando framebuffer/splash theme -- grub

## raphiusks

olá a todos

eu utilizo o grub-1.98-r7, e fiz algumas modificações para tentar usar o framebuffer para obter uma melhor resolução no terminal e splash theme..

são 2 problemas diferentes pelo que eu imagino, mas como nenhum dos dois funciona estou postando junto. E já me adianto em pedir desculpas caso seja um post duplicado, mas não consegui achar nenhum similar...

eu consegui que a resolução da tela de greeting do grub (onde você escolhe o kernel a ser bootado), ficasse OK, com uma resolução boa.

porém, logo após selecionar o kernel e bootar, a tela fica preta (as vezes com uma imagem tentando aparecer no topo da tela), e só retorna quando meu gnome sobe.

eu li e recompilei o kernel com suporte ao Framebuffer Console Decorations, com a use flag fbcon, fbdev, fbsplash e fbcondecor, e tentei reinstalar o splashutils (ja havia instalado mas sem a USE fbcondecor), mas me dá o seguinte erro:

/usr/bin/ld: warning: cannot find entry symbol main; defaulting to 0000000000400200

Making all in src

  CREATE  fbsplash.h

Making all in .

libfbsplash.c: In function 'fbsplash_parse_kcmdline':

libfbsplash.c:177: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result

libfbsplash.c: In function 'fbsplash_cache_cleanup':

libfbsplash.c:497: warning: ignoring return value of 'system', declared with attribute warn_unused_result

libfbsplash.c: In function 'fbsplash_check_sanity':

libfbsplash.c:570: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result

libfbsplash.c: In function 'fbsplash_set_evdev':

libfbsplash.c:614: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result

libfbsplash.c: In function 'fbsplash_profile':

libfbsplash.c:649: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result

libfbsplash.c: In function 'fbsplash_send':

libfbsplash.c:695: warning: format not a string literal and no format arguments

libfbsplashrender.c: In function 'fbsplashr_input_init':

libfbsplashrender.c:216: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result

libfbsplashrender.c: In function 'vt_cursor_disable':

libfbsplashrender.c:593: warning: ignoring return value of 'write', declared with attribute warn_unused_result

libfbsplashrender.c: In function 'vt_cursor_enable':

libfbsplashrender.c:598: warning: ignoring return value of 'write', declared with attribute warn_unused_result

libfbsplashrender.c: In function 'fbsplashr_tty_silent_init':

libfbsplashrender.c:627: warning: ignoring return value of 'write', declared with attribute warn_unused_result

common.c: In function 'dev_create':

common.c:47: warning: ignoring return value of 'read', declared with attribute warn_unused_result

image.c: In function 'load_png':

image.c:64: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:67: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:68: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:71: warning: 'bit_depth' is deprecated (declared at /usr/include/libpng14/png.h:651)

image.c:74: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:78: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:84: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:84: warning: 'color_type' is deprecated (declared at /usr/include/libpng14/png.h:653)

image.c:96: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c:96: warning: 'height' is deprecated (declared at /usr/include/libpng14/png.h:640)

image.c:100: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c:101: warning: 'height' is deprecated (declared at /usr/include/libpng14/png.h:640)

image.c:117: warning: 'height' is deprecated (declared at /usr/include/libpng14/png.h:640)

image.c:119: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c:121: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c:130: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c:142: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c:143: warning: 'width' is deprecated (declared at /usr/include/libpng14/png.h:639)

image.c: In function 'is_png':

image.c:171: warning: ignoring return value of 'fread', declared with attribute warn_unused_result

ttf.c: In function 'text_get_output':

ttf.c:676: warning: ignoring return value of 'pipe', declared with attribute warn_unused_result

ttf.c:687: warning: ignoring return value of 'dup', declared with attribute warn_unused_result

  CC      fbcondecor_helper-kernel.o

daemon.c: In function 'thf_switch_ttymon':

daemon.c:476: warning: ignoring return value of 'read', declared with attribute warn_unused_result

daemon.c: In function 'daemon_start':

daemon.c:652: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result

  CC      fbcondecor_helper-libfbsplash.o

  CC      fbcondecor_helper-libfbsplashrender.o

  CC      fbcondecor_helper-fbcon_decor.o

  CC      fbcondecor_helper-common.o

  CC      fbcondecor_helper-parse.o

  CC      fbcondecor_helper-list.o

  CC      fbcondecor_helper-render.o

  CC      fbcondecor_helper-image.o

  CC      fbcondecor_helper-effects.o

  CC      fbcondecor_helper-ttf.o

  CREATE  libfbsplash.pc

  CREATE  libfbsplashrender.pc

daemon.c: In function 'thf_switch_ttymon':

daemon.c:476: warning: ignoring return value of 'read', declared with attribute warn_unused_result

daemon.c: In function 'daemon_start':

daemon.c:652: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result

  LD      fbcondecor_helper

/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/../../../../x86_64-pc-linux-gnu/bin/ld: attempted static link of dynamic object `/usr/lib64/libjpeg.so'

collect2: ld returned 1 exit status

make[4]: *** [fbsplashctl] Error 1

make[4]: *** Waiting for unfinished jobs....

make[3]: *** [all-recursive] Error 1

make[2]: *** [all] Error 2

make[1]: *** [all-recursive] Error 1

make: *** [all] Error 2

emake failed

 * ERROR: media-gfx/splashutils-1.5.4.3-r3 failed:

 *   failed to build splashutils

 *

 * Call stack:

 *     ebuild.sh, line  56:  Called src_compile

 *   environment, line 2947:  Called die

 * The specific snippet of code:

 *       emake CC="${CC}" STRIP="true" || die "failed to build splashutils"; 

Detalhes:

Linux insane 2.6.35-zen3+ #5 ZEN SMP PREEMPT x86_64 Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz GenuineIntel GNU/Linux

git do zen stable.

tenho uma nvidia 8500 GT pci-e -- nvidia-drivers = 256.53 nvidia-settings = 256.52

no device drivers tenho habilitado:

- Direct Rendering Manager (nada marcado dentro)

- Lowlevel video output switch controls

- Support for frame buffer devices

   - Enable Firmware EDID

   - Framebuffer foreign endianness support

      - support for big- and little-endian framebuffers

   - Enable video mode handling helpers

## essa parte que eu tenho mexido ##

   - VGA 16-color graphics support

   - Userspace VESA VGA graphics support (modulo)

   - VESA VGA graphics support

   - nVidia framebuffer support

      - Support for backlight control

## fim ##

   - Display device support

   - Console display driver

      - VGA Text console

      - Enable Scrollback buffer in System RAM

      - Scrollback buffer size (64)

      - Framebuffer console support

      - Support for the framebuffer console decorations

    - Bootup logo

      - 224 color Zen kernel/meditating tux logo

insane # splash_manager --theme=sabayon --cmd=set --tty=1

Error: Theme 'sabayon' doesn't seem to provide a config file for the current resolution (640x480)

grub.cfg:

insmod ext2                                                                                                                                                                      

set root='(hd0,2)'                                                                                                                                                               

search --no-floppy --fs-uuid --set 986ce646-4ca5-4265-b1ee-00241f4fc2f7                                                                                                          

if loadfont /usr/share/grub/unicode.pf2 ; then                                                                                                                                   

  set gfxmode=1024x768                                                                                                                                                           

  # vga= is deprecated, grub2 handles this just fine                                                                                                                             

  # making grub2 res == linux fb res                                                                                                                                             

  set gfxpayload=1440x900x24,1440x900x16,1024x768x24,1024x768,800x600x24,800x600                                                                                                 

  insmod gfxterm                                                                                                                                                                 

  insmod vbe                                                                                                                                                                     

  if terminal_output gfxterm ; then true ; else                                                                                                                                  

    # For backward compatibility with versions of terminal.mod that don't                                                                                                        

    # understand terminal_output                                                                                                                                                 

    terminal gfxterm                                                                                                                                                             

  fi                                                                                                                                                                             

fi

linha de comando pra bootar (tenho mudado isso direto) -- apesar do nome, não é sabayon, meu sistema foi montado pelo rescue, e eu uso overlay do sabayon e várias ferramentas, mas é 100% gentoo   :Wink: 

menuentry "Sabayon GNU/Linux, with Linux x86_64-2.6.35-zen3+" --class sabayon --class gnu-linux --class gnu --class os {                                                         

        insmod ext2                                                                                                                                                              

        set root='(hd0,2)'                                                                                                                                                       

        search --no-floppy --fs-uuid --set ce113a6e-a994-4913-a186-713a3224cfd1                                                                                                  

        echo    Loading Linux x86_64-2.6.35-zen3+ ...                                                                                                                            

        linux   /kernel-genkernel-x86_64-2.6.35-zen3+ ro root=/dev/ram0 real_root=/dev/sda3 video=0x31B splash=verbose,fadein,theme:sabayon console=/dev/tty1                    

        echo    Loading initial ramdisk ...                                                                                                                                      

        initrd  /initramfs-genkernel-x86_64-2.6.35-zen3+                                                                                                                         

}        

me basiei no artigo http://en.gentoo-wiki.com/wiki/Fbsplash

se precisarem de mais informações, basta responder que postarei o quanto antes.

agradeço se puderem ajudar, uso muito o terminal e com 640x480 em breve ficarei cego..

obrigado!

----------

## lle0

Talvez eu possa ajudar com o primeiro problema, que não deixa de ser requisito para você mesmo poder resolver o segundo. Até onde eu li o fbsplash requer o framebuffer ativo. Uso o framebuffer aqui atrávés do uvesafb; me baseei nisto e nisto. Depois disso aí você tenta o fbsplash de acordo com o link que você já se referiu.

----------

## raphiusks

Muito obrigado pela ajuda.

Eu consegui instalar o splashutils fazendo o seguinte:

- desinstalar o virtual/jpeg

- desinstalar o openjpeg

- reinstalar o openjpeg com emerge -1 com static-libs (não deu pra fugir disso)

- revdep-rebuild

- instalar o splashutils

Em relação ao framebuffer, eu segui todas as etapas descritas, mas não dá jeito.

Eu tenho uma NVIDIA 8500 GT sem suporte algum da nvidia no kernel (li que são conflitantes com o nvidia-drivers) e apenas com as opções para uvesafb e o fbcondecor segundo os sites. Baixei o v86d botei no kernel (uso o 2.6.35-zen3+ zen git stable) o path pro initramfs, coloquei a linha video=uvesafb:1024x768-32,mtrr:3,ywrap no grub.conf e mesmo assim não vai.

Simplesmente não consigo que o framebuffer seja mapeado ( /dev/fb0 e /dev/fb/0 ) de forma alguma.

Alguém tem alguma idéia? se precisarem de mais informações é só falar que eu posto

estou pensando em tirar todo o suporte ao uvesa/fbcondecor etc do kernel.. rebootar e depois recomeçar. Porém, do jeito que está hoje, está 100% igual aos sites que você mencionou e que eu já havia visto anteriormente e não entendo por que não funciona.

Obrigado a quem puder ajudar.

----------

