Ubuntu no ASUS K45VM

Faz muito tempo que não posto nada no meu blog, e quem me conhece sabe o porque… Partciularmente não gosto de postar nada que seja simplesmente “por postar”. 

Recentemente, troquei meu antigo notebook STi IS 1214 (que substituiu meu velho MIRAX mm6610) por um ASUS K45VM-VX105M, em especial por causa de um curso que estou fazendo online que exige o uso de uma VM que estava sobrecarregando o velho STi.

Essa máquina é uma máquina Parruda, com as seguintes especificações:

  • Processador: Core i7-3610QM (2.30 Ghz);
  • Memória: 8 GB;
  • HD: 500 GB;
  • USBs: 1×2.0, 2×3.0;
  • Vídeo: nVidia GeForce GT 430M (2GB de RAM) +  Intel 3rd Gen Core processor Graphics Controller (Optimus system)
  • Sistema Operacional: Windows 7 Home Basic 64 bit
  • HDMI: 1;

Portanto, uma máquina potente, para aplicações como desenvolvimento e para rodar jogos bastante razoáveis, como os que estão vindo aí com o Steam para Linux. Mas claramente meu objetivo é usar o Linux. Vamos então falar sobre como instalar o Linux no mesmo. Por segurança, o instalaremos em dual boot, uma vez que essa máquina possui o UEFI (Unified Extensible Firmware Interface), que vem substituindo o antigo sistema baseado no BIOS (chamada de legacy). 

Para começar, vamos ao básico: suba no Windows (sim, vamos começar pelo Windows…) e dê uma bela desfragmentada na máquina (em especial na partição principal do Windows). Além disso, por via das dúvdias, gere os discos de recuperação usando a ferramenta AI Recovery Burner que vem instalada (pode ser útil no caso de você apagar por acidente sua partição Recovery ou Windows ou, em casos extremos, a partição EFI boot do sistema). Normalmente são cinco discos. Aproveite e baixe o Ubuntu 64 bits e  grave-o em DVD ou ainda gere um USB bootável conforme as instruções na Net.

Reboote a máquina com o DVD ou pendrive na máquina e mande ele subir. Mande ele ir para o modo de LiveCD, não diretamente para o modo de instalação (você vai precisar realizar algumas tarefas com ele em modo de LiveCD a posteriori). Tão logo o LiveCD tenha subido, inicialize o instalador, e escolha a opção de Particionamento avançado. Selecione a partição onde fica a NTFS geral e apague-a, em seguida redimencione a partição principal NTFS para os valores que você deseje (aconselho em torno de 100GB para o Windows, pois pode ser que vocẽ acabe precisando de algum software específico). Enfim, não apague NENHUMA outra partição, pois pode comprometer coisas que não deve…  Em especial, atente para as partições com labels SYSTEM, OS e Recovery, SYTEM e Recovery não devem ser apagadas, enquanto OS é a que será dimensionada. Depois do redimensionamento ser confirmado (vai demorar um pouco) defina o esquema de particionamento que você desejar e continue a instalação do Ubuntu como normalmente. Porém, ao terminar de instalar os pacotes e tudo o mais, NÃO REBOOTE AINDA! 

Vamos resolver o primeiro problema, que é fazer o UEFI enxergar o Ubuntu… Para isso, você vai precisar de um programa chamado Boot Repair, que você irá instalar ainda em LiveCD… Abra um terminal, clicando no ícone do Ubuntu no canto da interface gráfica e digitando Terminal. Siga as seguintes instruções para adicionar e instalar o Boot Repair:

Boot-Repair – Community Ubuntu Documentation

  • sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
  • sudo apt-get install -y boot-repair && boot-repair

Em seguida, siga todas as instruções da página Boot Repair, clique no botão Configurações Recomendadas e faça tudo como o programa sugerir. Em alguns momentos, você precisará digitar comandos em terminal: digite-os exatamente como o programa sugerir. Após o Boot Repair ser encerrado, você pode então rebootar a máquina e, tudo tendo corrido bem, você será capaz de subir um GRUB corretamente configurado. Use Windows 7 UEFI para inicializar o Windows 7. Haverá uma demora adicional nesse momento devido ao chkdisk provocado pelo redimensionamento da partição Windows… Mas tudo correndo bem, você irá receber o Windows… Reinicie a máquina e suba o Ubuntu… A partir daqui, você pode fazer todo o postinstall segundo qualquer site indica (particularmente recomendo esse). Não vamos nos focar em cada detalhe,mas sim em algumas coisas que você precisará fazer para ter um ambiente estável e funcional…

Primeiro, vamos instalar o xorg-edgers:

UbuntuUpdates – PPA: xorg-edgers

  • sudo add-apt-repository ppa:xorg-edgers/ppa
  • sudo apt-get update

Antes de seguir adiante, porém, instale um outro window manager (aconselho o KDE), pois de imediato você terá problemas do Unity parar de funcionar como deve. Por isso, vá para o KDE (o lightdm continuará funcionando normalmente). Escolha o KDE e passe para ele e atualize todos os pacotes. Nesse momento, seu Unity parará de funcionar… Você precisará instalar o pacote compizconfig-settings-manager, como abaixo:

drivers – Unity Doesn’t run after upgrading via xorg-edgers – Ask Ubuntu

  • sudo apt-get install compizconfig-settings-manager

Agora, seu Unity funcionará normalmente. Porém, ainda terá um problema… Sua placa nVidia estará “desativada”: na verdade, isso se deve ao sistema optimus da nVidia, onde (no Windows) os jogos solicitam a placa nVidia conforme suas necessidades. No Linux, essa funcionalidade em princípio está “desativada”, mas é possível ativá-la por meio do pacote bumblebee. Instale-o usando seu gerenciador favorito de pacotes. Uma vez instalado, você pode usar o : comando optirun no shell do Linux, seguido pelo programa que você desejar (por exemplo, optirun /usr/local/games/Shatter/Shatter.bin.x86), que fará com que o jogo funcionará na nVidia (não se preocupe que o próprio Ubuntu já instala os drivers corretos para isso). Considerando todos os jogos que testei, apenas o jogo Anomaly (parte do Humble Bundle For Android 3) demandou OBRIGATORIAMENTE o uso de optirun. ATENÇÃO: apesar de tudo, não é recomendável o uso do optirun para qualquer aplicação, pois isso irá “derreter” a duração da sua bateria. A placa Intel consegue dar conta do recado para a grande maioria das aplicações: coisas como reprodução de vídeos e afins. Apenas alguns jogos demandam esse tipo de uso.

Em um sumário, podemos dizer que, à exceção dessas coisas que disse nesse post, não existe nada que impeça o uso do Linux nessa máquina… Uma máquina muito poderosa, que funciona muito bem… Posso afirmar que todo o hardware dessa máquina é funcional sob linux, à exceção do HDMI (que não testei). O USB 3.0 tem uma boa performance. Não tive nenhum tipo de problema, com uma grande quantidade de dispositivos USB, como HDs externos, gravadores de DVD externos, hubs, etc… Se vocẽ está pensando em adquirir esse equipamento, não tenha medo, pois ela funciona muito bem.

