freebsd
[Início] [Todas as Listas]

Re: [FUG-BR] Beryl no FreeBSD

From: Patrick Tracanelli <eksffa@xxxxxxxxxxxxxxxxxxxx>
To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" <freebsd@xxxxxxxxxx>
Subject: Re: [FUG-BR] Beryl no FreeBSD
Date: Sun, 29 Jul 2007 04:42:13 -0300
Rafael Albuquerque wrote:
Olá!

Alguem que conseguiu rodar o beryl 0.2.0 rc3 (do ports) pode dar um help?

Atualizei o ports ontem, instalei o beryl pelo
/usr/ports/x11-wm/beryl. O processo foi beeem mais rapido do que eu
imagina, em 10 minutos ja tava tudo pronto.
Apos isso rodei o beryl dentro do KDE ele nao startava.. carregava,
mas a unica coisa q acontecia era sumir minha barra inferior do kde (
o panel).
Entao editei o /root/.xinitrc pra carregar o beryl. Ele mostra a
splash screen toda estilosa e depois fica parado na tela com fundo
azul (nao carrega menu, icones, nada).

Pelo google achei as seguintes opcoes para colocar no xorg.conf em
seus respectivos lugares:

Option "AllowGLXWithComposite" "True"
Option  "RenderAccel" "True"
Option "AddARGBGLXVisuals" "Ttrue"

E, obviamente, ativei a extensao "composite" porque qnd rodei o beryl
pela primeira vez ele ja reclamou disso.

Minha maquina é um notebook HP DV6230br, com 512 mb de ram DDR2 667
(ta chegando 2 gb pra fazer dual channel terça feira), 80 gb sata hd
(soh pra citar), placa de video Nvidia Go Force 6150 utilizando o
nvidia-driver-9631 (tentei atualizar pra o mais novo 97algumacoisa mas
ficou beem instavel, entao voltei pra essa versao q funciona
perfeitamente no KDE (inclusive as protecoes de tela em OpenGL)

Quando roda o startx com o beryl no xinitrc, que ele fica parado, como
ja dito, quando fecho ele a unica msg que tenho é algo sobre nao poder
criar o SHM, e diz que o dbus_bus_get failed to autolanche D-bus
session.

Alguma luz? :)

Primeira coisa, voce tem o dbus ativo?

dbus_enable="YES" no rc.conf e inicie o daemon

Depois, lembre-se, a partir desse momento qualquer oisa que voce iniciar via .xinitrc, faca-o com dbus-launch antes, para garantir que a aplicacao va conhecer as variaveis de ambiente necessarias pra usar uma sessao dbus, e principalmente que alguma sessao dbus seja iniciada.

Por exemplo

echo "dbus-launch startkde" > ~/.xinitrc

Eu pessoalmente nao uso KDE, mas acho que voce esta no caminho certo se deseja usa-lo. Se voce inicou o beryl dentro do KDE e apareceu o splash, meio caminho andado. Dente dar um CONTROL+ALT+SETA e veja se entra no modo cubo, independente de qualquer outra coisa q pareca um bug, nesse momento. Voce arruma isso depois.

Segunda coisa, tem que tunar o sistema ate acabar os erros de shm. Senao é entropia continuar. Felizmente é simples. Sao poucas variaveis. No meu ambiente, no /etc/sysctl.conf eu tenho:

kern.ipc.shmall=522144
kern.ipc.shmmax=2073741824

É mais do que o beryl/nvidia precisam, mas acaba que eu uso shared memory com muitas outras coisas tbm, menos comuns (tipo, interfaces de autoracao de dvd e uns devices da upek q tbm precisam, por isso tao alto). Logo, voce pode tentar com valores mais baixos ateh a mensagem de falta de SHM parar de acontecer.

Sobre a tela azul, é isso mesmo. Use

dbus-launch beryl

no .xinitrc

Ao iniciar com startx vc vera uma tela azul. Se CTRL+ALT+SETA rodar um cubo todo azul muito rapido, eh isso que deve acontecer. Mas voce nao tera um ambiente deskto, tera apenas o WM beryl. Ou seja nao tera nada, nem condicoes de abrir um terminal. Tao pouco programas... isso porque o beryl eh WM e nao um ambiente de trabalaho grafico completo. E como WM o beryl eh completissimo. Porem, nao faz nada alem de ser um WM. Nao eh como o Enlightenment por exemplo, que eh um WM e tem recursos de desktop, inclusive file manager (ainda q limitadissimo).

Bom, voltando ao foco, voce tera que escolher um Desktop modular pra rodar com o Beryl. Os mais comuns sao

- Gnome
- KDE (parece q eh sua escolha ja)

Outra muito comum (parece q muita gente prefere ele, do que os acima mencionados):

- XFCE4

