Compilando e otimizando KDE 3.x

Originalmente proposto para a distribuição Slackware, este artigo visa a compilação e otimização da interface gráfica KDE. A diferença de performance é nitidamente perceptível quando os pacotes kdebase e kdelibs são otimizados adequadamente.

[ Hits: 37.840 ]

Por: Perfil removido em 16/03/2007


Otimizando e instalando o kdebase



O pacote kdebase, juntamente com o kdelibs, forma o coração do sistema KDE. O kdelibs é responsável por prover as bibliotecas para o funcionamento dos programas do KDE e o kdebase constitui a interface própria do KDE. A constituição básica do KDE é o Kicker, KDesktop, KControl, Konqueror e o Konsole.

Já compilamos o kdelibs na página anterior, prosseguiremos com a compilação do kdebase num esquema similar: configurar, compilar, gerar pacote, instalar ou "upgradear" (pra quem fala teclar e clicar, upgradear não é tão ruim, vai).

Extraia o tarball do kdebase e entre na pasta criada. Crie um arquivo 'compilar-otimizado' nessa pasta com a seguinte essência:

#flags para compilação otimizada
./configure \
#sintaxes extras para o configure

A novidade aqui é que passaremos uma seqüência de sintaxes para o configure. Isso inclui os chamados recursos extras, como abstração de hardware com o HAL e acesso à redes Windows via Konqueror. Abaixo, o script que usei para configurar meu kdebase, explicação das opções que usei e opções úteis caso você queira usar.

CHOST="i686-pc-linux-gnu" \
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" \
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" \
./configure --with-hal --with-samba --without-xinerama --with-kdm-xconsole --with-rpcauth --with-shadow --with-libusb

--with-hal => especifica ao configure que o KDE será compilado com suporte à abstração de hardware. Quando você colocar um CD, automaticamente surgirá uma janelinha perguntando o que você quer fazer com o CD.

--with-samba => habilita o suporte à samba no Konqueror. É possível acessar compartilhamentos Windows através do \\hostname\compartilhamento.

--with-sensors => habilita o suporte à lm_sensors, um monitorador de hardware. No Slackware, é necessário ter o pacote lm_sensors se você quiser habilitar esta opção. Eu não habilito.

--with-rpcauth => permite diversas opções e introduz melhorias de autenticação no X (Xauth).

--with-kdm-xconsole => monta o KDM com o xconsole incorporado. Útil algumas vezes pra mim, pessoalmente. Se você usa o autologin do KDM, por exemplo, este recurso será totalmente inútil pra você e pode ser desabilitado.

--with-libusb => controle de alguns modelos de mouse no KDE. Útil quando você tem um mouse USB.

--without-xinerama => Desabilita o suporte ao xinerama. O xinerama é um programinha útil pra quem tem mais de 1 monitor. Imagine que você tem 2 monitores, o xinerama monta a interface gráfica fazendo com que os 2 monitores pareçam apenas um grande monitor largo. Para os pobres, como tzbishop, que tem apenas um monitor, opção desabilitada.

--with-shadow => O shadow melhora a segurança das senhas nos sistemas Linux e BSD. Ao invés de gravar as informações de senhas em /etc/passwd, ele grava em /etc/shadow. Caso você use shadow, habilite esta opção.

Depois do configure, compile, gere o pacote e upgrade-o, como você fez com o kdelibs:

$ make
$ su
# checkinstall -S
# upgradepkg kdebase-*****.tgz


Página anterior     Próxima página

Páginas do artigo
   1. Objetivo da insanidade
   2. Preparando o sistema
   3. Otimizando e instalando o kdelibs
   4. Otimizando e instalando o kdebase
   5. E o resto do KDE?
   6. Críticas
Outros artigos deste autor

Instalando Nextcloud Server no Fedora 31

Configuração universal do servidor X (modo gráfico)

Swing e gerenciadores de layout

Como imprimir diretamente na porta de impressão

Trabalhando com foto usando Cheese + GIMP + Xmorph

Leitura recomendada

SIGERAR - Sistema de Gerenciamento de Requisitos

Desenvolvendo tutoriais mais dinâmicos com o Wink

DVDAuthor: Como autorar DVDs no Linux

Bottlenecks - Métricas de performance de servidores

Grub animado no Ubuntu? BURG nele!

  
Comentários
[1] Comentário enviado por tenchi em 16/03/2007 - 10:15h

Legal a iniciativa, pois os programas otimizados para a máquina ficam realmente mais rápidos. Eu também já tive a insanidade de compilar o KDE assim, mas ficou muita coisa faltando, por exemplo, o travamento da tela com o xlock. Se vc travasse a sessão com o KDE, ela não voltava, só no ctrl+alt+backspace msm... Mas isso foi burrada minha, que não vi a versão do xlock que o KDE usava. Mas eh assim msm. Ah, se vc gosta de deixar um programa sendo compilado, e sair pra tomar um café, compensa usar a capacidade máxima do processador no processo de compilação, que diminui em até a metadde o tempo de compilação (pelo menos aqui foi quase isso). Basta usar (como root) o nice:
# nice -n -20 make

Isso vai deixar a compilação como tendo prioridade máxima, o que vai fazer até a comunicação com o teclado ficar lenta.
Observação: Faça isso com o X desativado, pois senão ele irá travar.

Isso deve ser executado como root, pois as prioridades negativas são restritas ao root.

A última que eu tentei aqui foi o KDE 3.80.2, que um dia vai ser o KDE4. Só o Qt4 demorou mais de 4 horas em nice -20 rsrs. Também, com esse lixo aqui, que eu chamo de computador....


