Blackberry e problemas em montar o cartão de memória em CM15 (Caixa Mágica)

O Blackberry é um telemóvel fantástico. A ligação USB permite que seja montado em Linux como um dispositivo de armazenamento. Por vezes há um problema que ele não é montado e em /var/log/messages aparecem as seguintes informações:

 

kernel: usb 1-3: new high speed USB device using ehci_hcd and address 7

Nov 24 10:09:30 localhost kernel: usb 1-3: New USB device found, idVendor=0fca, idProduct=8004

Nov 24 10:09:30 localhost kernel: usb 1-3: New USB device strings: Mfr=1, Product=5, SerialNumber=3

Nov 24 10:09:30 localhost kernel: usb 1-3: Product: RIM Composite Device

Nov 24 10:09:30 localhost kernel: usb 1-3: Manufacturer: Research In Motion

Nov 24 10:09:30 localhost kernel: usb 1-3: SerialNumber: E2388D276808D284F38B1A5E1259EFDCF770D8DD

Nov 24 10:09:30 localhost kernel: scsi9 : usb-storage 1-3:1.1

Nov 24 10:09:30 localhost kernel: usb 1-3: usbfs: interface 1 claimed by usb-storage while 'bcharge' sets config #1

Nov 24 10:09:31 localhost kernel: usb 1-3: reset high speed USB device using ehci_hcd and address 7

onde em vez de ser reconhecido o cartão de memória, aparece a aplicação bcharge que não permite que isso aconteça.

Isto é "um problema" com as regras de udev. Coloquei "um problema" entre parêntesis porque não é realmente um problema.

Isto torna-se simples de corrigir.

Como root, vamos remover esta regra do udev.

cd /etc/udev/rules.d

Aí, vamos encontrar um ficheiro chamado 10-blackberry.rules

É neste ficheiro que se encontra a regra que, ao colocar um blackberry, a aplicação bcharge entra em funcionamento, não deixando o cartão de memória ser reconhecido e montar correctamente.

Movemos o ficheiro para a directoria anterior (não vamos apagar o ficheiro).

mv 10-blackberry.rules ../

Posteriormente, dizemos ao udev para tornar a ler as regras.

udevadm control –reload-rules

Podem desligar o BlackBerry e tornar a ligar que o cartão de memória já vai ser reconhecido e montado automaticamente.

 

Nov 24 10:14:26 localhost kernel: usb 1-3: USB disconnect, address 7

Nov 24 10:14:31 localhost kernel: usb 1-3: new high speed USB device using ehci_hcd and address 8

Nov 24 10:14:31 localhost kernel: usb 1-3: New USB device found, idVendor=0fca, idProduct=8004

Nov 24 10:14:31 localhost kernel: usb 1-3: New USB device strings: Mfr=1, Product=5, SerialNumber=3

Nov 24 10:14:31 localhost kernel: usb 1-3: Product: RIM Composite Device

Nov 24 10:14:31 localhost kernel: usb 1-3: Manufacturer: Research In Motion

Nov 24 10:14:31 localhost kernel: usb 1-3: SerialNumber: E2388D276808D284F38B1A5E1259EFDCF770D8DD

Nov 24 10:14:31 localhost kernel: scsi10 : usb-storage 1-3:1.1

Nov 24 10:14:36 localhost kernel: scsi 10:0:0:0: Direct-Access     RIM      BlackBerry SD    0002 PQ: 0 ANSI: 0 CCS

Nov 24 10:14:36 localhost kernel: sd 10:0:0:0: Attached scsi generic sg2 type 0

Nov 24 10:14:36 localhost kernel: sd 10:0:0:0: [sdb] Attached SCSI removable disk

Nov 24 10:14:39 localhost kernel: sd 10:0:0:0: [sdb] 15523840 512-byte logical blocks: (7.94 GB/7.40 GiB)

Nov 24 10:14:39 localhost kernel: sd 10:0:0:0: [sdb] Assuming drive cache: write through

Nov 24 10:14:39 localhost kernel: sd 10:0:0:0: [sdb] Assuming drive cache: write through

Nov 24 10:14:39 localhost kernel: sdb: sdb1

 
Esta solução não é optima, mas funciona. O BlackBerry carrega na mesma e podemos mexer à vontade no cartão de memória.
 
Funciona para CM15, mas em qualquer outra distribuição de Linux também funcionará. Se o ficheiro não existir, basta procurarem pela palavra bcharge:
 
