Archive for June, 2006
Baixar o kernel 2.6.x para a Lite5200B usando o GIT
Primeiramente baixe o kernel padrão do Torvalds:
$ git clone git://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Entre dentro do diretório criado:
$ cd linux-2.6
Adicione o patch para IDE:
$ git pull http://gitbits.246tNt.com/gitbits/linux-2.6-mpc52xx.git#ide
Adicione o patch para placa de rede (FEC):
$ git pull http://gitbits.246tNt.com/gitbits/linux-2.6-mpc52xx.git#bestcomm
Add comment June 30, 2006
Instalando o Debian na Lite5200
Existe um tutorial muito bom explicando como instalar o Debian Woody na lite5200:
http://www.denx.de/wiki/DULG/DebianOnPowerpcInstallationHowto
Porém este manual não funciona para Debian Sarge, uma vez que o root.bin não existe mais, e sim uma initrd que é MSB (o impede a montagem em um PC (LSB)).
A solução encontrada foi gerar o sistema de arquivo do Debian instalando o mesmo num HD usando o QEMU como base. Você pode tentar criar um “hard disc image”, mas será mais trabalhoso calcular o deslocamento que o mount deverá executar para montar uma partição dentro deste arquivo de imagem, então é melhot instalar num pequeno HD (ex.: 6GB).
Particionamos este HD (/dev/hdb) em 4 partições, na máquina Host. Não preocupe em mudar o tipo da partição, apenas crie as 4 partições do tamanho indicado:
Partição 1: 1MB (Apple table)
Partição 2: 2MB (Networld boot)
Partição 3: 5.8GB (Sistema de Arquivo – ext2)
Partição 4: 253MB (Swap)
Inicie a instalação pelo QEMU:
qemu-system-ppc -hda /dev/hdb -cdrom debian-netinst.iso -boot d
Quando aparecer o LILO ( boot: ) digite:
install-powerpc-2.4 ramdisk_size=10000
Siga o processo de instalação padrão, modique a 2ª, 3ª e 4ª partição para os tipos indicados acima. Não se preocupe com a 1ª partição, o próprio instalador cuida de criar a tabela de partições nela depois.
Quando terminar a instalação você poderá sair do QEMU e executar na máquina Host:
# mount /dev/hdb3 /mnt/lin e lá estará todo o sistema de arquivo do Debian PPC.
Add comment June 29, 2006
Console serial para Lite5200B no kernel 2.6.17
Nas versões mais novas do kernel o console=ttyS0 não funciona, devemos substituir pelo comando console=ttyPSC0
Coisas desses desenvolvedores malucos, por que não deixar ttyS0 mesmo?
Add comment June 25, 2006
Acessando o SourceForge por SSH
Como sempre você faz um determinado processo, não documenta e depois tem que revazer tudo novamente e não se lembra mais.
Dessa vez irei anotar para acelerar o processo quando precisar fazer isso novamente:
Crie sua chave:
$ ssh-keygen -t dsa -C USERNAME@shell.sf.net
Onde USERNAME é o nome do seu usuário no sourceforge.
Para ver o conteúdo da sua chave publica execute:
$ cat .ssh/id_dsa.pub
Em seguida vá em https://sourceforge.net/account/ , clique em “[Edit SSH Keys for Shell/CVS]” e cole o conteúdo de sua chave pública, a chave se aparece com:
ssh-dss AAAAB3NzaC1kc3MAAAEBANn….DAroo = USERNAME@shell.sf.net
Para acessar o servidor use:
$ ssh USERNAME@shell.sf.net
Add comment June 25, 2006
Inicializar kernel Linux 2.6 sem Sysfs
Desativando o Sysfs reduzo o tamanho do kernel consideravelmente, mas o sysfs é responsável por mapear os dispositivos no /dev no kernel 2.6.
Para contornar este problema basta passar o seguinte parâmetro para o kernel:
root=0×0301
Onde 0×0301 corresponde ao /dev/hda1, modifique de acordo com o seu caso.
Add comment June 24, 2006
Outra forma de disassemblar parte de um binário
Escontrei esta outra dica na Internet:
1. Create a empty C file:
$ touch a.c
2. Compile it:
$ gcc -c -o a.o a.c
3. File b.raw is your raw binary file. Add your binary as a section <raw>
to file a.o and remove section <.comment>:
$ objcopy –add-section raw=b.raw a.o
$ objcopy -R .comment a.o
4. And disassemble it:
$ objdump -D a.o
This works for i386 binutils. I test it also with binutils for NIOS and I
need change the flags of section <raw> before disassemble it.
Run this after point 3.
$ objcopy –set-section-flags raw=CONTENTS,ALLOC,LOAD,READONLY,CODE a.o
Mas ainda não sei se esta forma é melhor ou pior que a forma anterior.
Alguma idéia? Marcelo? Fernando?
Alan
Add comment June 22, 2006
Como disassemblar um arquivo binário
Para disassemblar um arquivo binário execute:
objdump -D -b binary arquivo.bin –architecture=i386
Add comment June 22, 2006
Lendo o teclado de forma não bloqueante
Se você precisa ler o teclado dentro de um laço de repetição de forma não bloqueante, então está dica é para você:
#include < stdio.h >
#include < unistd.h >
#include < termios.h >
#include < stdlib.h >
int main (void) {
char chr;
int result;
struct termios term;
tcgetattr(STDIN_FILENO, &term);
term.c_lflag &= ~ICANON;
term.c_cc[VMIN] = 0;
term.c_cc[VTIME] = 1;
if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term) < 0)
perror(“We failed to change terminal settings\n”);
//Polling the keyboard
while ( 1 ) {
result =read(STDIN_FILENO, &chr, 1);
if (result ==1) {
//Do something with input
printf(“%c”, chr);
}
//Do something ”more important”
printf(“.”);
fflush(STDIN_FILENO);
}
}
Add comment June 20, 2006
Editor de vídeo para o Linux
Diva é editor de vídeo que promete muito, e cumpre.
Ainda não está no nível do cinelerra, mas está chegando lá.
Site do projeto:
That’s all folks!
Alan
Add comment June 16, 2006
Tocador de musica descente
Se você está cansado do XmmS, e quer procurar por algo mais evoluído que tal testar o Listen:
Possui recursos interessantes, como o suporte ao www.last.fm, visualização de letra de músicas, sincronização com iPod, etc…
Add comment June 16, 2006