Linux… e mais coisas

Um espaço para dizer um pouco mais sobre coisas interessantes…

Arquivo da categoria ‘Ubuntu’

Ativando a câmera Microdia do Mirax mm6100 no Debian Linux

Publicado por Fábio Emilio Costa em 21 21UTC Outubro 21UTC 2008

Olá!

Se vocês acompanham esse blog a um certo tempo, devem se lembrar de quando falei sobre a instalação do Debian no meu notebook Mirax mm6100, e de como na época falei que a Webcam não funcionava. De boa, nunca senti muita falta da Webcam, mas é muito chato você ficar com um hardware parado no seu notebook. Então, a algum tempo atrás, o Silveira Neto divulgou no Br-Linux.org como instalar um driver alternativo para as Webcam Microdia como a do meu notebook.
Bem, para ser um pouco repetitivo, vou colocar os passos aqui também, embora nos links anteriores tenha-se um passo a passo mais detalhado:

Baixando e compilando:

Você irá precisar instalar pacotes básicos de compilação (build-essentials), os cabeçalhos do kernel (kernel-header) que você tá rodando e o git. Para isso, como root ou usando sudo, digite (no Debian/Ubuntu):

apt-get install kernel-header-`uname -r`kernel-package git-core gitk git-gui git-doc curl ctags build-essential

Com esse comando, você já estará instalando todo o necessário para compilar o driver alternativo. PS: Se você estiver usando o driver gspca, pode ser interessante, ainda que não obrigatório, a remoção ou desabilitação do mesmo. Para desabilitar nos testes, como root digite rmmod gspca. Para remover o driver, digite dpkg -r gspca-module-`uname -r`.
Primeiro, vamos obter os sources do driver. Ele ainda não possui um tarball para distribuição, portanto vamos ter que buscar o driver no repositório git do mesmo. Para isso, digite:

git clone http://repo.or.cz/r/microdia.git

Esse comando não exige root, portanto não exige sudo ou su.
Uma vez terminado a cópia dos arquivos, você terá um diretório microdia dentro do diretório onde você estava. Entre nesse diretório e dispare o comando make. Esse comando também não precisa de root, portanto não se preocupe. A compilação é rápida e não demanda nada de especial (alguns problemas podem aparecer em casos específicos, sendo que sugiro que procure o site do projeto no Google Groups para maiores informações).
Se você não recebeu nenhum erro, então você deverá ter nesse diretório microdia um arquivo com o nome microdia.ko. Esse é o driver que você irá usar… Mas calma, antes de instalá-lo para valer vamos dar uma checada e ver se está tudo OK.

Testando o driver:

Bem, agora que você compilou o driver e já tem um arquivo microdia.ko, é hora de testar o driver e vê se está OK. Acione a kill switch da Webcam e dê uma checada no dmesg para ver se o dispositivo foi localizado. Uma vez localizado podemos testar a Webcam. Ela deve se apresentar como USB2.0 Webcam ou similar, mas pode ser que varie conforme o caso. O importante é ler o dmesg e ver se o hardware foi localizado. Calma que isso só será “necessário” dessa vez (embora dar uma olhada no caso de problemas seja altamente recomendável).
Ativada a kill switch, podemos carregar o driver com o comando (como root, pois estamos adicionando um módulo no kernel, o que demanda poderes de super-usuário):

insmod ./microdia.ko

Caso esteja tudo OK, seu dmesg terá as seguintes linhas (ou similares):

microdia: Microdia USB2.0 webcam driver startup
microdia: Microdia USB2.0 Webcam - Product ID 6260.
microdia: Release: 0100
microdia: Number of interfaces : 1
microdia: Microdia USB2.0 Camera is now controlling video device /dev/video0
usbcore: registered new interface driver usb_microdia_driver
microdia: v0.0.0 : Microdia USB Video Camera

Pode ser que seu driver não rode e dê a seguinte mensagem:

insmod: error inserting 'microdia.ko': -1 Unknown symbol in module