grep -i bcharge *
 
o -i signifca não ligar à capitalização das letras
e deverá aparecer algum resultado, como o nome do ficheiro onde se encontra:
 
10-blackberry.rules:# Note: the following rules may appear wasteful, in that bcharge is run
10-blackberry.rules:#       CONFIG_USB_SUSPEND enabled.  The second time bcharge is run
10-blackberry.rules: RUN="/usr/sbin/bcharge -p %p",
10-blackberry.rules: RUN="/usr/sbin/bcharge"
10-blackberry.rules: RUN="/usr/sbin/bcharge -p %p"
10-blackberry.rules: RUN="/usr/sbin/bcharge -p %p"
10-blackberry.rules: RUN="/usr/sbin/bcharge -p %p"
 
Assim que identificarem o ficheiro, basta move-lo para outra localização e efectuarem o reload das regras do udev.
 
 

SVN (Subversion) Proxy Settings

Para quem usa subversion para retirar ficheiros, ou mesmo efectuar o upload de ficheiros, e está por trás de um proxy, não consegue.

Existe uma forma em Linux de usar um proxy, que é exportar variáveis de ambiente:

export http_proxy=http://proxy.dominio.com:porta/

export ftp_proxy=http://proxy.dominio.com:porta/

e colocar estas variáveis no ~/.bashrc para o utilizador ou em /etc/profile para o sistema. Embora funcione para muitas aplicações de linhas de comandos, o subversion (svn) não usa.

Assim, é necessário um pequeno truque para "obrigar" o subversion a usar um proxy.

Basta editar o ficheiro servers e configurar as variáveis com os valores correctos.

vi ~/.subversion/servers

[global]
http-proxy-exceptions = *.dominio.com
http-proxy-host = proxy.dominio.com
http-proxy-port = porta_proxy

Guardar e experimentar novamente. Desta vez o subversion já irá funcionar.

No mesmo ficheiro também encontram variáveis para preencher caso precisem de um utilizador e uma password

Referências:

http://blogs.sun.com/venu/entry/svn_proxy_settings

Problemas com apt-get e proxy (squid)

Recentemente começei a usar o apt para actualizar a minha distribuição (Caixa Mágica 15) e instalar pacotes, e desde então começei a ter problemas quando fazia apt-get update (para actualizar a listagem de pacotes), devolvendo-me sempre isto:

Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main32 pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main32_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib32 pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib32_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free_updates pkglist
  Connection failed
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free32 pkglist
  The http server sent an invalid reply header
Hit http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free32_updates pkglist
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib pkglist
  The http server sent an invalid reply header

Pensei que fosse alguma coisa com os mirrors da Caixa Mágica, mas em minha casa não acontece nada disto. No meu local de trabalho uso um proxy (Squid 3.1) e pensei que fosse este o problema, então comecei a investigar.

Existe uma opção no Squid que controla como gerir um tipo de pedido – "If-Modified-Since" – dos clientes. Por defeito, o Squid responde baseado na idade do objecto que tem na cache e não no objecto real na página web. Os comentários no ficheiro de configuração do squid indicam que alguns clientes usam pedidos IMS quando pedem uma actualização. – APT é um desses clientes.

Assim, é necessário alterar uma opção no squid para que este, quando detecte um pedido destes, envie a ultima versão do objecto pedido.

Um pedido IMS – If-Modified-Since" é um mecanismo de revalidação na especificação 1.1 do HTTP que garante que os dados em cache estão actualizados.

vi /etc/squid/squid.conf

e acrescentar/alterar

refresh_all_ims on

squid -k reconfigure

Desta forma, os erros já não aparecem.

 

Referências:

http://veejoe.net/blog/2009/05/trouble-with-apt-get-and-squid/

http://www.squid-cache.org/Doc/config/refresh_all_ims/

http://www.cisco.com/en/US/docs/internetworking/technology/handbook/Net_caching.html

Instalar Remmina em CM15

Remmina é uma aplicação cliente de desktop remoto, em GTK, que permite ligar-se a outros computadores por uma variedade de protocolos – VNC, RDESKTOP, NX, XDMCP – e até pode usar tuneis de SSH. É uma das melhores aplicações para administração remota que conheço.

Visitem o site do Remmina para mais informações.Remmina main window

O CM15 não tem este pacote disponivel nos repositorios. Assim, temos que o instalar nós mesmos.