Flws.

[2] Comentário enviado por coffnix em 16/03/2007 - 12:58h

parabéns pelo artigo, excelente conteúdo!

e vlw pela citação do meu nome. hehehe

[3] Comentário enviado por hlegius em 16/03/2007 - 16:54h

Excelente!
Assim que der vou partir para uma instalação assim :-)

Parabéns pelo artigo!

[4] Comentário enviado por removido em 16/03/2007 - 19:26h

A ainda teve usuário que não lhe deu 10!!!
Parabéns!!!
Vc é um gênio!

[5] Comentário enviado por removido em 16/03/2007 - 20:50h

tenchi, bem legal essa dica do `nice`. Eu compilei o 3 80 2 também. Mas não compilei o Qt4.x, eu achei melhor tendo em mente que eu só iria usar o Qt4 pra testar o kde4. Mas achei muito legal essa dica do nice.
Inclusive, fiz uma dicazinha, parecida com essa sobre como compilar o kde4, 3.80 na verdade.
http://tzbishop.wordpress.com/2006/12/16/compilar-kde-3802/

[6] Comentário enviado por tenchi em 16/03/2007 - 22:04h

Muito legal essa dica que vc fez. Quem sabe se eu tivesse visto ela antes, não perderia tanto tempo tentando descobrir como funciona o cmake... rsrsrs.
Deu até uma discussão em torno do KDE4, no Br-Linux, mas finalmente hoje saiu uma notícia sobre o calendário do KDE4, que deverá sair em outubro (um ano depois do primeiro release instável).
Link das discussões:
http://br-linux.org/linux/planos-do-kde-4-para-versao-final-em-outubro
http://br-linux.org/linux/liberada-primeira-versao-nativa-do-amarok-para-mac-os

flws.

[7] Comentário enviado por GilsonDeElt em 17/03/2007 - 11:44h

Tom, seu artigo é simplesmente incrível. É o que eu precisava pra compilar meu KDE.
Mas, antes de começar, preciso tirar algumas dúvidas:
Meu processador é um Celeron D315, 2.26 GHz e 256 KB de cache L2. Seria uma boa idéia usar a otimização -O3?

Vale a pena compilar a QT e o XServer?

[8] Comentário enviado por removido em 17/03/2007 - 14:01h

GilsonElt, não vale a pena compilar o xserver e o Qt em si. Compile apenas o KDE. E use otimização -O3 sim! Veja em

http://tzbishop.wordpress.com/2007/01/25/flags-para-compilacao-segura-com-gcc-3x/

as sintaxes para sua otimização

[9] Comentário enviado por rgmmelo em 18/03/2007 - 21:11h

cara muito bom o seu artigo.... faz um tempo qu eu postei aqui pergutando se era possível eliminar aquele monte de programas que eu nem sei pra que servem, ai um cara disse que não era possivel. No entanto vc solucionou...mas acho que meu processador é fraquinho e não dá pra fazer isso. O seu tem 512 de cache e ficou com receio, e o meu celeron 1.8GHZ que so tem 128kb daria pra fazer em 03? ou em 02 perceberei melhoras?

[10] Comentário enviado por carlituS em 20/03/2007 - 00:39h

É disso que o pessoal do Gentoo fala, clicar no botão do Konqueror e abrir quase instantaneamente :)

E para o rgmmelo: no teu Celerom com 128KB pode inclusive ficar melhor com -O2 do que com -O3. Você pode até mesmo usar -Os, que reduz mais ainda o tamanho do executável. Este último faz todas as otimizações do -O2, optimizando para gerar executáveis menores, fazendo com que o tempo de carga e consumo de memória seja menor, sendo por isso recomendado para pcs mais antigos. Eu mudei de -O2 para -Os no meu Atlhon hoje e percebi uma pequena melhora, mas nada que justifique o investimento de recompilar tudo como eu fiz. Pro teu processador costuam recomendar:

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

Nota: eu já compilei meu sistema inteiro com -O3 num Atlhon XP 2200+ (256KB de cache). Ficou um tanto instável e lento (?) comparando com -O2.

Bons links sobre CFLAGS (em inglês):

http://gentoo-wiki.com/Safe_Cflags
http://gentoo-wiki.com/CFLAGS

Bem, uso de CFLAGS costumam gerar loooooongas discussões, cada um tem um ponto de vista diferente sobre o assunto :)

[11] Comentário enviado por removido em 22/03/2007 - 16:29h

é carlituS, a discussão sobre CFLAGS nunca termina mesmo. Eu particularmente, acho que 512kb de cache é o mínimo para compilar o sistema inteiro com -O3. Com 256kb de cache, acho interessante compilar somente alguns aplicativos com -O3 e o resto com -Os ou -O2. Enfim... é realmente uma discussão interminável

[12] Comentário enviado por GilsonDeElt em 22/03/2007 - 21:26h

Entrando nessa discussão interminável, o que pode ocorrer se eu compilar meu sistema com -O3? E com -O2? Ou seria melhor -Os? Só relembrando, Celeron D (Pentium 4-based) 2.26 GHz, 256 KB de cachê L2. Caso seja bom informar, meu PC tem 256 MB de RAM

[13] Comentário enviado por carlituS em 23/03/2007 - 09:29h

Eu acho que o máximo que pode acontecer é teu sistema ficar mais lento e com alguma coisa meio instável compilando com -O3, se comparado a uma compilação com -O2, justamente por causa do pouco cache do teu processador. Pro teu Celeron, eu iria de -O2 mesmo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts