Pages

Monday, November 8, 2010

Compilando e linkeditando no Madde com libs externas

Quando você quer buildar uma aplicação no MADDE usando alguma lib externa você provavelmente terá problemas durante a linkedição, provavelmente porque o compilador não acha o caminho da lib externa dentro do sysroot-dir do MADDE.

Então você terá duas possíveis soluções.

1. Copiar a lib para o mesmo caminho de diretórios dentro do sysroot-dir do MADDE.

2. A outra que eu uso é montar o mesmo caminho de diertórios da lib dentro so sysroot-dir do MADDE:

Supondo que a sua lib se encontre no caminho /opt/workspace/mylib/foo.so no seu desktop. Tudo o que você precisa fazer é montar o seu workspace, com o mesmo caminho, dentro do sysroot-dir do MADDE.

Crie o mount point:
$ mkdir -p $(mad query sysroot-dir)/opt/workspace

Mounte o caminho no MADDE:
$ mount --bind /opt/workspace $(mad query sysroot-dir)/opt/workspace

Agora é só buildar o código.

Friday, October 29, 2010

Compilando com MADDE + icecream

Dependências

Você precisa ter as seguintes dependências em seu desktop:
  1. icecc instalado e configurado.
  2. Nokia Qt SDK instalado.
  3. Script madde-icecc-create-env baseado no /usr/lib/icecc/icecc-create-env modificado por mim.
  4. Script madde-icecc-export-var para exportar as variáveis de ambiente.
O MADDE será instalado pelo NokiaQtSDK.

Salve, com permissão de execução, os scripts madde-icecc-create-env e madde-icecc-export-var em algum lugar de sua preferência. Por exemplo no /opt/icecc .

No meu desktop o NokiaQtSDK está instalado no /opt/NokiaQtSDKv101 .


Criando icecc tarball para compilação com MADDE

Exporte o caminho para o script do MADDE na variável de ambiente PATH:

$ export PATH=/caminho_do_NokiaQtSDK/Maemo/version/bin:$PATH

no meu desktop:
$ export PATH=/opt/NokiaQtSDKv101/Maemo/4.6.2/bin:$PATH

Teste se o comando mad está no PATH:

$ mad query install-dir
/opt/NokiaQtSDKv101/Maemo/4.6.2

Agoro você pode criar o arquivo tarball para a variável de ambiente ICECC_VERSION.

Descubra qual é a toolchain usada pelo MADDE:

$ mad list toolchains
arm-2007q3-51sb6-gdb71-arm-none-linux-gnueabi_linux

Agora execute o script madde-icecc-create-env passando como parâmetro o caminho para os compiladores gcc e g++ da toolchain do MADDE:

$ /opt/icecc/madde-icecc-create-env caminho_toolchain_gcc caminho_toolchain_g++

no meu desktop:

$ /opt/icecc/madde-icecc-create-env /opt/NokiaQtSDKv101/Maemo/4.6.2/toolchains/arm-2007q3-51sb6-gdb71-arm-none-linux-gnueabi_linux/bin/arm-none-linux-gnueabi-gcc /opt/NokiaQtSDKv101/Maemo/4.6.2/toolchains/arm-2007q3-51sb6-gdb71-arm-none-linux-gnueabi_linux/bin/arm-none-linux-gnueabi-g++

Se tudo ocorrer bem, você deverá ver um log parecido com:

adding file /usr/bin/gcc=/tmp/gccBIHd
adding file /lib/libc.so.6
adding file /lib/ld-linux.so.2
adding file /usr/bin/g++=/tmp/gxxVcgP
adding file /etc/specs=/opt/NokiaQtSDKv101/Maemo/4.6.2/targets/fremantle-pr13/specs
adding file /usr/bin/arm-gcc=/opt/NokiaQtSDKv101/Maemo...arm-none-linux-gnueabi-gcc
adding file /usr/bin/arm-g++=/opt/NokiaQtSDKv101/Maemo...arm-none-linux-gnueabi-g++
adding file /usr/bin/as=/opt/NokiaQtSDKv101/Maemo.../arm-none-linux-gnueabi/bin/as
adding file /usr/bin/cc1=/opt/NokiaQtSDKv101/Maemo...arm-none-linux-gnueabi/4.2.1/cc1
adding file /usr/bin/cc1plus=/opt/NokiaQtSDKv101/Maemo...ne-linux-gnueabi/4.2.1/cc1plus
adding file /etc/ld.so.conf=/tmp/icecc_ld_so_confNcr3bu
creating 8e05a9e0a927618bb98a19dd6bbb272b.tar.gz