Anúncios

Convertendo vídeos do Decodificador de TV Digital/PVR LB-SAT LBDTV10T para AVI no Linux

Com o surgimento da TV Digital no Brasil, no seu padrão ISDB-Tb (ou ISDB-International), vários conversores estão sendo vendidos a preços interessantes com a mais diversa gama de recursos. Um muito popular é o recurso de PVR (Personal Video Recorder – Gravador Pessoal de Vídeo), onde o aparelho grava em um disco rígido externo ou pendrive à programação de TV, como era o caso nos antigos videocassetes. No caso, iremos falar do decodificador LBDTV10T, da empresa LBSat. Esse é um produto a um preço razoável e que pode ser encontrado em boas casas especializadas em equipamento de TV (no caso, comprei em uma loja da Rua Vitória, uma das travessas da Santa Efigênia), e possui as seguintes características.

Características:

  • HDTV e SDTV
  • Instalação automática de canais
  • Menu na tela (OSD) – facilita a configuração do aparelho.
  • Saída HDMI para imagens em alta definição e áudio digital
  • Saídas S-Video, Vídeo Componente, vídeo e áudio estéreo
  • Saída de áudio digital óptica e SPDIF
  • EPG (Guia de Programação Eletrônica) Permite visualizar informações sobre os programas da TV. (Este recurso depende da transmissão pela emissora)
  • Programação de canais favoritos
  • Sintonia automática UHF para TV Digital – Canais 7 ao 69
  • Controle Remoto multifunção
  • Ajustes de Áudio / Vídeo / Volume
  • Seleção automática de voltagem – entre 100 e 240 Vac
  • Idiomas do menu: Português

Observações:
Antes de comprar o conversor, certifique-se de que a sua região já recebe as transmissões da TV Digital. Para captar o sinal digital corretamente é necessária a utilização de uma antena UHF, interna ou externa. A captação é restrita aos sinais da TV aberta, não incluindo, portanto, os sinais de TV por assinatura.
Especificações:

  • Resolução de vídeo : 1080i / 720p / 576i
  • Conexão USB para : MP-3, MP-4, Fotos. Através dela é possível reproduzir arquivos de músicas em MP-3, de vídeo MPEG-2, MPEG-4, e exibir arquivos de fotos JPEG.
  • Formatos de Tela : 16:9 e 4:3

É ótimo poder gravar vídeos em um HD externo, ainda mais se pensarmos que esses arquivos são acessíveis pelo computador como arquivos normais de vídeo. O problema é que a maior parte dos decodificadores (esse incluído) gravam o stream DTV recebido da antena diretamente (como se usasse um tee entre a saídea de vídeo e um arquivo no HD externo), o que envolve formatos proprietátios estranhos e convenções um pouco complexas. Mas com a ajuda do Google e do pessoal do Clube do LBDTV10T no HT-Fórum. Ainda não foi possível automatizar o processo devido a alguns problemas com o arquivo do decodificador, em especial na parte de áudio, mas tentarei fazer o melhor possível para expĺicar detalhadamente o processso de modo que você possa converter adequadamente os seus vídeos para usá-los no computador.
Esse tutorial foi elaborado em um Intel Core 2 Duo 2GHz, 3GB de RAM, 320 GB de disco, Ubuntu Linux Karmic Koala (9.10), com o repositório Medibuntu original e todos os pacotes de vídeos e áudio, incluindo os non-free e restricted. Você precisará ter instalado mencoder, mplayer, VLC e ffmpeg. Uma vez dito isso, vamos começar o processo.

1-) Encontrando o vídeo no disco e preparando-o para codificação

A primeira parte é encontrar e prepara o vídeo. Nesse caso, existe apenas uma sugestão: limpe o disco pelo decodificador (MENU -> Meu de Função -> Função PVR -> Formatar HDD). Caso contrário, você terá que descobrir o arquivo em meio aos diversos vídeos gravados e o modo como os vídeos são nomeados internamente pelo decodificador não ajuda. Os arquivos ficam gravados em uma pasta dentro do HD chamada PVR, em diretórios com o nome PVRXXXXX, (onde X são números hexadecimais), Dentro dessas pastas, existem pastas ~DATA/, onde vários arquivos DATAXX.trp (onde X são números normais). Esses arquivos são as várias partes do vídeo gravadas pelo decodificador. Isso ocorre pois, como ele formata os discos em FAT32 para maior eficiência, o tamanho máximo do arquivo é de 2 GB. Quando esse valor é superado, o decodificador cria um novo arquivo. Nesse caso, iremos fundir os arquivos com o seguinte comando em um terminal, dentro da pasta ~DATA/ do vídeo: cat DATA00.trp DATA01.trp DATA02.trp ... DATAXX.trp > convert.trp. Caso o vídeo tenha menos partes, basta usar menos arquivos. É só lembrar de listar todos os arquivos DATAXX.trp nesse comando. PS: não faça isso no disco do PVR! Copie os arquivos para uma partição Ext3/ext4/NTFS ou outro formato de arquivos mais avançado, caso contrário continuará com a limitação do tamanho de arquivo e não funcionará. Um comando alternativo seria cat DATA*.trp > convert.trp, mas não existe como garantir a seqüência dos arquivos.
Trabalharemos no caso com esse arquivo convert.trp. Ele é um arquivo em um formato chamado Transport Stream (TS), um encapsulamento do MPEG-2 para a transmissão contínua de arquivos, E conterá vídeo e áudio. Esse tutorial não irá aprofundar nos mecanismos de extração de áudio, uma vez que o TS permite vários canais de áudio e isso é usado em especial em vídeos (onde você pode colocar um canal de áudio em porutugês e um no idioma nativo do programa). No caso, nos restringiremos ao uso mais simples possível desse tutorial.

2-) Demultiplexação do vídeo original:

Um problema com o sistema de TV Digital Brasileiro é que ele utiliza na camada de áudio o formato HE-AAC, que não é muito bem suportado tanto por FFMpeg quanto por MPlayer/mencoder, os principais mecanismos de codificaçaão/decodificação/reprodução de vídeos e áudios em Linux. Porém, ele funciona muito bem no VLC e isso permite que utilizemos tal player para codificar o áudio.
A primeira parte então é demultiplexar o vídeo original, ou seja, separar as partes de vídeo e áudo do TS para que possamos trabalhar calma e corretamente com cada arquivo sem maiores problemas. No final desse processso, teremos um arquivo .mp4 (MPEG-4 AVC H264) e um outro arquivo de áudio .aac (MPEG-4 HE-AAC). Para esse processo, utilizaremos o Mplayer. Abra um terminal e, dentro da pasta ~DATA/ do vídeo desejado, use os seguintes comandos:

mencoder convert.trp -o convertVideo.mp4 -demuxer lavf -nosound -ovc copy
mplayer -dumpaudio -dumpfile convertAudio.aac convert.trp

Nesse momento, podemos reproduzir o vídeo no sistema para (1) testar se a demulplexação foi bem-sucedida e (2) verificar se o arquivo é o desejado. Para isso, digite mplayer convertVideo.mp4 e veja se está OK. Tudo OK, vamos para começar a trabalhar os arquivos.

3-) Codificação do áudio:

Um problema de fazer o processo de demultiplexação dos arquivos é que precisaremos optar por formatos de vídeo e aúdio individuais dos formatos de vídeo desejados, sem podermos recorrer a templates e outros esquemas que associem o vídeo e áudio a um formato. No caso, utilizaremos o AVI com vídeo XviD e áudio MP3. Nesse processo, iremos codificar cada parte separadamente e depois iremos multiplexar os arquivos no arquivo final, juntando ambos os arquivos de vídeo e áudio em uma saída final.
No caso, vamos focar primeiro na codificação do áudio, que iremos fazer usando o VLC. Esse passo justamente é o que impede criar-se um script para automatizar a codificação do arquivo, uma vez que VLC é um programa em iterface gráfica. Então, vamos ao passo a passo:

  1. Abra o VLC e vá no menu Mídia e escolha a opção Converter/Salvar;
  2. Na Aba Arquivo, clique em Adicionar. Na caixa de diálogo de arquivos, vá até a pasta PVRXXXXX/~DATA do vídeo desejado e escolha o arquivo convertAudio.aac desse ~DATA;
  3. Clique em Converter/Salvar. Na janela que abrir, na seção Configurações, escolha o perfil “Áudio – MP3“;
  4. Copie o conteúdo de Fonte (onde deverá ter o caminho completo para o arquivo de origem convertAudio.aac) para Destino e modifique a extensão para .mp3, de modo que fique convertAudio.mp3;
  5. Clique em “Iniciar“. Se quiser verificar as configurações, clique no ícone de chave de fenda, que irá apresentar as informações de codificação de áudio;

Agora, aguarde o arquivo ser codificado pelo VLC. Se preferir, teste o arquivo de saída com mpg123 convertAudio.mp3. Tudo estando OK, é hora de codificar o vídeo e encerrar o serviço.

4-) Codificar o vídeo e obter o arquivo final:

Agora codificado o áudio de saída em MP3, é hora de codificar o vídeo para XviD. No caso, também usaremos o mencoder para codificar o arquivo de saída de vídeo. Para isso, use o seguinte comando em um terminal na pasta PVRXXXXX/~DATA do vídeo desejado:

mencoder -o convertVideo.avi -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=5000 -vf scale -zoom -xy 720 convertVideo.mp4

No caso, setei algumas poucas opções, entre elas -vf scale -zoom -xy 720, que permite codificar corretamente o vídeo para 720p. Se você preferir outras opções, dê uma pesquisada na Internet que configurações possam ser ajustadas para melhor resultado. O único objetivo aqui é obter uma saída de qualidade razoável. Atenção: esse comando foi baseado em sugestões para ripping de DVD obtidas em sites na Internet. Não sou um especialista em codificação de vídeos e não saberia informar a melhor combinação de parâmetros.
Se desejar, teste o vídeo no Mplayer como fizemos anteriormente. Uma vez tudo OK, você pode multiplexar (juntar) os arquivos de vídeo e áudio em um arquivo de saída com os comandos abaixo:

ffmpeg -i convertVideo.avi -i convertAudio.mp3 -acodec copy -vcodec copy convertFinal.avi
ou
mencoder -oac copy -ovc copy -o convertFinal.avi -audiofile convertAudio.mp3 convertVideo.avi

O resultado é o arquivo AVI com o nome convertFinal.avi. Esse arquivo é o resultado final, que poderá ser usado em outros formatos e gerar DVD e afins. Não vou entrar nesses méritos, mas muita documantação pode ser encontrada na Internet. Também não foi testado se a saída possui ou não perda de sincronismo entre o áudio e o vídeo. Aparentemente isso pode acontecer ocasionalmente e infelizmente não existe uma solução simples nesse caso. O que pode-se sugerir caso isso ocorra é ajustar-se o arquivo de áudio MP3, removendo alguns milisegundos de seu início e depois multiplexar novamente o vídeo.
Espero que esse tutorial tenha sido útil e que você possa obter o melhor de seu decodificador de TV Digital.

Remasterizando Debian/Ubuntu usando o Remastersys

Olá!

Sempre que tem um lançamento de uma nova versão do Ubuntu em geral é a mesma coisa: fazer backup, baixar o DVD, instalar, configurar repositórios, instalar aplicações adicionais, configurar, etc…
Isso já é um processo irritante em máquinas desktop caseiras que usem apenas aplicações de repositórios, mas as coisas se complicam ainda mais quando você envolve aplicações .deb fora de repositórios e, pior ainda, aplicações que possuem instaladores diferenciados, como Adobe AIR, Firefox e BrOffice.org (quando você os baixa de seus sites). Imagine ainda que você precise fazer instalações de muitas máquinas diferentes. Só por isso você tem uma noção do tempo que se perde ao instalar-se o Ubuntu a cada nova versão do mesmo.
Existem várias formas de criar-se LiveCDs/DVDs que são compatíveis com as mais diversas distros, inclusive por meio de customizações envolvendo o uso de chroot. O problema é que tais métodos não são fáceis e práticos para o dia-a-dia, uma vez que demandam conhecimento e estrutura mais avançados que o normal.
Existe, porém, uma ótima aplicação para Debian e Ubuntu chamada remastersys que permite executar o trabalho de remasterizar, ou seja, criar uma versão customizada do Debian/Ubuntu extremamente fácil, com a grande vantagem de não exigir processos complexos e salvar uma grande quantidade das customizações e informações de sistema do ambiente do usuário.

1-) Por quê customizar?

Ok, essa deve ser sua pergunta agora. Na realidade, existem várias vantagens:

  1. Gerar um pacote previamente configurado com aplicações, configurações e até mesmo aparência ajustada para instalar-se em um grande conjunto de equipamentos. Por exemplo, imagine que você tenha uma empresa e esteja instalando Ubuntu nas estações de trabalho. Ao invés de se dar ao trabalho de configurar uma a uma totalmente, você pode criar pacotes completos de aplicações básicas (pacote office, navegador, etc…) e restringir-se a instalar apenas aquelas aplicações mais específicas de cada estação, poupando tempo e pessoal;
  2. Em Desktops, é útil para criar “pontos de recuperação” em situações onde pode-se potencialmente “quebrar” o sistema (por exemplo, uma atualização ou adição de repositório). Caso algo de errado ocorra, basta-se queimar a ISO da “nova” distro e instalar-se tudo como estava antes.
  3. No caso de (2), quando você está em uma empresa, mesmo essa atividade pode ser custosa em tempo, então você poderá usar uma imagem criada de um desktop para criar uma máquina virtual e testar qualquer alteração necessária (à exceção de coisas como compatibilidade de kernels);
  4. Você pode ter uma espécie de “Estação Portável” que a pessoa poderia usar em Lan Houses ou afins, com as devidas configurações (por exemplo, estabelecer um túnel SSH ou coisas do gênero);

Essas são apenas algumas razões pelas quais você deveria usar o remastersys.

2-) Começando: uma primeira customização rápida e suja

