Month: December 2007

Reconstruindo pacote debian a partir de um instalado

De repente você está no fim do mundo, num lugar sem internet e precisa de um pacote para instalar em outro computador. O que fazer?

A solução é simples, use o dpkg-repack para recriar o pacote instalado em seu computador:

dpkg-repack nomedopacote
Advertisements

Webcam HP dv6400 e skype

Após instalar o skype no amd64 resolvi testar a webcam (sim estou usando a versão 2.0.027 beta do skype com suporte a webcam). Quando clico no botão de teste da webcam o LED acende, mas não aparece a imagem.

Felizmente encontrei um workaround:

modprobe -r ohci_hcd && modprobe ohci_hcd
modprobe -r ehci_hcd && modprobe ehci_hcd
modprobe -r uvcvideo && modprobe uvcvideo

Fonte:
http://ubuntuforums.org/showthread.php?t=611816

Instalando Skype AMD64

Para instalar o skype no Linux (estou usando vers√£o 2.0: http://www.skype.com/intl/en/download/skype/linux/beta/) deve-se antes instalar a ia32-libs e a libxss1:

sudo apt-get install ia32-libs
mkdir temp
cd temp
wget http://espelhos.edugraf.ufsc.br/ubuntu/pool/main/libx/libxss/libxss1_1.1.2-1_i386.deb
dpkg -x libxss1_1.1.2-1_i386.deb .
sudo chown root.root usr/lib/*
sudo mv usr/lib/* /lib32/

Fonte:
http://auszug.org/articles/2007/11/09/skype-2-0-beta-para-linux-e-amd64

Ajustando a sensibilidade do touchpad

Após passar um pouco de raiva com o touchpad resolvi procurar como fazer para controlar a sensibilidade. Quando eu tentava mover o curso na tela, chegava às extremidades laterais do touchpad, e saltava o dedo para o meio do touchpad ele interpretava este leve toque como sendo um clique.

A solução é simples, edite o xorg.conf e acrescente na seção do Touchpad a opção:

Option “SHMconfig” “true”

Agora instale o programa gsynaptics e através dele controle a sensibilidade para mover o cursor, a sensibilidade para clicar e a sensibilidade do scroll.

C-cedilha no ubuntu

Meu teclado é americano e a acentućão no ubuntu fica errada, sem o Ç!

Solućão:

1. Edite o arquivo /usr/share/X11/locale/en_US.UTF-8/Compose e substitua todas as ocorrências (minúsculas e maiúsculas) do c acentuado pelo ç.

2. Edite o arquivo /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules e acrescente “:en” no final da linha que se refere ao cedilha, assim:
“cedilla” “Cedilla” “gtk20” “/usr/share/locale” “az:ca:co:fr:gv:oc:pt:sq:tr:wa:en”

Em outras distribuições, é possível que o arquivo seja /etc/gtk-2.0/gtk.immodules ou /etc/gtk-2.0/i386-redhat-linux-gnu/gtk.immodules .

No Linux Mint 12 este arquivo fica em /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

3. Reinicialize o servidor X (feche sua sessão, e no menu de login, escolha esta opção).

Creio que esta não é a melhor alternativa, pois o ć precisa existir em outros idiomas.

A vida seria bem melhor sem acentuação ūüėÄ

Fonte:

http://pcdavinci.if.ufrgs.br/wiki/index.php/C_cedilha_no_Ubuntu

Bus error (core dumped)

Antes de mais nada, o que é um “Segmentation fault (core dumped)” e um “Bus error (code dumped)”?

Esta foi a primeira pergunta me que fiz, não foi muito fácil achar a resposta, mas achei:

Segmentation Fault: O programa está tentando acessar uma área da memória que não lhe pertence e o erro foi detectado pelo sistema operacional.

Bus Error: O programa está tentando acessar uma área da memória que não lhe pertence e o erro foi detectado pela CPU.

Agora posso continuar, então vamos ao que interessa:

Estou recebendo “Bus error” quando tento rodar o ghostscript (gs), eu descobri isso porque o Latex não estava gerando os arquivos pdf com as imagens postscript incluídas no texto.

Após tentar abrí-las no evince e outros visualizados sem sucesso suspeitei que o problema fosse nas libs do ghostscript, não deu outra.

# strace /usr/bin/gs

open(“/usr/lib/libgs.so.8”, O_RDONLY) = 3
read(3, “\177ELF\2\1\1\3>\1\240\27\16″…, 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=5971968, …}) = 0
mmap(NULL, 12024472, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2b073d2b9000
mprotect(0x2b073d77b000, 2097152, PROT_NONE) = 0
mmap(0x2b073d97b000, 3284992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4c2000) = 0x2b073d97b000
— SIGBUS (Bus error) @ 0 (0) —
+++ killed by SIGBUS (core dumped) +++
Process 6842 detached

Ao que parece o erro está ocorrendo após o gs alocar memória, vamos verificar se a memória virtual está limitada:

# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15864
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15864
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

Este não é o problema, mas como podemos ver a geração do arquivo de core dump (core), está desativada, vamos ativar:
# ulimit -c 1024

Agora quando tentar rodar o programa ele irá gerar um arquivo chamado core que contém os estado que o aplicativo estava no momento que o core dump ocorreu.

Então resolvi tentar depurar o ghostscript juntamente com o arquivo de core dump gerado:

root@tux:~# gdb /usr/bin/gs core
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for details.
This GDB was configured as “x86_64-linux-gnu”…
(no debugging symbols found)
Using host libthread_db library “/lib/libthread_db.so.1”.
(gdb) run
Starting program: /usr/bin/gs
(no debugging symbols found)

Program received signal SIGBUS, Bus error.
0x00002b351b8d8fa0 in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb)

O gs não foi compilado com a flag de debug ativada (-g), porém podemos ver que o erro ocorre na biblioteca ld-linux-x86-64.so.2.

Eu sei que a ld-linux-x86-64.so.2 pertence ao pacote libc6-amd64, então isto me fez lembrar que o problema comecou a ocorrer quando eu fiz a atualizacao do sistema. Um dpkg -l “libc6*” me mostrou que a libc6 instalada era a versao 2.6.1-1ubuntu10.

Solucao:
dpkg -i –force-overwrite libc6_2.6.1-1ubuntu9_amd64.deb

Mais uma vez fica a impressão (ou certeza) que a Canonical não testa corretamente as atualizações antes de disponibiliza-las para o público. Isto é muito grave, pois as pessoas perderão a confiança no Ubuntu.

BUG:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/161772