sexta-feira, 8 de junho de 2012

Montando imagens JFFS2

A popularização dos dispositivos móveis com suas constantes atualizações de firmware, que hoje são feitas  "a quente" e de maneira simples e descomplicada leva a curiosidade sobre como modificar ou apenas personalizar esse firmware, e isso é latente em sala de aula onde os questionamentos sobre o assunto são semanais.
Sistematizei aqui os passos para fazer a montagem de imagens Journalling Flash File System (JFFS2) utilizando uma distribuição linux qualquer, de maneira que qualquer um consiga ter acesso ao conteúdo do firmware e assim fazer as personalizações desejadas.
O JFFS2 tem sido empregado por grande parte dos fabricantes de dispositivos móveis que na maioria que  utilizam memórias Flash NAND [...] como no BA que falei em outro post.
Existem conjuntos de ferramentas para automatizar a montagem imagens de sistemas de arquivos desse tipo, mas para quem vai fazer isso uma vez ou outra, acho mais interessante montar manualmente - e também nos afasta da monotonia do clique aqui, clique ali. 
No Linux conseguimos fazer isso de duas maneiras, por emulação de  bloco Memory Technology Device (MTD) ou por emulação de memória MTD, vou abordar a segunda opção que eu acho mais simples e é a que eu sei fazer.

O primeiro passo é instalar o pacote MTD-TOOLS
apt-get install mtd-tools
Depois precisamos carregar os módulos MTD, não é necessário recompilar o kernel e tê-los estáticos, podemos carregar dinamicamente com modprobe [...] apenas quando precisamos.
modprobe -v jffs2
modprobe -v mtd
modprobe -v mtdblock
modprobe -v mtdchar
modprobe -v mtdram total_size=49792 erase_size=256

NOTA:  total_size=49792 é o tamanho em Kb da imagem que vou carregar.

Em seguida usando o dd copiamos a imagem JFFS2 para um dispositivo mtd que em /dev vai de mtd0 até mtd15 se não me engano. Usamos o primeiro se esse estiver vago.
dd if=rootfs.jffs2 of=/dev/mtd0
O arquivo rootfs.jffs2 é a imagem que estou preparando para montar, logo falo sobre ela.

Por fim montamos o dispositivo em um ponto qualquer.
mount -t jffs2 /dev/mtdblock0 /mnt/imgjffs2

Daqui para frente basta copiar os arquivos que estarão dentro de /mnt/imgjffs2 e fazer as modificações que quiser. Em outro momento falo como empacotar a imagem modificada, o que também é simples de fazer.

Utilizei esse método para extrair o conteúdo da imagem de firmware do GoFlex da Seagate. Foi uma forma que encontrei para avaliar suas funcionalidades, já que não tenho o hardware, se eu encontrar algo útil vou agregar ao meu BA com Debian.

Tocando no Walkman:

sábado, 2 de junho de 2012

Jailbreak de iDevices

Todos aqueles proprietários de dispositivos da Apple que não se limitam ao uso trivial das máquinas se deparam um com problema, o bloqueio do iOS que não permite a instalação de programas que não são disponibilizados pela loja da Apple. Para nós brasileiro o problema é ainda maior, muitos aplicativos disponíveis na loja americana não estão disponíveis na loja brasileira - isso se soluciona criando uma conta na loja deles, mas o que com o tempo se torna um transtorno.

Uma solução definitiva para tudo isso é o uso de repositórios  alternativos, como Cydia e o uso de um programa chamado Installous [como instalar] que permite a instalação de programas "out Apple Store".

O primeiro passo é fazer o Jailbreak -  essa prática não pode ser considerada uma contravenção, pois estou modificando o OS de um equipamento que é meu, pelo qual eu paguei - aqui não se leva em consideração os atos que você irá cometer após fazer o desbloqueio do dispositivo -  se decidir que vai instalar programas piratas ou "crackeados" não esqueça que pirataria é crime.

Quem quer fazer o Jailbreak deve começar por aqui e consultar a disponibilidade de Jailbreak para o seu dispositivo.
O procedimento é simples e indolor, basta fazer o download do executável e seguir os passos, o Cydia éinstalado junto e os passos para instalação do Installous estão mais acima nesse post.

Tocando no Walkman:

sexta-feira, 1 de junho de 2012

Blackarmor 400 com Debian 6