Para começar, efectuamos o download do Remmina desde o site, ou vamos buscar a ultima versão do Remmina através de Subversion:

svn co https://remmina.svn.sourceforge.net/svnroot/remmina/ remmina

Antes de poder configurar e instalar, precisamos de instalar alguns pacotes na nossa box.

Segundo o site do Remmina, precisamos de alguns pacotes:

  • GTK+ 2.0 (>=2.16) required
  • libpthread for multi-threaded feature
  • libssh (>=0.4) for all SSH related feature
  • libavahi-ui for Avahi feature
  • libvte for terminal feature
  • libgcrypt for password encryption
  • libunique for managing unique process
  • (Para os Plugins)
  • FreeRDP libraries and plugins for RDP protocol
  • zlib (required by libvncclient) for VNC protocol
  • libjpeg (required by libvncclient) for VNC protocol
  • libgnutls (required by libvncclient) for VNC protocol
  • libtelepathy-glib (>= 0.9.0) for Telepathy feature
  • libssh (>=0.4) for NX protocol
  • nxproxy for NX protocol (runtime dependency only)
  • Xephyr for XDMCP protocol (runtime dependency only)
  • (Para Gnome)
  • libpanelapplet-2.0 (>= 2.20) required
  • libavahi-client for Avahi feature
  • (Para XFCE)
  • libxfce4util-1.0 (>= 4.3.99.2) required
  • libxfce4panel-1.0 (>= 4.3.99.2) required
  • libavahi-client for Avahi feature

Alguns destes já se encontram na nossa instalação do CM15, mas outros não. Precisamos de alguns pacotes de desenvolvimento. Numa consola, como root, executar:

Nota: A minha instalação é a 64bits

apt-get install apt-get install lib64gtk+-devel lib64avahi-ui-devel lib64vte-devel lib64gcrypt-devel lib64unique-devel lib64jpeg-devel lib64ssh-devel libgnutls-devel lib64vte9 lib64unique0 lib64avahi-ui1

zlib1  gnutls nxproxy x11-server-xephyr lib64avahi-client3

Estas são as dependências necessárias para o Remmina.

Agora, vamos instalar alguns pacotes necessários à compilação de ficheiros na nossa máquina.

apt-get install gcc automake libtool intltool autogen

Agora, já temos tudo o que precisamos para compilar o Remmina.

(os seguintes passos não têm que ser como root)

cd remmina/branches/0.7/remmina

Agora, executamos o autogen.sh para gerar os ficheiros de configuração

sh autogen.sh

Se tudo correu bem, teremos o ficheiro configure

Vamos configurar os pacotes

./configure

O programa de configuração vai agora procurar as dependências necessárias ao remmina.

Se tudo correu bem, no final da configuração, iremos ter o seguinte resultado:

Remmina configure result:

* NLS support: yes
* VNC support: yes
* Multi-threaded support: yes

* SSH support: yes
* Avahi support: yes
* Terminal support: yes
* Encryption support: yes
* Unique-App support: yes

(os proximos passos já têm que ser como root)

Agora, só temos que fazer make e make install

make && make install

E pronto, já temos uma das melhores aplicações de administração remota instaladas.

 

Gnome suporte

A instalação em cima já coloca os icons do Remmina no painel do gnome, mas também existe uma pasta chamada remmina-gnome que deve trazer funcionalidades em Gnome.

cd remmina/branches/0.7/remmina-gnome/

 

 

 

Vamos instalar pacotes que precisamos:

apt-get install lib64panel-applet-2-devel lib64avahi-client-devel

sh autogen.sh

./configure

No final temos o seguinte resumo:

Remmina-Gnome configure result:

* Remmina main program: yes
* NLS support: yes
* Avahi support: yes

make && make install

E já temos o suporte gnome instalado.

Open Source Development

IBM DB2

o programa DB2 on Campus é um projecto da IBM para promover o uso do DB2 em universidades. Ao abrigo deste programa muita informação é disponibilizada e consequentemente, livros.

Para quem está interessado em aprender novos temas e aprofundar alguns conhecimentos, a IBM disponibiliza no wiki da DB2 on Campus alguns livros gratuitos sobre os mais variados temas, não só sobre o DB2.

Foi nesse espaço que encontrei este livro: Open Source Development. Achei este livro muito interessante porque fala de assuntos de forma objectiva e simples que abordei na cadeira de Engenharia de Software durante o meu mestrado em MOSS.