Não precisa se desesperar – é que está faltando alguns módulos que são dependências do microdia.ko. Basta então adicioná-los com

modprobe videodev
modprobe compat-ioctl32

E tentar novamente a carga do driver. Existem outros problemas que podem ocorrer. Caso ocorram, dê uma consultada no processo de instalação no site do projeto Microdia no Google Groups.
Agora, vamos ao teste propriamente dito. Tudo feito, a câmera não apresentando nada no insmod (o que é bom), execute o mplayer com:

mplayer tv:// -tv driver=v4l2:width=640:height=480:fps=25:device=/dev/video0 -vo x11

Se tudo correu bem, você deve estar vendo sua própria imagem de frente corretamente. Se não estiver vendo nada, feche o mplayer (CTRL+C no terminal resolve), acione novamente a kill switch e tente novamente carregar o mplayer. Caso ainda assim não funcione, provavelmente você deverá dar uma olhada no site do projeto no Google Groups.
Pode acontecer de a imagem aparecer de cabeça para baixo… Não se preocupe, falaremos disso logo. No momento, considere que está tudo bem. Eu mesmo na primeira compilação desse driver tive problemas de imagem aparecendo de cabeça para baixo. Por enquanto, simplesmente ignore esse fato e vamos para a instalação do driver.

Instalando o driver:

A instalação do driver é razoavelmente simples e opcional, mas acho interessante se você não quiser ter que levantar esse driver toda vez após rebootar sua máquina. Como root, digite os seguintes comandos:

strip -g microdia.ko
cp microdia.ko /lib/modules/`uname
-r`/kernel/drivers/media/video/usbvideo/
depmod -a

O comando strip pode ser dado sem root, portanto se você tiver usando sudo (como no Ubuntu), não há nenhum problema em deixar o comando sem sudo. Esses comandos apenas limpam o driver de símbolos de depuração, diminuindo seu tamanho e necessidade de memória, copiam o driver para o local apropriado dentro da estrutura de drivers do kernel e remapeia a estrutura do kernel para localizá-lo como parte da estrutura de drivers do kernel, de modo que os comandos de drivers (módulos) sejam apropriadamente usados.
Com isso, o driver deve estar instalado e funcionando normalmente…

Corrigindo a imagem de cabeça para baixo:

Ok… Disse anteriormente que pode acontecer de a imagem da Webcam aparecer de cabeça para baixo. Na realidade, é exatamente isso o que acontece com esse driver no Mirax mm6100. Antes de você se descabelar, vamos com calma: na lista de discussão do suporte a esse driver encontrei uma thread que dizia exatamente o que fazer nesse caso.
As versões mais atuais desse driver possuem três parâmetros que podem ser setados em 0 (desligado) e 1 (ligado), que são vflip (espelhamento vertical), hflip (espelhamento horizontal) e flip_detect (detecção da rotação da Webcam do notebook). No Mirax mm6100 a opção flip_detect não funcionou, portanto pode ser ignorada.
Se você instalou o driver, utilize o comando a seguir para fazer o teste do driver para ver se os parâmetros em questão ajudam.

modprobe microdia vflip=1 hflip=1

Se não instalou ainda o driver (o que é recomendável), utilize o comando a seguir, dentro do diretório microdia:

./insmod microdia.ko vflip=1 hflip=1

Pode ser necessário (na verdade sugere-se) o uso de rmmod microdia antes de tentar qualquer um dos comandos anteriores. Lembrando que todos esses comandos, incluindo o rmmod, demandam root.
Faça novamente o teste com o mplayer e verifique se a imagem está correta. Caso não esteja, vá setando os parâmetros apresentados até alcançar o ajuste adequado ao seu hardware. Lembre-se de usar rmmod antes de cada tentativa, de modo a “limpar” os ajustes anteriores ao descarregar o driver.
Assim que alcançar o ajuste ideal a sua Webcam, será necessário apenas editar um arquivo para que esses parâmetros sejam “gravados” no seu sistema para sempre serem adotados. Para isso, como root, abra seu editor de texto favoritos e abra o arquivo /etc/modprobe.d/aliases (ou, em algumas distros, o /etc/modprobe.conf) e acrescente ao final do mesmo o comando:

options microdia vflip=1 hflip=1

substituindo vflip=1 hflip=1 pelos ajustes adequados à sua Webcam.
Com isso, toda vez que você rebootar sua máquina, sua Webcam deverá estar corretamente configurada sempre que for usada.
A Webcam pode ser usada em qualquer programa que utilize a API Video4Linux (v4l), como o mplayer, cheese (para fotos e vídeos), amsn (mensageiro instantâneo) e afins. Cada programa possui seus ajustes, mas uma vez o driver esteja corretamente configurado, é tudo questão de ajustar corretamente as opções do programa.
Como nota final, em vários locais, inclusive nas documentações do site do projeto no Google Groups foi sugerido o uso do comando module-assistant install,prepare (m-a install,prepare para os íntimos) no Debian/Ubuntu. Não utilizei esse comando (desconhecia essa parte do processo) mas não tive problema. O uso ou não desse comando fica a seu critério, lembrando que esse comando exige root, pois manipula arquivos do kernel.

Powered by ScribeFire.

Enviado em Debian, Dicas, Free Software, Linux, Software Livre, Ubuntu | 2 Comentários »

Conectando o Nokia 6085 no Linux: Cartão de Memória e Memória Interna

Publicado por Fábio Emilio Costa em 16 16UTC Outubro 16UTC 2008

O celular Nokia 6085 foi um dos melhores celulares que a Nokia colocou em venda. Segundo a Nokia, algumas especificações são:
  • Flip com antena interna
  • GSM/EDGE 850/900/1800/1900 MHz
  • Display principal: LCD passivo CSTN de 128 x 160, 262 mil cores
  • Display externo: 96 x 68 FSTN, 2 cores Preto e Branco com LEDs azuis
  • Interface de usuário S40 com 3 teclas programáveis, deslizador de 4 direções, teclado ITU-T, teclas de volume e tecla de câmera
  • Viva-voz integrado
  • Câmera VGA com zoom digital de 4x
  • Rádio FM
  • 3 MB de memória livre do usuário, leitor de cartão de memória MicroSD com hot-swapping
  • Interface de carga de 2 mm
  • Conector Pop-PortTM (USB 1.1)
  • Standby ativo e interface de usuário aprimorada (Cher UI)
  • Bluetooth
  • Filmadora e reprodutor de vídeo
  • Reprodutor de música (MP3, MP4 AAC, AAC+, eAAC+)
  • Navegador XHTML sobre TCP/IP
  • MMS
  • Mensagens instantâneas
  • Comandos/ discagem de voz aprimorados (SIND)
  • Jogos e aplicativos Java MIDP2.0 pré-instalados
  • Streaming 3GPP
  • Sincronização local e remota (SyncML)
  • Temas que incluem papéis de parede & protetores de tela animados, esquemas de cor e toques
  • Teclas programáveis configuráveis pelo usuário
  • Calendário, lista de tarefas, notas
  • Despertador, Cronômetro de contagem regressiva

