Marcelo Barros

Dispositivos embarcados, Linux, eletrônica, programação, música boa, divagações e viagens.

Página Inicial: http://linuxabordo.com.br

Jabber/GTalk: marcelobarrosalmeida@gmail.com

Lua port for TI Launchpad LM4F120

It took some time but the project is here: my Lua port for TI launchpad LM4F120 !

https://github.com/marcelobarrosalmeida/lua4lm4f

The port is working, exporting a shell over serial. For using it you must have a complete working environment for launchpad, including jtag and serial emulation. Clone, compile and run the project (use code composer).

My next step is to add a lua module for wrapping some I/O ports, A/D and timers. With these components I intend to construct a small Lua based controller.

Lua running on TI Launchpad LM4F120

Lua running on TI Launchpad LM4F120

, , ,

1 Comentário

Instalando os drivers do ICD para a launchpad no Windows 8 (Stellaris LM4F120)

Hoje finalmente consegui algum tempo livre para ligar a minha placa Stellaris LM4F120 (TI Launchpad). O kit vem com uma processador ARM Cortex M4 da Texas, rodando a 80MHz por apenas 13 dólares.

Baixei o Code Composer e fui para o hello world, seguindo instruções da Wiki da Texas. Bom, quase fui: os drivers da interface de JTAG da placa (Stellaris ICDI JTAG/SWD) não sobem no Windows 8. Mesmo baixando diretamente o pacote de drivers, escolhendo a opção de “atualizar driver” na lista de dispositivos e especificando o diretório com os drivers da TI, não adianta. É preciso rebootar o Windows 8 sem a necessidade de assinatura do driver. Só depois você vai conseguir fazer a atualização de drivers. A dica veio daqui.

Com os drivers instalados é possível debugar e acessar o dispositivo como se fosse um console serial. Meu objetivo é ter o Nuttx rodando nesta placa, num futuro não muito longe. Vamos ver onde consigo chegar.

Launchpad

, ,

1 Comentário

Imprima a sua tampa traseira do Lumia 820

Hoje a Nokia liberou os arquivos de modelagem 3D para impressão da tampa traseira do Lumia 820. Achei muito legal, como fã da ideia de impressão 3D caseira. Isto só faz aumentar a minha vontade de ter uma impressora 3D.

No site “Thingiverse” é possível visualizar o modelo:

Modelo 3D da tampa traseira do Lumia 920

Modelo 3D da tampa traseira do Lumia 920

Ainda não foi impresso por ninguém do Thingiverse, segundo estatísticas. Mas vou acompanhar, quero ver se vira moda mesmo.

A licença é Creative Commons Attribution-NonCommercial-ShareAlike

, , ,

Deixe um comentário

Os números de 2012

Os duendes de estatísticas do WordPress.com prepararam um relatório para o ano de 2012 deste blog.

Aqui está um resumo:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 28.000 views in 2012. If each view were a film, this blog would power 6 Film Festivals

Clique aqui para ver o relatório completo

Deixe um comentário

Source code of InstantME available

I published all source code of my Instagram client for S40 phones (called InstantME) on GitHub. I prefer hg as DCS but, when talking about sharing, GitHub has a larger community and better visibility for the project. If you are curious about the project, go there and take a look.

instantmesplash

, ,

Deixe um comentário

Código fonte do InstantME disponível

Publiquei minutos atrás todo o código fonte do meu cliente S40 para Instagram (InstantME agora), no GitHub. Eu prefiro o hg para controlar código mas, em termos de compartilhamento, o GitHub pode dar mais visibilidade ao projeto. Se ficou curioso, corre lá !

instantmesplash

, ,

2 Comentários

Sete assuntos para acompanhar em 2013 sobre Linux Embarcado

Li hoje um artigo interessante sobre Linux embarcado publicado na Linux.com. Neste artigo, eram discutidas sete linhas de evolução atual do Linux na área de sistemas embarcados, a saber:

  • Linux Continues Advance on RTOSes (queria ver o patch PREEMPT RT funcionando para qualquer plataforma …)
  • Embedded Linux Opens Up
  • Android Goes Embedded (pra mim, existe vida além de tablet e smartphones, muito espaço pro Android em GPSs, media centers, geladeiras, Smart TVs, in-vehicle infotainment, etc)
  • Linux Cleans Up its ARM Act
  • Intel Aims for Android, 22nm Atoms, and M2M
  • Autos Don a Tux (tá pra existir ramo mais conservador e sensível ao custo do que estas automotivas, tenho meus receios aqui)
  • Linux Mobile Platforms Arise (conversinha antiga, nhein ?)

Independente de concordar com todos os pontos, como eu mesmo não concordo, vale a pena uma lida.

De tudo, gostaria de ter uma SmartTV Linux com preço baixo, comunidade grande e possibilidades de personalização e modificação, loja de aplicativos, que lesse rmvb e gravasse em padrões abertos, rodasse Netflix direito, suportasse teclado e mouse USB sem pegadinhas, um navegador que abrisse tudo, UPnP decente, acesso a DVD externo com opção de rippar, controle sem fio via BLE ou algo que não seja direcional como infrared, serviços de download em background para torrents e podcasts, preferências por perfis de usuário personalizadas com face detection, detecção de presença para ligar automaticamente no canal pré-definido, suporte a emuladores de jogos e controles comerciais, câmera para conferência, reconhecimento de voz para controle e chats, integração com alarmes residenciais, GPS para programas de tempo/mapas/notícias, etc. Não é pedir muito, é ? :)

Original aqui.

PS: ok, deixo entrar a característica de “redes sociais” … inferno moderno :)

3 Comentários

Gerência de Redes com SNMP – Apostila

Hoje tive o prazer de trocar uma mensagem com o André Déo, que tem um material muito profundo sobre o tema gerência de redes usando SNMP. O André é também o criador da comunidade Zabbix Brasil, um software livre bastante usado para este propósito (mais detalhes aqui).

Se ficou curioso, não deixe de ler o post dele e baixe o material da apostila, disponível neste link.

zabbixbr

,

Deixe um comentário

Administração de Redes Linux – Material didático

Uns dois ou três anos atrás eu dei algumas aulas sobre administração de redes Linux mas me esqueci completamente de compartilhar este material. A seguir, o material que eu produzi, dividido em 3 partes e com exercícios. Cada parte foi originalmente planejada para durar um dia. Talvez algumas parte estejam desatualizadas. Caso você queira os originais para melhorar isso, entre em contato.

Também estou colocando alguns exercícios sobre Bash que já usei como material de ensino. Não quero morrer com nada disto. A licença é “CC BY-NC-SA 3.0“.

, , , ,

3 Comentários

Se não te dão, que tal ir buscar ?

Faz tempo que não fazia nenhum tipo de hacking e, coincidentemente, andei com um problema onde precisava entender o que o webserver de um equipamento fazia em determinada situação. Parecia existir um comando oculto não disponibilizado pela API do equipamento e decidi olhar por mim mesmo, já que a empresa se negou a me mandar a senha de root do equipamento. Antes de mais nada, não esperem nomes aqui ou posso ter um problema de contrato.

Munido do bom e velho espírito hacker, fiz o seguinte:

1) Baixei uma imagem do firmware do fabricante. Geralmente existe alguma imagem de atualização no site. Um simples registro no site, em geral, já te dá acesso a isso.

2) Baixei o binwalk, já comentado pelo Alan e para o qual eu gerei um .deb, para faciliar.

3) Rodei o binwalk e pude perceber que era uma composição de um uboot+uboot parameters+kernel linux+imagem do sistema em JFFS2. Nada de inovador, apenas o já esperado. Bom pra mim. Os valores de offset abaixo (número à esquerda) são fictícios, já que não posso dar os detalhes deste firmware:

DECIMAL         HEX             DESCRIPTION
----------------------------------------------------------------------------
 4660          0x1234        LZMA compressed data ....
 9029          0x2345        uImage header, header siz ....
 13398         0x3456        gzip compressed ....
 17767         0x4567        JFFS2 filesystem ....
....

4) Nenhum mistério. E o que eu precisava,o root file system, estava em JFFS2, esperando minha extração, à partir do offset imaginário 17767:

dd ibs=1 skip=17767 if=firmware.bin of=rootfs.jffs2

5) Montei o JFFS2 em loop, usando uma dica do OpenMoko:

export loop=$(losetup -f)
losetup $loop rootfs.jffs2
modprobe block2mtd block2mtd=$loop,131072
modprobe jffs2
modprobe mtdblock
mkdir rootfs
mount -t jffs2 -o ro /dev/mtdblock0 rootfs

Neste momento, pude inspecionar e olhar o que eu precisava dentro do rootfs.Para minha sorte, o script web dele era implementado em shell script.

6) Como o fabricante me negou o acesso de root, me dando apenas um shell personalizado e bem restrito, resolvi também ver qual eram as credenciais de acesso. Para isto, copiei o rootfs/etc/shadow chamei o meu amigo John:

sudo apt-get install john
john -incremental -users:root

Ainda estou esperando terminar (~21 horas e contando), mas em breve terei a senha de root também. Na última fez que fiz isso, com o mesmo fabricante mas uma imagem mais antiga, demorou 3 dias. Só que, naquela época, ele não usava shadow, apenas o /etc/passwd com direito de leitura para todos. Daí, apenas quebrei a senha, não precisei fazer nada do que descrevi aqui.

Happy hacking !

9 Comentários

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 499 outros seguidores