A IBM é uma das grande pioneiras do Open Source, disponibilizando muitos recursos online e gratuitos.

Um desses casos são os redbooks e o site developerWorks.

Deviam explorar.

Converter HTML directamente para PDF – xhtml2pdf

Muitas vezes, quem trabalha em informática, pode ter a necessidade de realizar pequenos scripts que convertam uma página HTML directamente para um PDF para depois poder imprimir automáticamente (num cron) ou enviar por email, etc…

Existe um pequeno programinha, extraordinário, xhtml2pdf, que faz este trabalho fantasticamente.

XHTML2PDF é um conversor para HTML/XHTML e CSS e um pacote para Python.

Este programa, além de ser muito bom, aceita TAGS directamente inseridas no HTML para poder formatar o PDF da maneira que queiramos. Aceita TAGS conhecidas de CSS para realizar essa tarefa. Leiam adocumentação para saberem mais.

A instalação é muito simples,mas tem algumas dependências que precisamos de resolver.

Pacotes necessários:

ReportlabToolkit 2.1+ (obrigatório)

html5lib 0.11.1+ (obrigatório)

pyPdf 1.11+ (opcional)

PIL 1.1.6+ (opcional)

Esta instalação foi efectuada num Centos 5

Instalar o PIL

Instamos o PIL (python-imaging) com o YUM, pois este encontra-se nos repositorios do Centos

yum install python-imaging

Instalar o ReportLab

Para instalar o ReportLab, efectuamos o download e compilamos nós mesmos.

wget http://www.reportlab.org/ftp/ReportLab_2_3.tar.gz

tar -zxvf ReportLab_2_3.tar.gz

cd ReportLab_2_3

Para instalar um pacote python é a coisa mais simples:

python setup.py install (o pacote deverá ter um ficheiro chamado setup.py)

No meu caso, ele queixou-se que não tinha o módulo setuptools instalado, e foi preciso instalar antes de continuar com a instalação. Nada mais simples:

yum install python-setuptools

Assim que instalei, já pude continuar

python setup.py install

Instalar o Html5Lib

Para Instalar o html5lib, temos que efectuar o download e compilar nós mesmos, pois não se encontra nos repositorios.

wget  http://html5lib.googlecode.com/files/html5lib-0.11.1.zip

unzip html5lib-0.11.1.zip

cd html5lib-0.11.1

python setup.py install

Instalar o pyPdf

wget  http://pybrary.net/pyPdf/pyPdf-1.12.tar.gz

tar -zxvf pyPdf-1.12.tar.gz

cd pyPdf-1.12

python setup.py install

e neste momento já temos todas as dependências resolvidas. Vamos instalar o xhtml2pdf.

Agora, temos duas formas:

ou não efectuamos o download do pacote e usamos a aplicação easy_install, que se vai encarregar de efectuar o download

easy_install pisa

ou efectuamos o download e instalamos normalmente:

Efectuar o download do PISA (nome do pacote) daqui:  http://pypi.python.org/pypi/pisa/

tar -zxvf pisa-3.0.32.tar.gz

cd pisa-3.0.32

python setup.py install

Desta forma, já temos o xhtml2pdf instalado.

Podem começar a converter as vossas páginas html em PDF’s facilmente com esta aplicação.

Hello world! Again….

Olá a todos… De novo !

Como podem ver, existem posts que são datados do inicio do ano e já vêm do meu antigo blog, baseado em Serendipity….

Formatei o servidor para o colocar com máquinas virtuais, baseadas em KVM (Kernel-based Virtual Machine). É simplesmente fantástico e muito simples de trabalhar. Tem todas as funcionalidades do vmware esxi e é Open Source.

O problema foi que, quando fiz backup das bases de dados do MySQL, fiz o backup da base de dados errada… e aqui estou… todos os posts que tinha após ter migrado para o WordPress, a base de dados mudou, mas eu esqueci-me… Não vou conseguir report o que tinha e vai ter que ser tudo feito de novo. As minhas desculpas.

DNS Performance Test

Muitas vezes discuto com colegas meus como seria o ataque perfeito à Internet. Muitos falam em DOS (Denial Of Service) a uns quantos servidores mais utilizados, outros seria ARP Poison, etc…

Existe uma pequena proeza que, se realizada, terminava com a Internet. Um ataque ao DNS…

(more…)