Faz tempo que não tenho feito nada com a minha Beagle-xM.
Meu projeto inicial era transformá-la em uma central multimídia (quem sabe até rodando o xbmc?), mas comecei bem pequeno, com um renderer DLNA. Na verdade peguei um pronto (gmediarender) e adaptei pra rodar numa instalação de Debian.
Deste projeto, de longe o mais interessante que eu fiz foi na parte hardware, usando uma GPIO de saída e a SPI3 (ou SPI4 não me lembro agora) para controlar um pequeno amplificador. Este controlador, do lado do software, também ficou bem interessante, já que resolvi expor para o userland como uma placa ALSA (com 3 controles muitos simples: volume, graves/agudos e liga/desliga). Por fim o controle de volume se dá através de uma aplicação HTTP (mas sem frescuras de apache ou nginx; fiz tudo em C com libmicrohttpd e libjansson).
Meu próximo passo - e que ficou lá atrás, mas pretendo retomar um dia - era fazer um player de vídeo que não dependesse do X. Até comecei a aprender a programar pra SDL e ffmpeg, mas não cheguei a fazer o trabalho de sincronização de áudio e vídeo (ou seja, parei no decoding). Fiquei meio decepcionado com a lib ffmpeg (ou libav, que dá no mesmo) porque não consegui fazer meu quase-player ser monoprocessado (a ffmpeg cria threads para fazer o decoding, o que é ótimo para máquinas multiprocessadas como nossos desktops e celulares, mas eu acredito que eu - programador - consiga fazer um trabalho melhor com select(2) em uma máquina monoprocessada e sem diversos outros processos atrapalhando).
Ainda dentro do guarda-chuva "central multimídia" cheguei a brincar com libdrm e KMS dentro da beagleboard. Foi bem emocionante (e não passou disso) ver um JPEG aparecer na tela da TV, sem sequer ter o X instalado. A idéia era algum dia eu poder chutar a libSDL do meu player e trabalhar diretamente com o framebuffer da saída HDMI.