Comprei esse celular no final do ano passado (2007) com um preço bastante interessante e recursos versáteis. Possui compatibilidade Java MIDP 2.0, o que permite usar programas como o AnyRemote (controlador de computador via Bluetooth para Linux) e BarSnap (programa que permite a “leitura” de QR-Codes – códigos de barra bidimensionais usados para passar informações, como URLs, pequenos textos e afins) e seus recursos de áudio são razoáveis (seu maior problema é que a bateria vai para o ralo rapidamente se usar como MP3 Player). Como aceita toques em MP3, fica fácil configurar um toque simples e a transferência de dados via Bluetooth é muito interessante (já transmiti informações de e para meu Palm e meu notebook sem problemas).
Porém, um problema que eu tive foi que o mesmo não veio com o cabo, o que nunca me deu dor de cabeça. Mas, para facilitar as coisas, decidi comprar um cabo e investigar como conectar o Nokia 6085 ao notebook via cabo, usando Linux. Tudo aqui foi testado no Debian Lenny, mas deve funcionar no Ubuntu Gutsy e em qualquer boa distro atualizada.
Primeiro, cuidado ao comprar o cabo: em alguns casos tentarão de empurrar o cabo dos celulares Samsung. Fuja! Mesmo se for comprar um cabo genérico, procure pelos cabos CA-53 e CA-70 (que foi o que eu comprei). Se você tiver o fone de ouvido do 6085, o conector inferior é praticamente idêntico. Em alguns casos, ao encaixar o cabo pela primeira vez pode ser necessário forçar um pouquinho. Basta ter cuidado que ele encaixa normalmente.
Uma vez que o celular seja conectado ao cabo, ele irá mostrar uma tela perguntando o modo de conexão, com três opções: Transferência de Dados, Impressora e Fax e Modo Nokia. No caso, falaremos do primeiro e do último modo, que são os mais relacionados à transferência de arquivos de e para o celular.
O primeiro modo é o mais simples: basta selecionar o modo no celular que automaticamente o Linux irá reconhecer o celular como uma pendrive. No caso, esse modo é usado para transferir os dados de e para o cartão de memória MicroSD (TransFlash – seja lá o que isso quer dizer). A transferência é simples e pode ser feita como a cópia de dados normal de qualquer gerenciador. Ao terminar, lembre-se de utilizar uma opção de desmontagem do dispositivo (como a “Remover de Modo Seguro” do Konqueror / Dolphin no KDE 4.0).
O último modo é um pouco mais complexo, pois acessa a memória interna do celular (3 MB), que deveria ser acessível apenas via Bluetooth ou com o uso de um programa da Nokia para Windows. No caso, porém, alguma investigada e você descobre que na verdade existe um modo do Bluetooth chamado OBEX, que é usado para as transferências de dados, e que justamente esse modo é usado pelo programa da Nokia para se conectar ao celular via cabo. Então, procurando algumas informações na Net, cheguei a alguns tutoriais, que basicamente resumem o processo a (tudo deverá ser feito como root):

  • Instale os pacotes obex, obexfs e obxftp. Se desejar, também instale gnome-vfs-obexftp. No caso do Debian/Ubuntu, o comando é: sudo apt-get install obex obextool obexpushd obexfs obexftp gnome-vfs-obexftp;
  • Uma vez instalado os pacotes, crie um diretório /nokia (ou qualquer outro). Esse será o ponto de montagem da memória interna do celular;
  • Agora, carregue o módulo do FUSE (File User Space Environment) com modprobe fuse;
  • Monte a memória interna do celular com obexfs -u 0 /nokia/ (obs.: o parâmetro é um zero e não um O);
  • Depois, todos os processos de transferência de dados serão executados normalmente, usando os comandos de shell, como cp, rm, mv e afins. Após o término, desmonte o dispositivo com umount /nokia normalmente;
  • Atenção: não sei se é um bug no obexfs ou algo similar, mas se o seu filesystem estiver com locales para  UTF-8 (como no caso do Debian Lenny), você terá problemas com diretórios e arquivos que contenham acentos na memória do celular, uma ves que ela se encontra em Latin-1. Não sei como resolver esse problema ainda;

Para mais informações sobre esse tipo de processo, dê uma olhada no Janelas Quebradas e no De Tudo um Pouco.

Update: Esses truques funcionam normalmente com o celular Nokia N73

Powered by ScribeFire.

Enviado em Debian, Dicas, Free Software, Linux, Nokia 6085, Software Livre, Ubuntu | 9 Comentários »

Rápida: Renomeando pendrives no Linux

Publicado por Fábio Emilio Costa em 13 13UTC Agosto 13UTC 2008

