Um update sobre os 100 dias
E minha alegria realmente chegou ao fim nos 110 dias de uptime. Dessa vez o culpado foi o filesystem, XFS, que começou a cuspir vários erros como esses:
A guerra dos 100 dias
11:55:20 up 100 days, 0 min, 43 users, load average: 1.22, 0.83, 0.84
Finalmente meu laptop, de uso diário e pessoal, quebrou a barreira dos 100 dias de uptime. E o que isso quer dizer? Nada, e ao mesmo tempo, várias coisas. Mas significa que estou trabalhando sem interrupções por 100 dias.
Fazia tempo que eu não tinha um uptime maior que 30 dias, quanto mais de 100. O problema não era específico, mas um conjunto deles. O que mais afetava o tempo em que a máquina funcionava sem interrupções (leia-se travamentos) era o driver de vídeo Intel. Invariavelmente o Xorg apresentava um crash por conta dos efeitos 3D do KDE com o plasma-desktop. Tentei de tudo, inclusive desabilitar os efeitos e até mesmo parar de usar o KDE, mas o crash de xorg sempre me encontrava.
Contudo vários esforços ocorreram em várias frentes e paralelamente, como sempre acontece no mundo do software livre. A equipe do Xorg melhorou o driver Intel, o KDE, com o lançamento do 4.7, criou uma forma de contornar esse crash, deixando o ambiente plasma muito mais estável e, por fim, a equipe de kernel trabalhou na melhoria do driver framebuffer e DRM pra Intel.
Esse conjunto de melhorias deram um resultado excelente, visível pelo tempo em que o laptop está funcionando sem parar. E olhe que o uso é intenso. Faço desde desenvolvimento de software até apresentações pra clientes, inclusive utilizando 2 monitores (em geral uma televisão). Tive alguns problemas nesse percurso, como uma sobrecarga no xorg, que levou o KDE a cair, mas nada que um reinício do serviço gráfico não pudesse resolver, sem precisar rebootar o laptop.
Em geral tenho trabalhado de forma consistente, fechando e abrindo o laptop, sem reiniciar o trabalho que tinha parado anteriormente. Isso garante um ganho de produtividade muito bom, pois já vejo em que ponto eu estava da última vez e continuo dali pra frente. Nada de reabrir documentos e procurar onde foi a última linha editada, nada de reabrir ambientes de desenvolvimento, nada de reiniciar minhas conexões SSH pra máquinas em que trabalho via VPN, já que faço isso automaticamente via script, que só detectam a queda do link e reiniciam a conexão. Fecho o laptop na sexta-feira e reabro na segunda, como se tivesse parado pra um café.
Então quando se vê um uptime alto, não estamos falando somente de tempo se desligar a máquina mas a produtividade que isso proporciona. Claro que existe um lado egocêntrico de falar no tempo sem desligar ou sem reboot, que vem da cultura de sysadmin, onde o maior uptime significa (ou ao menos significava) um servidor bem ajustado e configurado, mas isso é quase insignificante em relação ao benefício do trabalho ininterrupto.
E você? Já chegou aos 100 dias ou isso ainda é um fardo pra sua produtividade?
Linux e problemas na placa de rede
Hoje pela manhã (ou quase isso), fui surpreendido pelo mau funcionamento da minha placa de rede cabeada, uma placa gigabit. Não é uma placa que eu tenha escolhido, pois faz parte do notebook, um Sony Vaio VPC-S110GB.
Como a placa não tem led de indicação de funcionamento, eu só consegui identificar que não estava operando pela mensagem abaixo:
root@shibboleet:~# dmesg | grep -i eth [45263.845838] ADDRCONF(NETDEV_UP): eth0: link is not ready
Após algumas tentativas infrutíferas de colocar e tirar o cabo (acabei até quebro o clipezinho que segura o cabo), dei uma olhada como estava a camada de enlace ethernet.
root@shibboleet:~# mii-tool eth0 SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error SIOCGMIIREG on eth0 failed: Input/output error eth0: negotiated 1000baseT-HD flow-control, link ok
Esse "Input/output error" já me deu uma dica que algo tinha acontecido com o driver da placa. Como estou usando um kernel-pf, e compilado por mim, esse tipo de erro pode mesmo surgir. Claro que existe a possibilidade de ser um defeito da placa, mas prefiro acreditar que o erro é meu, pois esse eu consigo consertar.
UFOAI, OpenGL e nvidia vs Intel
Gosto do jogo UFOAI, de UFO Alien Invasion. É um jogo de estratégia que joguei pela primeira vez nos tempos do DOS e do "Windows 3.11 for Workgroups". Nessa época era um outro jogo, pago, e que se chamava X-Com Unknown Enemy, ou algo assim. Com o avanço dos sistemas, computadores, e jogos, obviamente ficou obsoleto e esquecido. Então alguns fãns resolveram fazer uma versão opensource do jogo, e claro, com esteróides.
O jogo exige OpenGL pra rodar, pois usa massivamente o "quake engine" pra renderizar os ambientes. E é fantástico, e difícil, pois tem uma inteligência artificial aprimorada, que faz com que seus soldados saiam correndo de medo no meio de algumas batalhas.
Fazia tempo que não jogava, mesmo porque jogo mais em console que no PC, mas essa semana resolvi brincar um pouco. Eis que descubro um problema de OpenGL no meu laptop:
helio@shibboleet:~$ ufo +set vid_ref sdl ---- filesystem initialization ----- Adding game dir: /usr/share/games/ufoai/base Added packfile /usr/share/games/ufoai/base/0base.pk3 (9 files) Added packfile /usr/share/games/ufoai/base/0maps.pk3 (544 files) Added packfile /usr/share/games/ufoai/base/0materials.pk3 (45 files) Added packfile /usr/share/games/ufoai/base/0media.pk3 (10 files) Added packfile /usr/share/games/ufoai/base/0models.pk3 (2015 files) Added packfile /usr/share/games/ufoai/base/0music.pk3 (49 files) Added packfile /usr/share/games/ufoai/base/0pics.pk3 (2114 files) Added packfile /usr/share/games/ufoai/base/0shaders.pk3 (26 files) Added packfile /usr/share/games/ufoai/base/0snd.pk3 (266 files) Added packfile /usr/share/games/ufoai/base/0ufos.pk3 (97 files) Adding game dir: ./base Added packfile ./base/0base.pk3 (9 files) Added packfile ./base/0maps.pk3 (544 files) Added packfile ./base/0materials.pk3 (45 files) Added packfile ./base/0media.pk3 (10 files) Added packfile ./base/0models.pk3 (2015 files) Added packfile ./base/0music.pk3 (49 files) Added packfile ./base/0pics.pk3 (2114 files) Added packfile ./base/0shaders.pk3 (26 files) Added packfile ./base/0snd.pk3 (266 files) Added packfile ./base/0ufos.pk3 (97 files) Adding game dir: /home/helio/.ufoai/2.3.1/base using /home/helio/.ufoai/2.3.1/base for writing executing default.cfg couldn't execute config.cfg ----- network initialization ------- libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3 initialized. ------ server initialization ------- added 7 maps to the mapcycle ----- console initialization ------- Console initialized. ------- video initialization ------- SDL version: 1.2.14 I: desktop depth: 32bpp I: video memory: 0 I: Available resolutions: 1366x1792 1366x768 1360x768 1024x768 800x600 640x480 (6) I: video driver: x11 I: setting mode -1 I: set swap control to 0 X Error of failed request: GLXUnsupportedPrivateRequest Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 25 Current serial number in output stream: 26
Tentei forçar o sistema a inicializar sem o uso de OpenGL, com o parâmetro "+set vid_ref sdl", mas nem isso resolveu. Como não existe nada mais sagrado ao homem que seus jogos eletrônicos, resolvi consertar o problema. Ou ao menos tentar.
Tocando uns WMV mal educados
Não vou escrever sobre vídeos de pornografia ou de pessoas xingando, nada disso. Vou falar de novo dos "padrões Microsoft". Não é de hoje que a Microsoft cria aplicativos não padronizados e que fazem questão de não funcionar em outros sistemas além do Windows.
Num desses dias me deparei com um danado de um arquivo de vídeo, WMV, que não funcionava de jeito nenhum.
helio@shibboleet:tmp$ mplayer sound_of_music.wmv mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking MPlayer SVN-r33713-4.6.1 (C) 2000-2011 MPlayer Team mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. Playing sound_of_music.wmv. ASF file format detected. [asfheader] Video stream found, -vid 1 [asfheader] Audio stream found, -aid 2 VIDEO: [WMV3] 352x264 24bpp 1000.000 fps 336.0 kbps (41.0 kbyte/s) Load subtitles in ./ open: No such file or directory [MGA] Couldn't open: /dev/mga_vid open: No such file or directory [MGA] Couldn't open: /dev/mga_vid [VO_TDFXFB] Can't open /dev/fb0: Permission denied. [VO_3DFX] Unable to open /dev/3dfx. NVIDIA: could not open the device file /dev/nvidiactl (No such file or directory). [vdpau] Error when calling vdp_device_create_x11: 1 ========================================================================== Opening video decoder: [dmo] DMO video codecs DMO dll supports VO Optimizations 0 1 DMO dll might use previous sample when requested MPlayer interrupted by signal 11 in module: init_video_codec