OK, e agora, como customizar?
Primeiro, você deve ter um Ubuntu ou Debian instalado. O remastersys ainda é restrito a sistemas que possuam gerenciamento de pacotes baseados em DPKG/APT.
Segundo, você deve ter instalado todos os pacotes que você deseja, seja via gerenciador de pacotes, seja por compilação ou descompactação. No último caso, é bom lembrar que os pacotes deverão ser adicionados em pastas como /opt e /usr/bin, portanto você precisará de acesso ao superusuário root ou no mínimo ser capaz de executar comandos com sudo.
Primeira coisa, como superusuário, abra um editor de texto de sua preferência e abra o arquivo /etc/apt/source.list. Edite ele conforme indicado no site do remastersys, de acordo com sua distro, seja ela Ubuntu ou Debian. No meu caso, estou usando um Ubuntu Karmic Koala, então inseri as seguintes linhas, conforme indicado para o Ubuntu:

For Karmic, Lucid and Newer with grub2 – version 2.0.13-1 and up

# Remastersys
deb http://www.geekconnection.org/remastersys/repository karmic/

Uma vez que essa linha tenha sido adicionada ao /etc/apt/source.list (ou a linha adequada conforme indicado no site do remastersys), execute os seguintes comandos em um terminal:

sudo apt-get update && sudo apt-get install remastersys

O sistema poderá reclamar a ausência de autenticação do remastersys e ausência de PUBKEY (NO_PUBKEY). Não se preocupe agora: na Internet existem várias formas de resolver-se esse problema localizando-se a PUBKEY do desenvolvedor, então não entraremos nesse momento nesse detalhe. Se ele reclamar a falta de autenticação do remastersys, confirme a instalação. Em alguns instantes, o apt-get instalará o remastersys e suas dependências, definindo também configurações básicas. Por enquanto, aceitaremos elas.
Antes de continuar, é importante que exista espaço adequado nas partições onde ficam os diretórios /tmp e /home. É interessante as partições onde ambas as pastas ficam tenham em torno de 10 GB livres (se ambas estiverem na mesma partição, pode considerar-se por volta de 15 GB). Esses valores não possuem embasamento de documentação ou afins, sendo valores baseados na experiência.
Uma vez que o remastersys esteja instalado, vamos rodar ele. Ele precisa de permissões de super-usuário, portanto iremos usar:

sudo remastersys dist

O remastersys irá iniciar o processo de remasterização baixando pacotes adicionais, como o ubiquity (o programa instalador do Ubuntu), copiar os arquivos necessários e ignorar alguns (como os arquivos de pastas como /home, /tmp, /var e alguns muito específicos da máquina, como /etc/hostname, /etc/fstab e /boot/grub/menu.lst) e compactar eles em um arquivo que na realidade funciona como um filesystem que pode ser montado pela estrutura de LiveCD. Após isso, esse arquivo é juntado aos arquivos de boot básicos do LiveCD e uma ISO é gerada. Nesse momento muito provavelmente a ISO estará em /home/remastersys/remastersys com o nome de customdist.iso (mais para frente veremos como modificar esse nome conforme a necessidade). Copie esse arquivo e o arquivo customdist.iso.md5 que o acompanha (um checksum criado pelo remastersys que pode ser útil para quando o arquivo for enviado via Internet para checar sua integridade). Uma vez que esse arquivo seja copiado para outro local, você pode limpar os arquivos utilizados para a remasterização da do Ubuntu com o comando:

sudo remastersys dist

Você pode queimar a imagem ISO com sua ferramenta de gravação de CD e DVD predileta, independente do sistema operacional. Uma vez gravada a imagem ISO, você poderá rebootar sua máquina e usar ele como LiveCD. No caso, você perceberá que a distro ainda tem aparência de um LiveCD Ubuntu “vanilla” (padrão), mas que as aplicações estarão todas lá, assim como configurações globais do sistema (como listas de repositórios) e afins. Se preferir fazer um teste sem queimar mídia, utilize o VirtualBox para dar boot em uma máquina virtual usando o seu novo LiveCD.
Com isso, já temos um LiveCD útil para muitas coisas, mas podemos melhorar ainda mais isso.

3-) Melhorando as coisas: instalações globais

Uma das melhores formas que existem de melhorar as customizações em uma remasterização é usar instalações globais. Instalações globais dão uma grande vantagem de nos oferecer recursos que, no caso de ambientes multi-usuário, podem ser aproveitados por todos eles e que não precisam de instalação local (lembrando que o remastersys no modo dist, que estamos usando nesse texto, não coppia arquivos do /home).
Quase todos os programas Linux possuem formas de realizar instalações globais de extensões e adicionais. Os ambientes clássicos de Desktop, como KDE e GNOME possuem instalações globais para vários componentes, como fontes e papéis de parede. No caso, não vou me aprofundar em todos os casos, citando apenas algumas que eu testei. Para customizar com instalações globais programas que não serão citados aqui, a Internet está recheada de informações e uma pesquisa rápida no Google irá indicar as mais diversas opções.

Fontes truetype

Essa customização é uma das mais simples e pode ser feita sem necessidade de entrar no terminal. No caso, estarei mostrando o processo usando o KDE. Para GNOME, o processo é similar:
Entre no Centro de Controle do KDE (navegue nos menus normalmente) e vá na opção Administração do Sistema| Instalador de Fontes. Ele irá carregar uma lista com todas as fontes instaladas no sistema. Clique em “Modo Administrador” e na janela que irá aparecer, dê a sua senha (normalmente é uma janela do kdesudo. Se for o kdesu, dê a senha de root). Uma borda vermelha irá se delinear ao redor da área onde está a lista de fontes. Clique em “Adicionar Fontes” e procure o diretório onde estão as fontes a serem instaladas. Selecione-as, dê OK e aguarde alguns instantes. Ele irá copiar as fontes para o diretório /usr/share/fonts/truetype, que é o diretório padrão de fontes do sistema. Todos os programas que forem abertos a partir de então terão acesso a esse pacote completo de fontes.
Caso não esteja usando KDE e/ou prefira fazer isso usando linha de comando, uma sugestão dada na wiki do Ubuntu é a seguinte: vá ao diretório onde está suas fontes e digite os seguintes comandos:

sudo cp *.ttf /usr/share/fonts/truetype
sudo fc-cache -f -v

Com isso, suas fontes estarão habilitadas também!

Papéis de Parede

Papéis de parede são ainda mais facilmente customizáveis: basta como usuário root ou em sudo copiar os arquivos desejados no diretório /usr/share/wallpapers. Apenas tome cuidado para não sobre-escrever nenhuma imagem padrão do ambiente, para não comprometer integridade do sistema.
Se você estiver usando o Kubuntu mais moderno, ou o Debian com KDE 4.0 ou melhor, existe uma pegadinha que pode dificultar ou até mesmo melhorar as coisas:  você pode criar diretórios com os papéis de parede em várias resoluções, o que facilita ajustes de tela sem arquele problema de deformação no papel de parede.
Bem, acho que não existe mais o que falar sobre isso.

Extensões do Firefox