Via Vinícius Cordeiro e Viva O Linux:
Uma das coisas mais difíceis de se fazer no Linux, por incrível que possa parecer, é renomear pendrives. Na realidade, existem dois pacotes básicos que o usuário deve instalar para poder renomear uma pendrive: o mtools (MS-DOS tools) e o nftsprogs (para NTFS). Iremos mostrar aqui o passo-a-passo para renomear pendrives Esse procedimento deve funcionar não apenas também com HDs externos, cartões de memória, MP3-Players e outros dispositivos similares.
O primeiro passo é descobrir onde está seu pendrive. Na linha de comando, digite mount (assim mesmo, sem parâmetros), ou pode ser também dmesg (se você souber detalhes sobre seu pendrive). Vamos usar o mount. Procure a linha onde está seu pendrive e anote o device usado (é o item da primeira coluna, normalmente será /dev/sdXY, onde X é uma letra seqüêncial representando o dispositivo e Y é um número seqüêncial que indica a partição dentro do dispositivo.)
Em seguida iremos “desmontar” o pendrive. Para isso, vá na linha de comando e, como root, digite umount /onde/está/meu/pendrive. Como sugestão, no KDE, abra o Konqueror e digite na barra de localização /media:. Clique com o botão direito do mouse e escolha “Desmontar”. Atenção: se usar esse método, não escolha a opção “Remover de Modo Seguro”, pois ela não apenas desmonta o pendrive, como também “remove” o device desejado.
OK… Agora que sabemos qual é o device e temos o pendrive “desmontado”, podemos nos preparar. Esse procedimento muda se o pendrive (ou partição do pendrive) estiver formatado em FAT ou NTFS.
No caso dos dispositivos NTFS basta usar, como root, o comando ntfslabel <device> <nome>, onde <device> é o dispositivo (ou partição) que se deseja renomear. Se deixar sem nome, o comando retorna o nome atual do pendrive.
No caso dos FAT, primeiro devemos fazer ver se ele faz uma checagem de problemas. Para isso, executamos o comando mlabel -i <device> -s :: , onde <device> é o dispositivo (ou partição) que se deseja renomear, que irá apresentar o nome atual do pendrive. Se você receber a mensagem Total number of sectors (7831520) not a multiple of sectors per track (63)!, você pode tranqüilamente ignorar esse problema usando o comando echo mtools_skip_check=1 >> ~/.mtoolsrc.
Agora, basta renomear o pendrive usando o comando mlabel -i <device> ::<label>, onde <device> é o dispositivo (ou partição) que se deseja renomear. Atenção: nos comandos mlabel apresentados anteriormente, não remova os ::. Eles indicam que iremos usar o dispositivo indicado ali. Caso contrário, seria necessário mapear esses dispositivos no arquivo .mtoolsrc.
Fonte original: RenameUSBDrive – Community Ubuntu Documentation

Enviado em Debian, Dicas, Linux, Rápidas, Ubuntu | Deixar um comentário »

Rápida: encodando vídeos para MP5 Player no Linux

Publicado por Fábio Emilio Costa em 24 24UTC Abril 24UTC 2008

A quase um ano atrás, escrevi um post sobre um MP4 que eu tinha e sobre como usá-lo com o Linux. Bem, a verdade é que ele acabou pifando e tive que comprar um outro para assistir meus animes (dá para fazer isso também usando o Nintendo DS que eu comprei, mas falarei sobre isso em uma outra oportunidade). No caso, acabei adquirindo um MP5 desses mais genéricos, que você compra nesses camelódromos e outlets no Brasil (no caso, a Sogo Plaza). Bonitinho, aceita cartões de memória e usa vários tipos de vídeos, entre eles o MP4 (provavelmente na formatação do iPod) e AVI (DivX), além do nativo 3GP (no qual ele também filma).

