Archive for December, 2006
Zerando (resetando) a BIOS pela Linha de comando
Hoje precisei remover a senha da BIOS de um computador onde trabalho, porém o computador só tem Linux. Eu sei que no Windows(DOS) basta entrar no programa debug e executar:
o 70 2E
o 71 FF
(Este código funciona na maioria das BIOS, mas algumas placas Intel podem usar outros códigos)
A questão que começou a me desafiar era exatamente como fazer isso no Linux, ora eu poderia escrever um programa em C com 2 linhas de código que enviasse os valores 0×2E e 0xFF para as portas 0×70 e 0×71, mas seria um pouco fora de lógica fazer isso.
Procurei na Internet como fazer isso no Linux, encontrei uma thread muito interessante sobre o assunto [1]. Uma das sugestões era instalar um programa chamado “cmostool” que poderia ler o conteúdo da CMOS e até mesmo recuperar a senha.
Interessante, mas e se o computador não tem acesso à Internet?
Foi então que lembrei da técnica usada para controlar os bits da porta paralela pelo terminal do Linux.
Batata!, funcionou. Então resolvi procurar na Internet para descobrir se alguém já tinha documentado a idéia, mas não encontrei nada a respeito.
O comando fica assim:
# printf “\x2E” | dd bs=1 seek=112 of=/dev/port
# printf “\xFF” | dd bs=1 seek=113 of=/dev/port
O “printf” converte o texto em hexadecimal no byte correspondente e repassa este byte para o comando dd que por sua vez escreve este byte na porta 0×70 (112) e 0×71(113).
[1] – http://lists.samba.org/archive/linux/2001-September/000643.html
4 comments December 19, 2006
Acapella
Achei um site com várias musicas à capela.
É interessante para estudar a pronúncia em inglês, já que as músicas com instrumentos atrapalham a voz.
Para conferir:
2 comments December 17, 2006
Montando um hard disk image
Normalmente programas como o qemu e outros criam um hard disk image, que é exatamente a estrutura de um HD, porém salvo em arquivo.
Se tentamos montar esta imagem como o comando “mount” e a opção “-o loop” apenas, não teremos um resultado positivo, pois a partição não é encontrada, mas sim o inicío do disco, ou seja, o Master Boot Record (MBR) e as tabelas de partições.
O que temos que fazer é pular este início, através do comando:
mount -o loop,offset=32256 winxp.img /mnt/qemu
Add comment December 12, 2006
Ajuda valiosa
Provavelmente alguma vez você já recebeu uma mensagem de erro como essa:
Access Error: FS=8, Physical bus error on operand write
PC: 0001467A SR: 2718 [t.Sm.111...XNzvc]
An: 2000FFC0 F0F97FC0 F0F87F80 00000000 00000000 00020100 2000FFB4 2000FFA8
Dn: 10025FDC 000001A6 F0FDA000 F0F97F90 00000000 00000000 00000000 2000FFC0
0001467A: 4292 CLR.L (A2)
Aparentemente esta mensagem não ajuda muito, não é?
Mas se você utilizar o comando addr2line poderá descobrir exatamente em qual linha o erro ocorreu:
# m68k-elf-addr2line -e u-boot.elf 0×0001467A
/comum/lixo/build/u-boot-1.1.6/lib_m68k/board.c:363
Add comment December 11, 2006
Recuperando o dBug da M5282Lite via BDM
É possível gravar o bootloader dBug da Motorola na placa M5282Lite usando o programador BDM e o programa ProgCFZ, ambos da P&E Micro.
Execute o programa “progcfz” e escolha o algoritmo Am29_160bb_w.CFZ, em seguida será pedido o endereço base, escolha o endereço FFE00000.
Apague a flash através do comando “EM – Erase Module”, em seguida escolha o dbug.s19 através da opção “SS – Specify S record” e finalmente escolha a opção “PM – Program Module” para gravar o bootloader na flash.
Add comment December 11, 2006
Compilando o U-Boot para o uC MCF5282
Descompactar o u-boot:
tar jxvf u-boot-1.1.6.tar.bz2
Configurar o target:
make M5282LITE_config
Compilar:
make
Add comment December 8, 2006
Compilando o GDB-BDM
Descompacte o arquivo do bdm:
$ tar jxvf m68k-bdm-1.3.0.tar.bz2
Edite o arquivo driver/bdm.c mudando o BDM_REG_RAMBAR de 0xc04 para 0xc05 e o BDM_REG_MBAR de 0xc0f para 0xc04.
Entre em driver/linux e edite o arquivo m68k-bdm.c removendo as definições MOD_INC_USE_COUNT e MOD_DEC_USE_COUNT, estas macros são usadas nos kernels 2.4 e foram removidas do kernel 2.6.
Neste mesmo diretório (driver/linux) execute o comando:
# make all install
Após compilar e instalar o módulo execute o comando depmod para gerar a lista de dependências do módulo:
# depmod -a
Finalmente execute o comando para carregar o módulo:
# modprobe m68k-bdm
Volte ao diretório onde você extraiu o arquivo e execute o comando para criar os devices files para o módulo:
# ./m68k-bdm-1.3.0/local_scripts/MAKEDEV
Se não quiser executar o comando acima você pode criar o device file para o Coldfire com os comandos:
# mknod /dev/bdmcf0 c 34 4
# chmod 666 /dev/bdmcf0
Agora poderemos compilar e instalar as bibliotecas do bdm:
$ mkdir build
$ cd build
$ ../m68k-bdm-1.3.0/configure
$ make
# make install
Teste o BDM:
# cd test
# ./bdm-chk /dev/bdmcf0
Pronto, tudo deve ter funcionado corretamente
Mas ainda não acabou, apenas compilamos o BDM, precisamos compilar o GDB com um patch aplicado.
Retorne ao diretório onde você extraiu o m68k-bdm e descompacte o gdb:
$ tar jxvf gdb-6.1.tar.bz2
Aplique o patch:
$ cd gdb-6.1
$ patch -p1 < ../m68k-bdm-1.3.0/gdb/patches/gdb-6.1-bdm-m68k.patch
Configure e compile:
$ cd ..
$ rm -rf build/*
$ cd build
$ ../gdb-6.1/configure –target=m68k-bdm-elf
$ make
# make install
Pronto, agora já temos tudo instalado.
Podemos confirmar se está tudo funcionando através do comando:
# m68k-bdm-elf-gdb
(gdb) target bdm /dev/bdmcf0
Detected V2 core
GDB target bdm connected to /dev/bdmcf0
Coldfire debug module version is 0 (5206(e)/5272/5282)
Para visualizar os registradores da placa:
(gdb) select-frame 0
(gdb) info reg
Add comment December 6, 2006
Baixar todos os MP3 de uma página
Estava procurando uma forma de baixar todos os MP3 de uma página htmp.
Então encontrei este link:
http://www.veen.com/jeff/archives/000573.html
Neste site encontrei duas dicas legais:
w-get -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off -i mp3blogs.txt
PS.: retire o – de w(-)get
Add comment December 6, 2006
Instalando o QEMU com aceleração (kqemu) no Ubuntu
Achei este tutorial ensinando como instalar o QEMU no Ubuntu:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5155
Os links estavam quebrandos, mas nos próprios comentários podemos encontrar a correção.
Outro problema é que os tar.gz’s não podem ser encontrados, então basta procurar no google por eles e mudar o link no script.
Quando pedir para aplicar o patch do mouse escolha NÃO, do contrário a instalação trava.
Quando terminar a instalação você terá o módulo kqemu corregado no seu sistema e poderá rodar o QEMU turbinado.
Add comment December 5, 2006