Recentemente comprei um  Blackarmor 400 (BA400) da Seagate, ele cumpre o papel ao qual se propõem, o de servidor de arquivos e outras bobagens, mas para mim seu S.O. original é bastante limitado.
Com um processador de 1.2Ghz e espaço ilimitado em disco as possibilidades são muitas! Sai em busca de possíveis modificações e encontrei no fórum da própria Seagate uma discussão onde o pessoal comenta sobre a instalação do Debian Lenny no Blackarmor 200.

Segui os passos e migrei o meu BA400 para o Debian 5.0.7, depois fui além, atualizei para o Debian Squeeze - apenas os binários, não mexi no kernel ainda - e coloquei o painel de botões e o LCD para funcionar - o BA220 no qual o pessoal do fórum começou os experimentos não tem LCD.

Abaixo segue a descrição dos meus passos para quem quiser fazer o mesmo.
  
Primeiro você deve seguir os passos descritos aqui com isso você já terá o sistema básico do Debian 5.

Em seguida será necessário atualizar o /etc/apt/sources.list com as seguintes linhas - as duas última são necessárias apenas para quem quer instalar o Webmin.
deb http://archive.debian.org/debian/ lenny contrib main non-free
deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
Execute o comando  apt-get update para atualizar a lista de pacotes e instale o seguinte -  do pacote tree para frente foi uma opção minha.
apt-get install nfs-kernel-server samba vsftpd iscsitarget tree vim ntfs-3g mc usbmount localepurge flexbackup webmin
ATENÇÃO quem quiser instalar o webmin antes deve  adicionar a chave do repositório como mostro a seguir. 
cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
\rm jcameron-key.asc
Agora os passos para atualizar para o Debian 6

Modifique a primeira linha do /etc/apt/sources.list e deixe assim:
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
execute os três comandos abaixo e pronto.
apt-get update
apt-get dist-upgrade
apt-get clean
Transmission um cliente de bitTorrent

Quem quiser pode inda instalar um client de torrent muito interessante e funcional que possui uma interface web.
apt-get-install transmission-cli transmission-daemon
Aqui Transmisson-Remote, uma GUI  mutltiplataforma para o Transmission parecida com a do uTorrent.

O LCD

Para fazer o LCD e também o botão power funcionar - tanto para o Debian 5 quanto 6 - siga os seguintes passos:

Extraia do firmware original os seguintes arquivos: 
/etc/btn.poweroff
/etc/init.d/S99lcm
/usr/sbin/wixsendevent
/usr/sbin/btn_monitor
Copie os arquivos para o mesmo local na sua nova instalação do Debian e faça as alterações necessárias nos scripts - os dois primeiros arquivos - para adequar a sua realidade

Carregue o serviço /usr/sbin/btn_monitor ou reinicialize o NAS e pronto.

No meu BA ainda estou enviando as mensagens de inicialização para o LCD...aqui o post no fórum para quem quiser acompanhar por lá.

Stream multimídia

Um servidor simples e leve FireFly (o site oficial está fora do ar faz um certo tempo)

Para quem  usa iTune ou algum "iDevice" e quer fazer broadcast Apple File Protocol instale antes:
apt-get install netatalk
Indique a interface de rede no fim desse arquivo, apenas escreva por exemplo eth0, egiga0...
/etc/netatalk/atalkd.conf
Instale o seguinte serviço para forçar o broadcast contínuo
apt-get install avahi-daemon
e edite o arquivo
/etc/avahi/services/afpd.service
deixe ele assim
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>

Instale o mt-daapd (FireFly) e o libid3tag0 que permite a leitura de metatags ID3.
apt-get install mt-daapd libid3tag0
Carregue o serviço mt-daapd e acesse o seu NAS na porta 3689, o usuário e a senha padrão é mt-daapd.
Agora o seu NAS, servindo media, vai aparacer no Finder do MAC OS ou na sessão compartilhamento do iTunes!
Daqui para frente é só personalizar...


 

PS: o "software livre" apesar de desorganizado e com grande parte da sua comunidade desviando o foco da sua "filosofia inicial"  - mesmo que alguns digam quem software livre é uma questão de liberdade e não de preço, ha uma distorção nessa história -, ele ainda nos permite utilizar nossos equipamentos da forma como queremos. 
Related Posts Plugin for WordPress, Blogger...