As extensões do Firefox podem ser disponibilizadas globalmente de duas formas diferentes, como pode ser lido no MozillaZine Knowledge Base. Em ambos os casos elas envolvem a cópia de arquivos dentro da pasta /usr/share/mozilla/extensions. A principal diferença é no comportamento final que terá o processo. Se você tiver já configurado o Firefox em um usuário de acordo com suas necessidades, pode ser útil as extensões FEBE e CLEO.

Solução 1: Cópia dos instaladores de extensões

Nesse método, os arquivos serão instalados pelo usuário em sua pasta local na primeira inicialização do Firefox. Nesse caso, o processo é o seguinte:

  1. Baixe as extensões desejadas em seu formato .xpi, os arquivos de instalação das extensões. No caso de as extensões já estarem instaladas em um Firefox de um usuário, utilize a extensão FEBE para realizar um Backup dos arquivos de instalação .xpi das extensões instaladas.
  2. Vá ao diretório onde as extensões .xpi estão guardadas e copie-os para a pasta indicada anteriormente.

A vantagem desse processo é que evita manipulações desnecessárias na estrutura do sistema. Em compensação, torna o processo de atualização do Firefox de maneira global um pouco mais complexo, uma vez que dependerá muito mais da intervenção do usuário.

Solução 2: Cópia das extensões instalada

Esse processo é mais simples, ainda que existam complicadores na usabilidade e/ou na segurança. Uma vez que você tenha configurado corretamente as extensões na pasta local de um usuário, vá ao diretório .mozilla/firefox/<diretorio_profile>/extensions. Se você precisar saber qual é o <diretorio_profile>, abra o arquivo .mozilla/firefox/profiles.ini, localize o nome do perfil desejado (normalmente será o default) e verifique a opção Path da mesma. Dentro desse diretório, use o seguinte comando.

sudo cp -Rvf * /usr/share/mozilla/extensions

Após terminar a cópia, para testar se todas as extensões estão OK, existe um truque: mova temporariamente o diretório .mozilla para mozilla-old com o comando mv .mozilla mozilla-old e execute o Firefox. Se tudo der certo, suas extensões irão aparecer, ainda que você seja obrigado a reconfigurar tudo.

