[FUG-BR] Beryl no FreeBSD
Patrick Tracanelli
eksffa em freebsdbrasil.com.br
Domingo Julho 29 04:42:13 BRT 2007
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 em 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 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"
Mais detalhes sobre a lista de discussão freebsd