Agora você precisa salvar o tarball gerado em algum lugar de sua preferêcia. Por exeplo no /opt/icecc/8e05a9e0a927618bb98a19dd6bbb272b.tar.gz


Ajustando script export-var

Agora você precisa ajustar o script madde-icecc-export-var para o seu ambiente.

Altere a variável ICECC_VERSION para o caminho do tarball gerado pelo script madde-icecc-create-env acima. Depois delete a linha "echo TODO: Change ICECC_VERSION var first so delete this line!" && return 1"

Descubra o install dir do madde:
$ mad query install-dir
/opt/NokiaQtSDKv101/Maemo/4.6.2

altere a variável MADDE_INSTALL_DIR para o caminho retornado pelo comando acima. Depois delete a linha "echo TODO: Change MADDE_INSTALL_DIR var first so delete this line! && return 1"

Compilando com MADDE + icecc

Com os ajustes feitos, abra um novo terminal e execute o script madde-icecc-export-var:

$ . /path/madde-icecc-export-var

no meu desktop:

$ . /opt/icecc/madde-icecc-export-var

Não esqueça do ponto antes do script para que as variáveis sejam exportadas para o terminal.

Testando:

$ cd /opt/NokiaQtSDKv101/Examples/4.6/graphicsview/elasticnodes/
$ qmake && make -j4
$ file elasticnodes
elasticnodes: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked ...

Se tudo ocorrer bem você terá um abiente MADDE + icecc funcionando perfeitamente.

Referências:
  1. http://en.opensuse.org/Icecream
  2. http://wiki.maemo.org/Icecream_Scratchbox_Howto

Saturday, April 19, 2008

http://ragner.org

Hi all,
Now I have my own domain
so this is my last post here ...

My new blog/domain is http://ragner.org

Thanks and
God bless you ... :P

Friday, March 28, 2008

Installing the Maemo in MMC card

Installing the rootfs in MMC card
Booting your Nokia tablet from the MMC card


= Becoming root =

Install the following packages:
* becomeroot
* osso-xterm

After installed these packages, start the Xterm and run the following command line:
$ sudo gainroot


= Creating the MMC big partition =

# sfdisk /dev/mmcblk0 <<> ;
> EOF


# sfdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 61440 cylinders, 4 heads, 16 sectors/track
Units = cylinders of 32768 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/mmcblk0p1 0+ 61439 61440- 1966079+ 83 Linux
/dev/mmcblk0p2 0 - 0 0 0 Empty
/dev/mmcblk0p3 0 - 0 0 0 Empty
/dev/mmcblk0p4 0 - 0 0 0 Empty

= Formating the MMC partition =

# mke2fs /dev/mmcblk0p1


= Cloning the whole original system =

== Modules dependences ==

# insmod /mnt/initfs/lib/modules/2.6.21-omap1/mbcache.ko
# insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext2.ko

== Mounting the MMC card ==

# mount -t ext2 /dev/mmcblk0p1 /media/mmc1

== Mounting the flash ==
# mount -t jffs2 -o ro /dev/mtdblock4 /floppy

== Cloning from flash to MMC ==

Before continuing it is better to close internet connection...

# tar cf - -C /floppy . | tar xvf - -C /media/mmc1

== Setting the new rootfs ==

# chroot /mnt/initfs cal-tool --set-root-device mmc
# shutdown -r now


References:
http://maemo.org/community/wiki/HowTo_EASILY_BecomeRoot
http://maemo.org/community/wiki/HowTo_EASILY_Partition_your_MMC_card
http://www.math.ias.edu/doc/util-linux-2.12a/sfdisk.examples

Thanks,
Ragner Magalhães

Tuesday, March 25, 2008

Using mencoder to save your webcam stream

this is to save your webcam stream:

mencoder tv:// -tv driver=v4l2:width=60:height=40:fps=60:device=/dev/video0 -nosound -ovc
lavc -lavcopts vcodec=mjpeg -o test.avi

You just need mplayer with v4l2 support compiled in.

Using mplayer to watch your webcam

This is to watch your webcam in the mplayer:

mplayer tv:// -tv driver=v4l2:width=60:height=40:fps=90:device=/dev/video0 -nosound

You just need mplayer with v4l2 support compiled in.

Wednesday, January 9, 2008

Debian nVidia Dual Head

Linux + Debian + nVidia + Dual Head + VGA + DVI