Na realidade, comprei esse MP5 mais pela simplicidade. De qualquer modo, gostei dele pois é simples operar ele no Linux. Ele monta automaticamente e os dispositivos são reconhecidos sem necessidades de hacks como o do meu antigo RockChip. Ele possui um conjunto de diretórios onde você deve dispor seus arquivos:

  • audio – Aqui você deve colocar seus arquivos de áudio em MP3. Arquivos gravados com o recurso de gravação de voz virão para cá em formato .WAV;
  • ebook – Aqui você pode colocar seus ebooks em TXT;
  • game – Nesse local você pode colocar ROMs de jogos de Nintendo 8 bits para jogar no MP5;
  • picture – Aqui ficam suas imagens, tanto as que você subiu quanto quaisquer fotos que você tirar com a câmera VGA do mesmo;
  • video – Aqui você guarda seus vídeos. Vídeos gravados com o recurso de filmagem do mesmo são salvos aqui em formato 3GP;

E para encodar vídeos? Os formatos utilizados são MP4, 3GP e AVI (DivX). Como sugestão pela facilidade, utilize o script zepo_encode (disponível nesse site). Esse script depende apenas do MPlayer e converte de qualquer formato aceito pelo MPlayer para AVI especialmente preparado para o MP5. Para usar o script, utilize o comando:

$ ./zepo_encode [entrada] [saída]

Onde saída recebe extensão automaticamente. Lembre-se de colocar o zepo_encode em um diretório do $PATH do ambiente e definir permissões de execução para o mesmo. Após converter, basta copiar o arquivo resultante para dentro do diretório video do MP5 ou de um cartão de memória. Com esse script e algum hack de Shell você pode encodar vários vídeos e colocá-los no MP5 enquanto você vai dormir… :P
Para que você tenha uma idéia de se essa dica lhe é útil, abaixo segue a saida do lsusb -v para ele:

Bus 002 Device 003: ID 04fc:5563 Sunplus Technology Co., Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0×04fc Sunplus Technology Co., Ltd
idProduct 0×5563
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1

Enviado em Debian, Dicas, Linux, Ubuntu | 2 Comentários »

MP4 xingling (chip RockChip) no Ubuntu/Debian

Publicado por Fábio Emilio Costa em 18 18UTC Agosto 18UTC 2007

Olá!

Alguns de vocês, como eu, devem ter comprado um MP4 xingling, baseado em RockChip (como o da foto ao lado) e percebido que, assim que você conecta ele no Linux, ele detecta, monta, mas logo em seguida desmonta com mensagens de remoção insegura. O mais estranho é que, se você tentar usar o mesmo em distros antigas, como Ubuntu Dapper Drake e Fedora Core 2, eles funcionam normalmente.
Bem, depois de muito xingar o bendito vendedor de MP4 xingling, resolvi usar a cabeça e o Google, até que cheguei nesse site, onde ele explica como montar esse MP4 no Linux. O problema é com o UDEV, e um ajuste no máximo de setores do dispositivo que tem que ser feito no Linux para que o dispositivo seja reconhecido normalmente. No caso, a solução proposta é a criação de um arquivo /etc/udev/rules.d com a seguinte linha:

BUS==”scsi”, SYSFS{vendor}==”RockChip”, RUN+=”/bin/sh -c ‘/bin/echo 128 > /sys/block/%k/device/max_sectors’”

Com isso, o problema de montar e desmontar o dispositivo passa.
Como dica adicional, em vários MP4s que usam AVI (XviD), você deve converter previamente os arquivos de vídeo para o formato adequado. Para isso, utilize o comando:

mencoder <origem> -ofps 22 -vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=550:max_bframes=0:quant_type=h263:me_quality=4 -oac lavc -lavcopts acodec=mp2:abitrate=128 -o <destino>

Perceba as opções de scale e expand. Ajuste para o tamanho de imagem adequado. Além disso, corrija as opções de áudio em acodec e abitrate. Normalmente todo MP4 trás um vídeo de exemplo. Clique com o botão direito no mesmo e anote as opções de vídeo do mesmo.

Powered by ScribeFire.

Enviado em Debian, Dicas, Linux, Software Livre, Ubuntu | 14 Comentários »