Minha escolha pessoal nao eh nenhum desses. O que dificulta um pouco o uso:

- Nautilus com Desktop

Os tres acima sao a melhor escolha. Nautilus sequer eh uma opcao ofcialmente existente, sem o gnome. Entao escolha um dos tres acima, ao menos pra comecar.

Todos eles tem sistemas de startup. E todos eles sao frameworks completo (http://www.freedesktop.org/wiki/Desktops) entao voce pode usar um deles com outro WindowManager, que nao os feitos especialmente pra eles. Ai que entra outra coisa:

Sempre inicie o beryl-manager, e nunca o beryl diretamente. Pelo beryl-manager escokha o windows manager (beryl), e pronto.

Pelo beryl-manager voce pode iniciar o beryl-settings (e tambem em um terminal). Inicie o ambiente assim, entao via .xinitrc inicie apenas o kde mesmo (no seu caso) e depois em um terminal ou via STARTUP do kde, inicie o beryl-manager, e por sua vez por ele, defina o beryl como WM padrao.

Configure o ambiente e custimize-o.

Voce provavelmente pode ter um monte de comportamento estranho q vc vai pensar q sao bugs. Pelo beryl-manager va em "opcoes avancadas do beryl" e modifique as configuracoes ate seu ambiente estabilizar. Evite os "automaticos".

Porem, como sua placa é nVidia Go, tem um detalhe que pode fazer diferença. Um pequeno patch (2 linhas) no beryl. Eu não lembro quem fez esse patch nem qual a URL original, mas esta em algum lugar nos foruns nvnews (http://www.nvnews.net/vbulletin/), porem, pra facilitar coloquei num servidor agora.

Pra aplicar, basta recompilar/compilar o beryl-core, via ports mesmo. Faca assim:

cd /usr/ports/x11-wm/beryl-core/
make extract
cd work/beryl-core-0.2.0/
fetch http://www6.freebsdbrasil.com.br/~eksffa/l/v/beryl-0.2.0_rc3-damage-display.c.patch
patch -p0 < beryl-0.2.0_rc3-damage-display.c.patch
cd -
make install clean

(se ja estiver instalado, force registro ou desinstale antes).

Sinceramente, indico que voce aplique o patch por ultimo. Pra mim ele é imprecindivel (GeForce Go 7400). Porem, nao sei se isso se aplica a TODAS GeForce Go. Me parece que sim, pois no wiki do beryl-project esse patch ja fez diferenca pra outros usuarios, de Go 7200 e Go 7300.

Meu card/chip pra referencia, seguem:

nvidia0@pci1:0:0: class=0x030000 card=0x81e6104d chip=0x01d810de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'

Pra referencia, o xorg.conf que eu uso no momento:

Section "Files"
    RgbPath         "/usr/local/share/X11/rgb"
    ModulePath      "/usr/local/lib/xorg/modules"
    FontPath        "/usr/local/lib/X11/fonts/misc/"
    FontPath        "/usr/local/lib/X11/fonts/TTF/"
    FontPath        "/usr/local/lib/X11/fonts/OTF"
    FontPath        "/usr/local/lib/X11/fonts/Type1/"
    FontPath        "/usr/local/lib/X11/fonts/100dpi/"
    FontPath        "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
    Load           "extmod"
    Load           "record"
    Load           "dbe"
    Load           "xtrap"
    Load           "glx"
    Load           "freetype"
    Load           "type1"
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/sysmouse"
    Option         "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Tubo CRT"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 75.0
        Mode    "1024x768"      # vfreq 84.997Hz, hfreq 116.955kHz
                DotClock        94.500000
                HTimings        1024 1072 1168 1376
                VTimings        768 769 772 808
                Flags   "+HSync" "+VSync"
        EndMode
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Nvidia Default Flat Panel"
    HorizSync       29.0 - 50.0
    VertRefresh     0.0 - 60.0
EndSection


Section "Device"
    Identifier     "Card0"
    Driver         "nvidia"
    VendorName     "nVidia Corporation"
    BoardName      "GeForce Go 7400"
    Option         "AllowGLXWithComposite" "True"
    Option         "RenderAccel" "True"
    Option         "AddARGBGLXVisuals" "True"
    Option         "DisableGLXRootClipping" "True"
    Option         "XAANoOffscreenPixmaps"
    Option         "backingstore" "True"
    Option         "TripleBuffer" "True"
EndSection

Section "Device"
    Identifier     "Card1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce Go 7400"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AddARGBGLXVisuals" "True"
    Option         "DisableGLXRootClipping" "True"
#    Option         "TwinViewOrientation" "Clone"
    Option         "ExactModeTimingsDVI" "True"
#    Option         "TwinView" "1"
#    Option         "NoTwinViewXineramaInfo" "True"
    Option         "metamodes" "1280x800 +0+0"
    SubSection     "Display"
        Depth       24
        Modes      "1600x1200" "1280x1024" "1024x768"
    EndSubSection
EndSection

Section "Screen"
        Identifier      "Screen1"
        Device          "Card1"
        Monitor         "Monitor1"
        DefaultDepth    24
        SubSection "Display"
                Depth   24
                Modes   "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
#        Screen          "Screen0"
       Screen          "Screen0" Clone "Screen1"

    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection


Section "Extensions"
    Option         "Composite" "Enable"
EndSection

Porem, o xorg.conf acima esta configurado pra usar os 2 canais da placa de video, o Flat (lcd do laptop) e a saida, configurada pra CRT ou datashow, e com resolucoes distintas, o que pode significar que pra vc, sao informacoes dispensaveis e que podem so gerar confusao.

Entao segue um outro xorg.conf simplificado, q eu usava com apenas a tela Flat:

Section "ServerLayout"

#    Option         "AIGLX" "false"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    RgbPath         "/usr/local/share/X11/rgb"
    ModulePath      "/usr/local/lib/xorg/modules"
    FontPath        "/usr/local/lib/X11/fonts/misc/"
    FontPath        "/usr/local/lib/X11/fonts/TTF/"
    FontPath        "/usr/local/lib/X11/fonts/OTF"
    FontPath        "/usr/local/lib/X11/fonts/Type1/"
    FontPath        "/usr/local/lib/X11/fonts/100dpi/"
    FontPath        "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
    Load           "extmod"
    Load           "record"
    Load           "dbe"
    Load           "xtrap"
    Load           "glx"
    Load           "freetype"
    Load           "type1"
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/sysmouse"
    Option         "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Nvidia Default Flat Panel"
    HorizSync       29.0 - 50.0
    VertRefresh     0.0 - 60.0
EndSection

Section "Device"

        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "SWcursor"                  # [<bool>]
        #Option     "HWcursor"                  # [<bool>]
        #Option     "NoAccel"                   # [<bool>]
        #Option     "ShadowFB"                  # [<bool>]
        #Option     "UseFBDev"                  # [<bool>]
        #Option     "Rotate"                    # [<str>]
        #Option     "VideoKey"                  # <i>
        #Option     "FlatPanel"                 # [<bool>]
        #Option     "FPDither"                  # [<bool>]
        #Option     "CrtcNumber"                # <i>
        #Option     "FPScale"                   # [<bool>]
        #Option     "FPTweak"                   # <i>
    Identifier     "Card0"
    Driver         "nvidia"
    VendorName     "nVidia Corporation"
    BoardName      "GeForce Go 7400"
    Option         "AllowGLXWithComposite" "True"
    Option         "RenderAccel" "True"
    Option         "AddARGBGLXVisuals" "True"
    Option         "DisableGLXRootClipping" "True"
    Option         "XAANoOffscreenPixmaps"
    Option         "backingstore" "True"
    Option         "TripleBuffer" "True"
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce Go 7400"
EndSection

Section "Screen"

Option "TwinView" "True"
Option "MetaModes" "nvidia-auto-select, nvidia-auto-select"
Option "metamodes" "nvidia-auto-select +0+0"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "1280x800 +0+0"
    Option         "AddARGBGLXVisuals" "True"
    Option         "DisableGLXRootClipping" "True"
    SubSection     "Display"
        Depth       24
        Modes      "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection

Resumindo, o que realmente interessa:

Deve existir em qq parte do xorg.conf

Section "Extensions"
    Option         "Composite" "Enable"
EndSection

Na secao Screen, garanta que exista:

Option         "AddARGBGLXVisuals" "True"
Option         "DisableGLXRootClipping" "True"

Na secao Device, garanta:

    Option         "AllowGLXWithComposite" "True"
    Option         "RenderAccel" "True"
    Option         "AddARGBGLXVisuals" "True"
    Option         "DisableGLXRootClipping" "True"
    Option         "XAANoOffscreenPixmaps"

E teste tambem (so funciona em algumas nVidia, porem, nao eh necessario pro AIGLX. Apenas melhora um pouco a performance, se a sua placa suportar):

    Option         "backingstore" "True"
    Option         "TripleBuffer" "True"

Na secao Module, garanta:

    Load           "glx"

E lembre-se que com nVidia, voce nao usa DRI. Entao na mesma secao se vc tiver dri carregado, remova/comente:

#    Load           "dri"

Por ultimo, na secao ServerLayout gatanta a existencia de:

Option         "AIGLX" "true"

Divirta-se. E pra completar o ambiente, instale o kiba-dock quando ja estiver com se beryl funcionando =P

Espero ter ajudado. Boa sorte.

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601@xxxxxxxxxxxxxxxxxxxxxxxx
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"


<Anterior na Thread] Thread Atual [Próximo na Thread>