Olá Pessoal,
Hoje vou mostrar como usar dois monitores(Dual Head) no Debian com nVidia.

~$ cat /etc/X11/xorg.conf
...

Section "Module"
Load "bitmap"
Load "dbe"
# Sem "dri"
Load "ddc"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "v4l"
Load "vbe"
EndSection

...

Section "Device"
Identifier "nVidia Corporation NV34GL [Quadro FX 500/600 PCI]"
Driver "nvidia"
BusID "PCI:1:0:0"
# Dual Head
Option "TwinView" "True"
EndSection

Section "Monitor"
Identifier "DELL 1908FP"
Option "DPMS"
HorizSync 30-65
VertRefresh 50-75
EndSection

Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation NV34GL [Quadro FX 500/600 PCI]"
Monitor "DELL 1908FP"
DefaultDepth 16
Option "DPMS"
# Dual Head
Option "TwinView" "true"
# Sync/Refresh de cada monitor
Option "HorizSync" "DFP-0: 30-65; DFP-1: 30-65"
Option "VertRefresh" "DFP-0: 50-75; DFP-1: 50-75"
# Segundo monitor do lado direito do primeiro.
Option "TwinViewOrientation" "DFP-1 RightOf DFP-0"
# Resolução de cada monitor
Option "MetaModes" "DFP-0: 1280×1024, DFP-1: 1280×1024"
# Dois monitores LCD(pode ser crt)
Option "ConnectedMonitor" "lcd,lcd"
SubSection "Display"
Depth 16
Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection


---

Referência

http://umgeher.wordpress.com/2006/09/01/dual-head-usando-nvidia

Wednesday, January 2, 2008

Converting Youtube Video to the Creative Zen Vision:M

Hi all,
today I will teacher you how to convert youtube's videos
.flv format to Creative Zen Vision:M's videos .avi format
using the mencoder Linux/Debian command.

# mencoder file1.flv -o test1.avi -vf scale=320:240 -oac mp3lame -ovc xvid -xvidencopts bitrate=800


If you get any
error message from codec xvid, you need compile the MPlayer with xvid codec support.

Get the Mplayer source code and the "Binary Codec Packages"
from
http://www.mplayerhq.hu/design7/dload.html

Extract the "Codecs" and put it in the directory /usr/lib/win32
Extract the MPlayer source code in some directory.

Install the libxvidcore-dev Package From
#mirros multimidia
deb http://debian-multimedia.org/ etch main
deb http://ftp.debian-unofficial.org/debian etch main contrib non-free

# apt-get update
# apt-get install libxvidcore-dev


Compile the Mplayer
Into the MPlayer source directory run:
../MPlayer-1.0rc1$ ./configure --prefix=/usr/local --enable-gui --enable-xvid --enable-largefiles --enable-menu --enable-gif --enable-png --enable-jpeg --with-win32libdir=/usr/lib/win32
../MPlayer-1.0rc1$ make

And as root run:
../MPlayer-1.0rc1# make install

Try again:

# mencoder file1.flv -o test1.avi -vf scale=320:240 -oac mp3lame -ovc xvid -xvidencopts bitrate=800

Thanks,
God bless you ... :D

Saturday, December 29, 2007

Convertendo Vídeos Youtube para o Creative Zen Vision:M

Olá pessoal,
hoje vou ensinar como converter vídeos do youtube .flv
para serem tocados no Creative Zen Vision:M
usando o mencoder do Linux/Debian.

# mencoder file1.flv -o test1.avi -vf scale=320:240 -oac mp3lame -ovc xvid -xvidencopts bitrate=800


Caso você tenha algum problema com o codec xvid, você deve recompicar
o mplayer com suporte a xvid.

Baixe o código fonte do Mplayer e baixe também os
"Binary Codec Packages" nesse mesmo link abaixo:
:
http://www.mplayerhq.hu/design7/dload.html

Extraia e coloque os Codecs no diretório /usr/lib/win32
Extraia o código fonte do Mplayer no diretório de
sua preferência.

Instale o pacote libxvidcore-dev
Caso você não tenha esse pacote na sua lista de pacotes
adicione os mirrors
#mirros multimidia
deb http://debian-multimedia.org/ etch main
deb http://ftp.debian-unofficial.org/debian etch main contrib non-free

no seu /etc/apt/sources.list

# apt-get update
# apt-get install libxvidcore-dev



