Archive for August, 2005
Instalando Gnopernicus no Linux
O Gnopernicus é um software de tecnologia assistiva que permite a deficientes visuais usaram o computador.
Estamos interessado no suporte a voz deste software com integração com o Festival.
Para instalar no Debian execute:
apt-get install gnopernicus
apt-get install at-spi
Add comment August 31, 2005
Criando um binário teste p/ o Easybox
Código do led.S
.text
.code 32
.align 4
LEDADDR = 0×03200000
ON = 0xFC
OFF = 0xFF
DELAY = 0×1000000
ldr r0, =LEDADDR
infinite_loop:
ldr r1, =ON
strb r1, [R0]
ldr r2, =DELAY
wait_loop_1:
subs r2, r2, #1
bge wait_loop_1
ldr r1, =OFF
strb r1, [R0]
ldr r2, =DELAY
wait_loop_2:
subs r2, r2, #1
bge wait_loop_2
b infinite_loop
Para compilar:
arm-linux-gcc -nostdlib -nostartfiles -c -mlittle-endian led.S -o led.o
arm-linux-ld -EL -Tldscript -o led led.o
Transformar em binário:
arm-linux-objcopy -O binary led led.bin
1 comment August 23, 2005
Disassemblar binário ARM
arm-linux-objdump -b binary -m arm -D bootloader.bin
Add comment August 20, 2005
Compilando o kernel do Linux para o Easybox
Para podermos compilar o kernel do Linux para o Easybox primeiramente devemos instalar o toolchain, baixe do site: ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/cross-2.95.3.tar.bz2
Para instalar (como root) vá até o diretório /usr/local crie um diretório arm, entre neste diretório e execute:
tar jxvf /caminho/para/arquivo/cross-2.95.3.tar.bz2
Será criado o diretório 2.95.3 com todas os binários do toolchain.
Acrescente o diretório /usr/local/arm/2.95.3/bin no PATH:
export PATH=/usr/local/arm/2.95.3/bin:$PATH
Extraia o arquivo do kernel 2.4.18
tar zxvf linux-2.4.18.tar.gz
Entre dentro deste diretório e aplique o 1º patch:
gunzip -c patch-2.4.18-rmk4.gz | patch -p1
Aplique o 2º patch:
gunzip -c patch-2.4.18-rmk4-wp3.gz | patch -p1
Edit o arquivo Makefile do kernel acrescente:
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
Em seguida, vem a compilação padrão
make menuconfig
make dep
make Image
Add comment August 20, 2005
Instalando BDM no Linux
Sera explicado neste artigo como compilar o BDM-TOOLS para controlar uma placa com processador Coldfire através da Interface BDM.
Será utilizado a processo de geração de device driver para o kernel, e não o processo de acesso direto as portas de IO (IOPERM).
Baixe o bdm-tools do site http://sourceforge.net/projects/bdm a versão atual é a 1.3.0.
Extraia o arquivo bdm:
tar jxvf m68k-bdm-1.3.0.tar.bz2
Entre no diretório criado
m68k-bdm-1.3.0
Agora compile a BDMlib e o bdm-chk, para evitar o erro de não encontrar a biblioteca bfd.h instale o binutils-dev:
apt-get install binutils-dev
Em seguida continue com a compilação:
./configure
make
make install
Precisamos compilar o device driver BDM, mas antes temos que modificar o arquivo driver/bdm.c porque o RAMBAR está com o valor errado, não funciona nos Coldfires V2 (MCF5282, MCF5235, etc).
mude de:
0xc04, /* BDM_REG_RAMBAR */
para:
0xc05, /* BDM_REG_RAMBAR */
Entre dentro do diretório onde contém o driver para a versão do seu kernel, estou usando o kernel 2.6:
cd m68k-bdm-1.3.0/driver/linux-2.6
Compile e instale:
make
make install
Crie o file device:
mknod /dev/bdmcf0 c 34 4
Agora vamos instalar o GDB com suporta à interface BDM.
Baixe o código fonte do GDB 6.1 (os outros patchs GDB estão errados, são para o insight na verdade):
ftp://ftp.gnu.org/gnu/gdb/gdb-6.1.tar.gz
Descompacte:
tar zxvf gdb-6.1.tar.gz
O diretório gdb-6.1 deverá esta no mesmo nível do m68k-bdm-1.3.0/gdb/patches para o patch se aplicado:
patch -p0 < m68k-bdm-1.3.0/gdb/patches/gdb-6.1-bdm-m68k.patch
Compile e execute o GDB:
./configure –target=m68k-bdm-elf
make
make install
Remova qualquer módulo que possa estar usando a porta paralela, para visualizar execute lsmod:
lp
parport
parport_pc
Para remove-lo use rmmod seguido do nome do módulo:
rmmod parport_pc
rmmod parport
rmmod lp
Insira o módulo bdm no kernel:
insmod /lib/modules/`uname -r`/extra/bdm.ko
Add comment August 17, 2005
Adicionando um novo aplicativo no uClinux
Para adicionar um novo aplicativo no uClinux crie um novo diretório dentro de uClinux-dist/user, como sugestão copie o diretório ‘ping’ para ‘olamundo’.
Em seguida acrescente uma entrada em uClinux-dist/user/Makefile para o diretório do seu programa, como no exemplo:
dir_$(CONFIG_USER_OLAMUNDO) += olamundo
A definição CONFIG_USER_OLAMUNDO deverá ser declarada em uClinux-dist/config/config.in, desta forma:
bool ‘olamundo’ CONFIG_USER_OLAMUNDO
Por fim, definimos o que será apresentado como informação (help) ao usuário no momento em que o mesmo estiver configurando os aplicativos que deverão estar presentes no uClinux. Para isso acrescente a seguinte entrada no arquivo uClinux-dist/config/Configure.help :
CONFIG_USER_OLAMUNDO
A simple welcome program.
Approx. binary size: 10k
Observe que as linhas abaixo de CONFIG_USER_OLAMUNDO iniciam-se com 2 espaços antes do texto de informação, este espaçamento deverá ser respeitado.
Add comment August 10, 2005
Procurando por palavra dentro de arquivos
Bom, esta é apenas uma dica para os novatos.
É comum procuramos uma palavra em arquivos recursivamente usando o comando:
find . -type f | xargs grep “Palavra” | less
Porém um comando simples que pode fazer a mesma coisa é:
grep -r “Palavra” * | less
Este comando é muito mais intuitivo e fácil de usar.
Add comment August 9, 2005
Montando arquivo de imagem do ReactOS
Para montar:
# losetup /dev/loop/0 c.img -o 32256
# mount /dev/loop0 /mnt/c/
Fazer as alterações…
Desmontar:
# umount /mnt/c
# losetup -d /dev/loop/0
Add comment August 4, 2005
Compilando o COLILO para a M5238-EVB
Baixar o colilo no seguinte endereço:
http://www.reasonability.net/uclinux/colilo/colilo-20040221.tar.gz
Baixar o patch no seguinte endereço:
http://mailman.uclinux.org/pipermail/uclinux-dev/attachments/20050722/e008cedc/colilo.obj
tvd01:/comum/uclinux/colilo> ls
colilo-20040221.tar.gz colilo.diff
tvd01:/comum/uclinux/colilo> tar zxvf colilo-20040221.tar.gz
tvd01:/comum/uclinux/colilo> cd colilo-20040221
tvd01:/comum/uclinux/colilo/colilo-20040221> ls
arch colilo.S function.h main.c misc.c status.h
boot.S COPYING inflate.c Makefile prototypes.h ui.c
Changelog dprintf.c ledstate.h mcfuart.h serial.c vendors
tvd01:/comum/uclinux/colilo/colilo-20040221> patch -p1 -lt ../colilo.diff
patching file arch/5235/arch.h
patching file arch/5235/cache.S
patching file boot.S
patching file Changelog
patching file main.c
patching file Makefile
patching file mcfuart.h
patching file serial.c
patching file vendors/Motorola/M523xEVB/board.c
patching file vendors/Motorola/M523xEVB/flash.ld
patching file vendors/Motorola/M523xEVB/Makefile
patching file vendors/Motorola/M523xEVB/ram.ld
tvd01:/comum/uclinux/colilo/colilo-20040221>
Acrescentar no Makefile:
BOARD = M523xEVB
CF_ROOT = /usr/local/lib/gcc-lib/m68k-elf/2.95.3
GCC_EXEC_PREFIX = /usr/local/bin/m68k-elf-
tvd01:/comum/uclinux/colilo> make
1 comment August 4, 2005