Mas tudo bem: para voltar às suas preferências, faça o seguinte:

  1. remova o diretório .mozilla com rm -rvf .mozilla;
  2. copie o diretório mozilla-old para .mozilla com cp -Rvf mozilla-old .mozilla;
  3. remova o conteúdo da pasta de extensões do usuário com rm -rvf .mozilla/firefox/<diretorio_profile>/extensions/*;

Execute o Firefox. Tudo estando OK, o Firefox estará com as funcionalidades mantidas exatamente como estavam antes do processo. Qualquer coisa, apenas repita o processo mostrado anteriormente à exceção do passo 3 que tudo deve voltar a ser como antes.

Quando falamos sobre o problema na usabilidade e/ou na segurança, deve-se ao fato das permissões de arquivos na estrutra global. Isso ira afetar a localização e instalação de extensões. Nesse caso, existe a opção de deixar o Firefox sem atualizações automáticas, com um usuário sendo atualizado e copiado para as extensões globais com regularidade, ou então por meio da configuração de acesso a escrita às extensões por meio de chmod a+w -Rvf usr/share/mozilla/extensions, Nesse caso, se quiser evitar que algum engraçadinho desinstale as extensões instaladas, você pode usar o comando chmod a+wt -Rvf usr/share/mozilla/extensions, o que irá ativar o sticky bit (bit “colado”), que impede que os usuários apaguem arquivos dentro do diretório das extensões.

Modelos do BrOffice.org

Esse é um tópico que, em especial, será interessante àqueles que estão usando o remastersys para configurar LiveCDs de instalação para máquinas corporativas. Existem algumas formas diferenciadas de instalação global que irá depender do que você deseja.

No caso de apenas copiar alguns poucos modelos, apenas copie os modelos desejados para /usr/lib/openoffice/basis<versao_do_broffice.org>/share/template como super-usuário. Lembrando que os modelos devem estar nos formatos de template OpenDocument (*.ot*).

Já no caso de copiar pastas completas de modelos, existem algumas dificuldades maiores. Mas se for feito com cuidado, é um processo razoavelmente simples.

  1. Copie as pastas de modelos para algum local dentro da hierarquia principal do sistema (sugestões seriam em /usr/share, /usr/local/share e /opt).
  2. Agora, como super-usuário, edite ou crie o arquivo /usr/lib/openoffice/basis<versao_do_broffice.org>/share/registry/data/org/openoffice/Office/Paths.xcu e adicione o seguinte conteúdo nele:

<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Paths" oor:package="org.openoffice.Office">
<node oor:name="Paths">
<node oor:name="Template">
<prop oor:name="UserPaths" oor:type="oor:string-list">
<value>$(user)/template file://<diretorio_das_suas_extensoes></value> </prop>
<prop oor:name="WritePath" oor:type="xs:string">
<value>file://<diretorio_das_suas_extensoes></value>
</prop>
</node>
</node>
</oor:component-data>

Onde <diretorio_das_suas_extensoes> deve ser preenchido com o diretório onde você colocou seus modelos. No caso de vários diretórios diferentes, adicione cada um dos diretórios precedidos por file:// nas duas partes (UserPaths) e (WritePath)

Atenção: Caso você edite manualmente esse arquivo, copie o seu arquivo em outro. Caso o BrOffice.org não “suba”, abra novamente o arquivo, copie o conteúdo original do arquivo e tente novamente.

Para saber se está tudo bem, abra o BrOffice.org, vá em Arquivo | Novo | Modelo e Documentos, Na página “Modelos” a sua pasta deve aparecer e os arquivos de modelos deverão estar lá!

OK… Vamos falar apenas desses casos: execute novamente remastersys dist e sua distro deverá estar melhor ainda ao abrir um Mozilla, suas extensões deverão estar lá (ainda que sem configurações), assim como Templates do BrOffice.org e afins.

Mas dá para melhorar ainda mais um tanto, deixando a cara do boot da sua “distro” mehor ainda:

3-) Dando a sua cara: usuário “padrão”

No caso, agora vamos com calma. Tudo começa com você criando um usuário adicional “limpo” que você irá usar para customizar totalmente as opções do ambiente. No nosso caso vamos criar um usuário mykubuntu. Na linha de comando dê o comando sudo adduser mykubuntu, Dẽ uma senha, confirme-a e as demais informações podem ficar em branco.

Agora, saia do seu usuário normal e logue-se como mykubuntu. Ao entrar no ambiente, comece a customizar o ambiente conforme a necessidade, configurando papel de parede, fontes, temas, configurações de extensões do Firefox, etc… Desse modo, você vai ter uma espécie de “modelo” que você irá usar para criar a cara do usuário “padrão” da sua “distro” remasterizada. As customizações podem envolver o que você achar adequado (adicionar ícones, customizar aparência, adicionar Widgets, etc…). Uma vez que você se dê por satisfeito, deslogue-se e retorne ao seu usuário normal.

Uma vez que você tenha logado, abra um terminal e use o comando sudo -s, para abrir um shell de root. Uma vez feito isso, você precisará copiar os arquivos do diretório do usuário criado (no nosso caso mykubuntu) para dentro do diretório /usr/skel. Além disso, será necessário configurar a posse dos arquivos. No caso, digite os comandos abaixo:

cp -Rvf /home/mykubuntu/* /etc/skel

chown root:root -Rvf /etc/skel

Com esses dois comandos, você coloca os arquivos dentro de /etc/skel, um diretório usado para criar diretórios padrão de usuário. Como isso é copiado para os diretórios padrão de usuários, existe a vantagem adicional de permitir-se que definições padrão sejam adicionadas, o que oferece ganhos para aquele que deseja utilizar o remastersys para customizar um Debian/Ubuntu para uso corporativo e também para “Estações Virtuais”.

Como pode-se ver, o remastersys é uma ferramenta de altíssimo nível que, apesar de simples, oferece muitíssimas opções, e que, combinada com conhecimentos simples e pesquisas no google, oferece possibilidades muito interessantes para o usuário, tanto caseiro quanto corporativo. Espero que esse documento tenha sido do agrado de todos os leitores.

sudo remastersys dist

Configurando Ubuntu Linux como media server para Xbox360

Olá!

Já faz algum tempo que eu não posto nada no blog, e o motivo é que realmente não estava com assunto para postar. Porém, agora tem um bom assunto para postar.

XBOX 360Como alguns sabem, tenho vários consoles de videogames, entre eles já citados um Nintendo DS (na verdade agora tenho um Nintendo DSi mais dois Nintendo DS) e um PSP. Como não poderia deixar de ser, tenho meus consoles de mesa: um PS2, um Wii e um XBOX 360.

O último foi uma aquisição que fiz com o objetivo duplo de jogar (obviamente) e de utilizar como Media Center. Mas como tudo que envolve a Microsoft, descobri que existe um trabalho bastante significativo para colocar vídeos para rodar no XBOX 360, quem dirá disponibilizar esse vídeos em modo Media Server (ou seja, de modo que os vídeos estejam no computador caseiro e sejam buscados pelo XBOX via rede)

Em parte isso se deve a problemas de protocolo e em parte a formatos de arquivo. Então iremos dividir o artigo em duas partes. A primeira, sobre como codificar vídeos para o formato do XBOX 360, e a segunda sobre como disponibilizar os vídeos codificados da maneira correta via rede.

Codificando vídeos para o formato do XBOX 360

O XBOX 360 possui formatos muito determinados sobre como os videos devem ser codificados para ele. No caso, adotaremos um enocde para WMV (Windows Media Video), e utilizaremos uma ferramenta gráfica para Linux, o Hyper Video Converter, que nada mais e que um frontend para MPlayer/Mencoder e ffmpeg. Procure e baixe no site o pacote .deb ou .rpm e instale conforme a suia distro. Ele irá criar um ícone no Menu K /Aplicações. Abra o programa. Ao abrir, uma janela como a abaixo irá aparecer.

Primeira coisa: você vai precisar criar um diretório onde você irá jogar seus arquivos encodados. No meu caso: /home/teste/video. Isso será importante no segundo estágio, quando formos disponibilizar os vídeos via rede. Por agora, escolha qualquer pasta. Em encoder, escolha ffmpeg. Iremos trabalhar com ele por enquanto. Clique em “Encoder Settings”. Você receberá uma janela como a seguinte:

No caso, ele já está com todas as informações sobre como o vídeo deve ser codificado, segundo o link apresentado anteriormente.No caso, optamos por encodar o vídeo em formato WMV2 em Video Codec, que é o único que permite encodar vídeos com saída em FullHD para ele. De qualquer modo, utilizaremos a resoloção como 720p, setada em Video Size (perceba que ela foi colocada em Custom e o valor digitado na caixa de texto em baixo). O Aspect foi deixado em 1:1 (acredito que isso permita que o Aspect Ratio original dos vídeos a serem encodados, sem os distorcer). Setamos o Container Format para ASF. Isso é importante pois o formato ASF é o container padrão para o Windows Media Video. O Video Bitrate pode ser definido para qualquer valor, mas acredito que entre 5000 a 10000 kbps é o suficiente. Menor bitrate implica em maior granulação, enquanto um Bitrate menor pode servir apenas para aumentar demais o arquivo (que ficará enorme). Deixe Target em default.pois ele serve apenas para alguns pré-defs relacionados com DVD (portanto, não é uma boa idéia mexer aí). O Audio Format ddverá ser configurado para wma2 (Windows Media Audio versão 2). Audio Bitrate pode ser deixado em qualquer valor, então 128 kbps deve ser um valor adequado (caso encode shows, pode desejar aumentar esse valor, conforme a qualidade das fontes originais). Sample Rate não têm restrições também, então deixamos em 44100 bps, que é o valor padrão para CD ou DVD.

Precisaremos de algumas configurações mais avançada, então clique em Advanced Settings para que a janela pareça com a seguinte:

A única coisa que precisamos deifinir aqui é o Framerate. Clique na caixa correspondente e defina o valor. No caso atual meu, defini como 25 fps. Se desejar, o limite é de 30 fps conforme o link apresentado anteriormente.

Na aba Misc. Video Settings, existem poucas opções interessantes.

Eu uso por costume 2-pass encoding, mas segundo alguns não faz a menor diferença. Se tiver dúvidas, não mexa nessa aba e aceite os padrões, clicando em OK ao terminar. Clique em Open Files para adicionar videos para conversão. Se selecionar mais de um vídeo, selecione a opção convert all input. Mude a Extensão para wmv e clique em Create Command. Ele irá apresentar na caixa de diálogo de baixo a linha de comando a ser executada. Clique em Convert e aguarde.

A conversão demorará significativamente e, além disso, gerará arquivos enormes (700 MB para 20 min), portanto tenha muito HD livre ao tentar isso ou jogue a saída para um pendrive. Na realidade, precisaremos usar um Pendrive depois do vídeo convertido.

Testando o vídeo

Uma vez que você tenha codificado seu vídeo (lembre-se de ter todos os codecs instalados em sua máquina, inclusive – e especialmente – os de WMV), o vídeo será colocado na pasta indicada em Output Directory, com o nome original e extensão definida em Extension (no nosso caso, wmv). Copie o arquivo para um pendrive e leve ao XBOX 360. Conecte o pendrive por uma das entradas USB, seja as traseiras (próximas à entrada de rede) ou as dianteiras (em baixo do botão de força, protegidas por uma tampa). Ligue o XBOX.

No Dashboardo do XBOX 360, escolha a opção “Biblioteca de Vídeo“. Aperte A.

A opção “Dispositivo Portátil” deverá estar acesa. Selecione-a e navegue no conteúdo do pendrive até achar o arquivo codificado. Selecione-o e clique em Executar. Ele deverá ser exibido. Caso não seja, verifique as configurações de vídeo anteriormente citadas e modifique-as até que o resultado final seja de seu agrado.

Para facilitar a vida, o Hyper Video Converter aceita que você salve Profiles de configurações de vídeo. Uma vez que você tenha a opção adequada, salve-a clicando em Save Profile no Encoder Settings e dê um nome ao mesmo na janela que irá aparecer (ele não sobrescreve profiles existentes). Para carregar um profile, clique em Manage Profiles na janela principal.

Escolha o programa utilizado (no nosso caso, ffmpeg) selecione o profile desejado e clique em Load.

Ok… Uma vez que o vídeo esteja funcionando corretamente, você irá se pegar pensando no tamanho do vídeo gerado e em como isso é dose de ter que ser feito o tempo todo. No caso, vamos utilizar o uShare como servidor de mídia (Media Server), por meio do protocolo uPnP A/V.

Cnfigurando o Media Center

Primeiro, instale como padrão o uShare conforme sua distro. A maioria das distros modernas oferecem o uShare a partir de seus repositórios padrão, assim como suas dependências. Use os comandos adequados para instalar o uShare.

Como root (ou usando sudo), abra um editor de arquvios e procure o arquivo /etc/ushare.conf. Será necessárias algumas modificações nesse arquivo para disponibilizar os vídeos via rede. O arquivo irá se parecer com algo como abaixo.

# /etc/ushare.conf
# Edit this file with 'dpkg-reconfigure ushare'
# Configuration file for uShare
# uShare UPnP Friendly Name (default is 'uShare').
USHARE_NAME=hufflepuff
# Interface to listen to (default is eth0)
# Ex : USHARE_IFACE=eth1
USHARE_IFACE=eth1
# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=
# Port to listen for Telnet connections
# Ex : USHARE_TELNET_PORT=1337
USHARE_TELNET_PORT=
# Directories to be shared (space or CSV list).
# Ex: USHARE_DIR=/dir1,/dir2
USHARE_DIR=/home/teste/videos
# Use to override what happens when iconv fails to parse a file name.
# The default uShare behaviour is to not add the entry in the media list
# This option overrides that behaviour and adds the non-iconv'ed string into
# the media list, with the assumption that the renderer will be able to
# handle it. Devices like Noxon 2 have no problem with strings being passed
# as is. (Umlauts for all!)
#
# Options are TRUE/YES/1 for override and anything else for default behaviour
USHARE_OVERRIDE_ICONV_ERR=yes
# Enable Web interface (yes/no)
USHARE_ENABLE_WEB=yes
# Enable Telnet control interface (yes/no)
USHARE_ENABLE_TELNET=no
# Use XboX 360 compatibility mode (yes/no)
USHARE_ENABLE_XBOX=yes
# Use DLNA profile (yes/no)
# This is needed for PlayStation3 to work (among other devices)
USHARE_ENABLE_DLNA=no

A maior parte das conbfigurações podem ser deixadas no padrão da distro. No caso, vamos falar das configurações que devem ser modificadas.

  • USHARE_NAME=hufflepuff - Essa linha informa o nome pelo qual sua máquina será conhecida como Media Center. Escolha o nome que lhe aprouver;
  • USHARE_IFACE=eth1 - Essa linha indica qual interface de rede será usada como saída para o seu Media Center. A não ser que você tenha várias placas de rede e/ou algum problema com a interface de rede padrão (eth0), pode deixar em branco. Caso contrário, escolha a inferface a ser utilizada, lembrando que o XBOX 360 deve estar conectado fisicamente à estrutura de rede desejada;
  • USHARE_DIR=/home/teste/video - Essa linha é uma das que devem ser obrigatoriamente modificada. Ela indica onde o uShare deverá buscar arquivos de mídia. No meu caso, /home/teste/video. Lembre-se de dar o mesmo caminho dado no Hyper Video Converter, ou então selecionar vários caminhos, separando-os por vírgulas.
  • USHARE_ENABLE_WEB=yes - Essa linha é útli ao administrar os compartlhamentos a serem buscados. Se você ativar essa opção, a janela de administração do uShare estará disponível em http://<servidor&gt;:<porta>/web/ushare.html, onde <servidor> representa o IP ou DNS do servidor uShare (repare que esse nome não precisa ser o mesmo e pode não ter relação com o nome uPnP indicado em USHARE_NAME) e  <porta> é a porta definida pelo uShare para atender (normalmente 49152, modificada em USHARE_PORT);
  • USHARE_ENABLE_TELNET=no - Essa linha tem a mesma funcionalidade e uso da anterior, USHARE_ENABLE_WEB, mas usando Telnet ao invés do navegador. Como isso pode ser um potencial furo de segurança (uma vez que o Telnet não é um protocolo conhecido pela segurança), é recomendável deixar essa opção em no;
  • USHARE_ENABLE_XBOX=yes – Essa opção é a que define o suporte para o XBOX 360 e deve estar obrigatoriamente em yes;
  • USHARE_ENABLE_DLNA=no – Essa opção define o suporte para alguns recursos avançados em uPnP A/V. Essa opção é usada em especial no PS3 e em outros Media Centers, mas usar essa opção no XBOX 360 apenas serve para confundir o sistema. No caso, deixe-a em no se for usar o XBOX 360 como Media Center;

Com isso definimos toda a configuração necessária para o mesmo no Linux. Inicie o servidor conforme a distro (normalmente service ushare start como root). Nota: no Ubuntu por algum motivo o uShare ignora sumariamente a opção USHARE_ENABLE_XBOX=yes, portanto devemos forçar o suporte a XBOX 360. Para isso, inicie o uShare em um terminal ushare -x. Antes disso, pare o servidor uShare (normalmente com sudo service ushare stop). O uShare pode ser iniciado sem obrigatoriedade de superusuário por usar portas TCP altas (acima de 1024). Mantenha o terminal aberto enquanto não estiver o usando. Como opção, pode ser usado o comando nohup ushare -x & para fazer com que o uShare rode em backgroung.

Configuração no XBOX 360:

Primeiro, ligue o XBOX 360 à rede onde o Media Server uShare está ligado (nomralmente conectando um cabo entre o roteador da rede do uShare e o XBOX 360). Em seguida, ligue o XBOX 360 e vá em “Configurações de Sistema“.

Vá em Configurações de Rede.

Selecione Testar Conexão no PC. Ele poderá dar um aviso de desconectar os usuários do videogame. Confirme e aguarde. Ele deverá aparecer uma máquina com o nome dado por voce em USHARE_NAME.

Tudo OK, aperte A e volte para o Dashboard e escolha a opção “Biblioteca de Vídeo“. Aperte A.

Deve ter uma opção com o nome da sua máquina. Escolha-a. Uma lista dos vídeos disponíveis na sua pasta deve aparecer. Atenção: ele não fará distinção de pastas, colocando todo o conteúdo dentro da pasta espalhado. Escolha o vídeo desejado e clique em Reproduzir:

E aproveite os seus vídeos. Utilizar o XBOX 360 como Media Center dá um certo trabalho, mas vale a pena!

PS: As telas do XBOX 360 foram fotografadas com uma câmera FujiFilm FinePix s5100fd com alta qualidade a partir de uma teve LCD 32″ buster 720p.

Leia mais deste post

Revertendo atualização (downgrade) de pacotes no Debian/Ubuntu

Faz bastante tempo que não posto nesse blog (acho que mais de 6 meses), mas a verdade é que eu não tinha nenhum tema interessante ou dica a dar. Continuei usando Linux (no caso, Ubuntu Karmic Koala 9.10), o que me atende muito bem.
Recentemente, porém, tive um problema: devido a um problema de configuração do meu sources.list (arquivo de fontes de pacotes para Debian/Ubuntu), me vi pegando um pacote de drivers para placas de vídeo Intel GMA450 no Xorg que estava muito instável (caía o tempo todo com o KDE 4.3 e não permitia um uso adequado do sistema). Depois de instalar um outro gerenciador de janelas mais simples (optei pelo LXDE), conversei com o pessoal da sala #kubuntu do Freenode e fui aconselhado a dar um downgrade (ou seja, reverter a atualização) do pacote de drivers do X. Como não sabia o que fazer, recorri ao Guia do Mochileiro das Galáxias (também conhecido como Google), e obtive uma resposta:
Bem, a primeira coisa é saber o nome do pacote a se dar o downgrade. No meu caso era xserver-xorg-video-intel, mas utilizarei o mesmo exemplo da fonte em questão. Você irá precisar ir a um terminal e usar os comandos apt-cache (para consultar as informações sobre o pacote) e aptitude (para efetuar o downgrade).
Sabendo o nome do pacote, utilize o comando apt-cache showpkg <pacotedesejado>, que irá listar quais versões do pacote em questão estão disponíveis no repositório. É importante que você note isso, pois pode acontecer que o repositório não possua a versão que você deseja do pacote. De qualquer modo, vamos por exemplo ver uma saída para o pacote sun-java6-jdk (SDK do Java 6 que era o problema da fonte de informação):

apt-cache showpkg sun-java6-jdk

Package: sun-java6-jdk
Versions:
6-14-0ubuntu1.9.04 (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_jaunty-proposed_multiverse_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_jaunty-proposed_multiverse_binary-amd64_Packages
MD5: cb47d4c49fa7317c472613b7010ef9d8
6-13-1 (/var/lib/apt/lists/au.archive.ubuntu.com_ubuntu_dists_jaunty_multiverse_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/au.archive.ubuntu.com_ubuntu_dists_jaunty_multiverse_binary-amd64_Packages
MD5: cb47d4c49fa7317c472613b7010ef9d8
Reverse Depends:
sun-java6-source,sun-java6-jdk 6-14-0ubuntu1.9.04
sun-java6-javadb,sun-java6-jdk 6-14-0ubuntu1.9.04
sun-java6-demo,sun-java6-jdk
sun-java6-demo,sun-java6-jdk 6-14-0ubuntu1.9.04
libnb-java2-java,sun-java6-jdk
libnb-java2-java,sun-java6-jdk
sun-java6-source,sun-java6-jdk 6-13-1
sun-java6-javadb,sun-java6-jdk 6-13-1
sun-java6-demo,sun-java6-jdk
sun-java6-demo,sun-java6-jdk 6-13-1
glassfishv2-bin,sun-java6-jdk
glassfishv2,sun-java6-jdk
Dependencies:
6-14-0ubuntu1.9.04 - sun-java6-bin (5 6-14-0ubuntu1.9.04) libc6 (0 (null)) libx11-6 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) sun-java6-demo (0 (null)) sun-java6-doc (0 (null)) sun-java6-source (0 (null))
6-13-1 - sun-java6-bin (5 6-13-1) libc6 (0 (null)) libx11-6 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) sun-java6-demo (0 (null)) sun-java6-doc (0 (null)) sun-java6-source (0 (null))
Provides:
6-14-0ubuntu1.9.04 - java6-sdk java5-sdk java2-sdk java2-compiler java-sdk java-compiler
6-13-1 - java6-sdk java5-sdk java2-sdk java2-compiler java-sdk java-compiler
Reverse Provides:

Perceba que tem dois números de versão destacados. O primeiro (em amarelo) representa a versão atualmente instalada, enquanto a segunda (em verde), a que desejamos instalar. Caso haja outras versões, pode obviamente ser usada quaisquer delas. A questão aqui é a seguinte: anote o nome da versão como indicada. Você precisará do valor exato para passar para o aptitude para que ele possa instalar a versão desejada. Perceba também que pode acontecer problemas com dependências (versões antigas de dependências serem exigidas, etc), portanto tenha cuidado ao realizar essa operação.
Muito bem, uma vez que você tenha obtido o número de versão desejado do pacote, é hora de mandar o aptitude instalar essa versão. Para isso, você irá usar o comando aptitude install <pacotedesejado>=<versaodesejada>. Importante: esse comando exige poder de adminstrador (root) e, portante, exige su ou sudo. Vamos então utilizar o número de versão que anotamos na saída do apt-cache como opção no comando que mostramos anteriormente.

sudo aptitude install sun-java6-jdk=6-13-1

A saída será similar à seguinte, que lembra bem a de um apt-get normal:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following packages are BROKEN:
sun-java6-jdk
0 packages upgraded, 0 newly installed, 1 downgraded, 0 to remove and 2 not upgraded.
Need to get 17.7MB of archives. After unpacking 1925kB will be freed.
The following packages have unmet dependencies:
sun-java6-jdk: Depends: sun-java6-bin (= 6-13-1) but 6-14-0ubuntu1.9.04 is installed.
The following actions will resolve these dependencies:
Remove the following packages:
sun-java6-fonts
sun-java6-plugin
Downgrade the following packages:
sun-java6-bin [6-14-0ubuntu1.9.04 (jaunty-proposed, now) -> 6-13-1 (jaunty)]
sun-java6-jre [6-14-0ubuntu1.9.04 (jaunty-proposed, now) -> 6-13-1 (jaunty)]
Score is 188
Accept this solution? [Y/n/q/?] Y
The following packages will be DOWNGRADED:
sun-java6-bin sun-java6-jdk sun-java6-jre
The following packages will be REMOVED:
sun-java6-fonts{a} sun-java6-plugin{a}
0 packages upgraded, 0 newly installed, 3 downgraded, 2 to remove and 2 not upgraded.
Need to get 50.7MB of archives. After unpacking 4096kB will be freed.
Do you want to continue? [Y/n/?] Y

Perceba que o aptitude irá resolver todas as dependências, inclusive revertendo pacotes que sejam dependências do pacote revertido. É um comando que demanda muito cuidado, uma vez que ele pode levar dependências que não deveriam, inclusive podendo remover pacotes que tenham sido instalados pela nova versão do pacote a ser revertido. Analise a saída e, caso tenha certeza, confirme. Pode ser que, dependendo do pacote, você precise reiniciar o X (como foi meu caso) ou mesmo o computador, mas a reversão terá sido feita.
É importante isso pois pode acontecer (como aconteceu no meu caso) de pacotes muito novos gerarem instabilidade no uso do sistema. Tome muito cuidado ao atualizar o sistema e procure pegar pacotes apenas de fontes confiáveis. Se não tiver confiança, não é recomendável, por exemplo, buscar pacotes em PPAs (PPAs são repositórios de desenvolvimento que são utilizados para pacotes muito novos), como aconteceu comigo.

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

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.

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

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.