Compile o Mplayer
Dentro do diretório Maplyer execute:
../MPlayer-1.0rc1$ ./configure --prefix=/usr/local --enable-gui --enable-xvid --enable-largefiles --enable-menu --enable-gif --enable-png --enable-jpeg --with-win32libdir=/usr/lib/win32
../MPlayer-1.0rc1$ make

e como usuário root execute:
../MPlayer-1.0rc1# make install

Tente novamente:

# mencoder file1.flv -o test1.avi -vf scale=320:240 -oac mp3lame -ovc xvid -xvidencopts bitrate=800

Falow Pessoal,
Feliz Ano Novo ...
E Deus te abençôe ... :D

Saturday, December 15, 2007

Linux command to set the screen size

Hi all,
today I will teacher how to set the screen size using xrandr Linux command.

To find out what sizes are available, run:
$ xrandr -q
SZ: Pixels Physical Refresh
*0 1024 x 768 ( 271mm x 203mm ) *75 70 60
1 800 x 600 ( 271mm x 203mm ) 75 72 60 56

To set the screen size to an available size, run:
$ xrandr -s 800x600

Thanks,
God bless you ... [:P]

Comando Linux xrandr alterar resolução da tela

Olá pessoal,
Hoje vou ensinar como alterar a resolução da tela no Linux
através do comando "xrandr".

Para ver as resoluções disponíveis execute:
$ xrandr -q
SZ: Pixels Physical Refresh
*0 1024 x 768 ( 271mm x 203mm ) *75 70 60
1 800 x 600 ( 271mm x 203mm ) 75 72 60 56
...

Para alterar para uma das resoluções disponíveis:
$ xrandr -s 800x600

Deus te abençôe [:P],
Ragner Magalhães

Saturday, November 24, 2007

Creative Zen Vision:M 60G Linux Problem

Hi all,
I had a problem with the Creative Zen Vision:M 60G
--
usb 4-5: new high speed USB device using ehci_hcd and address 5
usb 4-5: configuration #1 chosen from 1 choice
usb 4-5: can't set config #1, error -110
--
The firmware version 1.11.04 doesn't response to set config command
and stay crazy ...

It was working on Window$, I don't know how! but the problem
is with the firmware 1.11.04, it has a bug.

Check your firmware in:
Sistem->Information->Version: 1.11.04

Update it to the more new version!!
I updated it to version 1.21.02 and it is working fine now!!!

Thanks for Creative for selling a messed up device .. :P !!!
Best regards to Linux guys!!

Problema Creative Zen Vision:M 60G Linux

Olá pessoal,
Eu tive um problema com o Creative Zen Vision:M 60G no Linux:
--
usb 4-5: new high speed USB device using ehci_hcd and address 5
usb 4-5: configuration #1 chosen from 1 choice
usb 4-5: can't set config #1, error -110
--

O firmware na versão 1.11.04 não responde ao comando set config,
travando o dispositivo.

Apesar de ele funcionar no Window$, não sei que gambiarra eles fizeram para
funcionar, na verdade o problema é com o firmware na versão 1.11.04
ele está com bug. Confira em Sistema->Informações->Versão: 1.11.04
Atualize o firmware para a versão mais nova!!
no meu caso eu atualizei para a versão 1.21.02 e tudo funcionou!

Muito obrigao a Creative por vender um produto Bugado !!!
E ao pessoal do Linux considerações Open Source ... :D

Thursday, November 1, 2007

Playing DVD ISO or IMG files

If you want to play a DVD ISO file
just run:

Para executar/visualizar uma imagem ISO de DVD:


mplayer -dvd-device img.iso dvd://1


Wednesday, September 26, 2007

Convertendo vídeos youtube ffmpeg

Olá pessoal,
hoje vou ensinar como converter os vídeos do youtube formato .flv para outros formatos de vídeo(avi, mpeg, etc) usando ffmpeg.
Eu estou usando Debian etch.
Esse post é uma continuação do post anterior "Baixando video youtube firefox".
Primeiro para ver se o formato de vídeo que você quer converter é suportada pelo ffmpeg execute o comando:
/* Listando os formatos suportados */
# ffmpeg -formats

Para converter os vídeos:

/* Convertendo de flv para avi */
# ffmpeg -i /tmp/foo_video.flv /tmp/foo_video.avi

/* Convertendo de flv para mpeg */
# ffmpeg -i /tmp/foo_video.flv /tmp/foo_video.mpeg

Friday, September 21, 2007

Baixando video youtube firefox

Olá Pessoal,
Hoje vou ensinar como baixar os vídeos do youtube usando firefox.
Na verdade enquanto você está assistindo um vídeo do youtube o firefox já está baixando esse vídeo, tudo que você precisa saber é onde o firefox está baixando-o.
Eu uso uma distribuição debian etch, e no meu caso, o firefox baixa os vídeos no /tmp :

ragner@ragner-laptop:$ ls -lrt /tmp/Flash*
-rw------- 1 ragner ragner 47567 2007-09-21 11:04 FlashKWfKkh /* Primeiro vídeo assistindo. */
...
-rw------- 1 ragner ragner 44672 2007-09-21 11:04 FlashB4rS0 /* Último vídeo assistindo. */

IMPORTANTE: Esses arquivos permanecem no /tmp somente enquanto o vídeo estiver aberto no firefox.

Portanto para "baixar o vídeo do youtube" basta você esperar ele ser totalmente carregado pelo firefox e:

ragner@ragner-laptop:$ ls -lrt /tmp/Flash*
-rw------- 1 ragner ragner 47567 2007-09-21 11:04 FlashKWfKkh /* Meu vídeo. */

ragner@ragner-laptop:~$ file /tmp/FlashKWfKkh /* Para conferir o formato do vídeo. */
/tmp/FlashKWfKkh: Macromedia Flash Video

ragner@ragner-laptop:~$ cp /tmp/FlashKWfKkh /home/ragner/videos_youtube/foo_videos.flv

ragner@ragner-laptop:~$mplayer /home/ragner/videos_youtube/foo_videos.flv

VANTAGEM: menos um plugin consumindo memória. [:P]

God bless you ... [:D]

Wednesday, September 19, 2007

Doando sangue no HEMOAM

Olá Pessoal,
Ontem eu fui fazer a minha primeira doação de sange no HEMOAM - Fundação de Hematologia e Hemoterapia do Amazonas.
Bem, sinceramente foi bem mais simples do que eu imaginava, foi tudo super tranquilo.
O pessoal lá super atencioso, durante a transfusão você quase não sente nada.
Se alguém como eu sempre teve vontade de fazer a doação, mas teve medo de doer ou alguma outra coisa do tipo, pode ir que você vai se surpreender positivamente.


Acho que o problema maior está na nossa cabeça.


"Doar sangue não custa nada, não dói, é rápido e você se sente bem com essa atitude."

God bless you.

Tuesday, September 18, 2007

Segmentation fault during g_thread_init(NULL);

A possible solution for Segmentation fault during g_thread_init(NULL); is you to change
gthread to gthread-2.0 during your configuration
e.g. AC_CHECK_LIB(gthread-2.0, g_thread_init)
or to use -lgthread-2.0 instead -lgthread as parameter to the compiler.

undefined reference to `g_thread_init'

If you get this error message
"undefined reference to `g_thread_init'"
during the compilation of your code, that use GLib.

Solution 1 - Using configure.in
insert the follow code line in your configure.in
AC_CHECK_LIB(gthread-2.0, g_thread_init)

Solution 2 - Compiler command line
add the parameter
-lgthread-2.0
to the compiler.

Thursday, September 13, 2007

2D Barcode - Código de barra 2D


Olá pessoal,
Hoje vou falar um pouco sobre código de barra em 2D.
Nada aprofundado, pois o objetivo aqui é só fazer você conhecer a tecnologia e apontar um caminho onde você pode encontrar mais informações.

Você pode ver ao lado um código de barra 2D que contém o meu nome como informação, "Ragner Magalhaes".

Para saber um pouco mais sobre isso, "Google é meu amigo ... [:P]", ou aqui http://mobilecodes.nokia.com/index.htm.

Bem eu testei essa tecnologia no meu N80 [:P] e funciona!!

Para saber sobre softwares para celular que reconhecem 2D barcode visite esse link http://mobilecodes.nokia.com/scan.htm eu recomento o "I-nigma reader" - www.i-nigma.com

incluse nesse site tem como você criar os seus próprios códigos 2D http://www.i-nigma.com/personal/Create.asp.

Acho que a idéia é que no futuro os produtos vão vir com esse tipo de código e você vai lá com o seu celular, faz um scan do código, e ler as informações ... [:D]

Ou você pode usar isso para mandar mensagens "secretas" ... :P
Aproveita que pouca gente sabe sobre o assunto ...

Thanks,

God bless you!

References

http://mobilecodes.nokia.com/learn.htm
http://www.i-nigma.com/personal/Default.asp