Slackware64

“Cross Compilando” SQLite para Raspberry Pi

Postado em Atualizado em

Olá!

Continuando o aprendizado da raspberry pi, vi a necessidade de usar um banco de dados para armazenar configurações do sistema que estou projetando em C. Entre as opções de bancos, temos o Postgres, MySQL, Firebird, etc…. Entendo que são excelentes plataformas de manipulação de dados mas não preciso de tanto poder assim para minha aplicação que é bem simples (armazenar dados e configurações). Outro problema dessas plataformas é que possuem um monte de arquivos e dependências que são complicadas para gerenciar em um sistema de “cross compile” para a Raspberry Pi (Eu faço o desenvolvimento no meu Slackware/Eclipse e depois transfiro para o Raspberry através de SSH o executável… Tá… Já sei….)

Então, procurando uma solução, me lembrei do SQLite usado no Amarok do KDE… Então vi que o mesmo é usado em várias soluções embarcadas também por causa da praticidade e otimização do seu funcionamento.

Ao procurar mais detalhes; Entendi porque… Ele tem uma forma de organização conhecido como “amalgamation“que simplifica todo conjunto de arquivos em dois arquivos, um .c e outro .h. Mais detalhes: http://www.sqlite.org/howtocompile.html

Então, fiz meu main.c, adicionei as bibliotecas e PUF…. Olha o resultado:

Erro_sqlite
Erro na primeira compilação (Como se fosse novidade…)

Isso se deve a falta das bibliotecas pthread e dl que são bibliotecas usadas pelo SQLite. Para resolver esse problema temos dois caminhos:

  1. Retirar as bibliotecas “renegadas”;
  2. Compilar referenciando as bibliotecas, já que as mesmas estão disponíveis no toolchain padrão que uso para “cross compilação” que você pode encontrar a referencia em https://marcelommcouto.wordpress.com/2013/12/27/criando-um-ambiente-de-programacao-raspberry-pi/

Usando a primeira solução, temos a falta das seguintes facilidades que não serão incluídas na compilação do SQLite:

The pthreads library is needed to make SQLite threadsafe. But since the CLI is single threaded, we could instruct SQLite to build in a non-threadsafe mode and thereby omit the pthreads library. The -ldl library is needed to support dynamic loading, the sqlite3_load_extension() interface and the load_extension() SQL function. If these features are not required, then they can be omitted using SQLITE_OMIT_LOAD_EXTENSION compile-time option:

Ou seja, sem threads e o carregamento dinâmico de dados… Se para você não tem necessidade, adicione os #define em SQLite.c (sem estar comentado, claro!):

#define SQLITE_THREADSAFE 0
#define SQLITE_OMIT_LOAD_EXTENSION

sol_sqlite_1
Se você chegou aqui, você quer saber como fazer o segundo passo também e não perder nenhuma facilidade correto? Bom, para isso é só editar os parâmetros do compilador, indicando ao Eclipse onde procurar as bibliotecas faltantes (pthread e dl) em Libraries, lembrando que elas estão disponíveis na toolchain que uso para “cross compilação”:

sol_sqlite_3

Depois de escolher uma das opções, execute o build e se tudo estiver correto, teremos a tela abaixo:

Viram que escolhi a opção 2…. 😉

No mais, bom desenvolvimento na ótima plataforma Raspberry!

Até!

Como configurar o Arduino no Slackware

Postado em

slackao-18082008

Olá!

Depois de meses sem postar nada, segue abaixo um link para você, igual a mim, que está querendo configurar de forma rápida o seu arduino no Slackware.

Segue o link: http://home.comcast.net/~bender647/arduino/

Não esqueça de depois de configurar o grupo do seu usuário no KDE, fazer logout e login para ter acesso a serial.

Até!

Instalando Java no Slackware 64

Postado em Atualizado em

Olá!

images

Deja vu? Eu já fiz um post aqui ensinando como configurar… Dessa vez tive que fazer novamente e achei um texto do alienbob dizendo como fazer:

“For ready-made packages (for Slackware-current !) you can check the two directories “pkg64″ (containing 64bit versions) and “pkg” (for the 32bit version of Slackware).  If you want to install my pre-built packages, then all you really need are “rhino” which is the JavaScript engine, “icedtea-web” which is the browser plugin, and one of “openjdk” or “openjre” packages, depending of course on whether you need the full Java compiler suite or only the Java Runtime Environment.”

Traduzindo: Para habilitar o java no Firefox instale os pacotes rhino, icedtea-web e openjre que são encontrados no repositorio do alienbob em: http://www.slackware.com/~alien/slackbuilds/. Pode instalar os pacotes pré-compilados, reiniciar o seu navegador e pronto!

Caso ainda tenha problemas, verifique se essa página não pode te ajudar: http://pprjbgbo.wordpress.com/2012/03/21/acessando-o-banco-do-brasil-pelo-firefox-no-linux/

Até!

Instalando Slackware64 no Vostro 3550 – Second Step

Postado em

images

Olá.

Hoje eu continuo a descrever o meu processo de instalação do Slackware… Depois de fazer as modificações que me referi, eu fiz a modificação no lilo.conf para diminuir o tempo de boot do lilo, alterando a seguinte linha:

timeout = 50 # Tempo de 5 segundos.

Para continuar a instalação, queria ouvir uma musica MP3 no amarok, foi quando eu vi que o mesmo não tocava MP3! Deve ser porque retirei o xine/mplayer/Gstreamer-Mplayer e Gstreamer-Xine (menos plugins para o kde gerenciar…) mas procurei um pouco e vi que os codecs do mp3 estavam associados a um pacote do gstreamer-bad que era necessário instalar…

Já que tinha que instalar esse pacote, achei melhor já instalar o sbopkg. Ao fazer a instalação do sbopkg, posso instalar os pacotes Slackware encontrados no Slackbuilds. Faça o download em http://www.sbopkg.org e instale usando o comando installpkg da seguinte forma:

#installpkg sbopkg*.tgz

Com isso tive acesso ao mundo maravilhoso da compilação assistida do Slackware! Mas… Apesar de achar que o melhor é compilar seu código e controlar o desempenho, os pacotes estavam desatualizados e acabei optando por uma segunda fonte de pacotes que foi do Alienbob (http://taper.alienbase.nl/mirrors/people/alien/slackbuilds/).

Aqui acabei baixando a versão já compilada para adiantar meu trabalho (mas depois eu compilo usando os mesmos fontes do Alienbob…). Para tornar meu sistema mais usável instalei:

Essa foi a primeira leva de programas… Depois eu continuo o processo aqui…

Até!

Instalando Slackware64 no Vostro 3550 – First Step

Postado em

imagesOlá!

Depois de um dilema interno, resolvi sair da comodidade do Ubuntu e ir para o Slackware again!!!! Podem me taxar de louco, mas eu não consigo mesmo usar o Ubuntu inchado e com bugs… Outro motivo foi a dificuldade que venho encontrando ao resolver problemas no Linux que eu não tinha antes, sendo que eu acho que a facilidade do Ubuntu me estragou! hahaha…. Bom, como eu estou instalando o Slackware, segue aqui algumas coisas que eu notei durante a instalação e os programas que eu estou instalando e suas funções…

Comecei pela imagem do Slackware64 14.0 que eu tenho aqui, apesar de querer instalar o current… Com a instalação completa, só retirando os pacotes do EMACS, TEX, XFCE e GAMES… Depois de instalado, notei que o networkmanager conectava na minha rede sem fio mas não tinha troca de pacotes… Como eu não estava querendo procurar resolver o problema (Culpa do Ubuntu…) eu coloquei a rede cabeada mesmo e já fui para os comandos:

# vim /etc/slackpkg/mirrors (Selecionei um mirror do Current nos USA, que são atualizados mais rapidamente que o brasileiro)

# slackpkg update && slackpkg upgrade-all

Depois disso, meu kernel era o 3.7.1, meu kde 4.10 e meu firefox 18! Reiniciei o sistema e verifiquei que minha rede wireless voltou a funcionar mas meu bluetooth por algum motivo ainda não viveu!

Também editei os arquivos fstab e inittab, adicionando:

fstab: Coloquei para a montagem da partiçao root a flag noatime que melhora o desempenho de I/O.

inittab: Mudei o modo de inicialização do Init de 3 para 4 e retirei os consoles adicionais (Habito desde o slackware 8)

Já alterei muita coisa mas amanhã coloco mais detalhes e os problemas que tive e ainda tenho!

Até!

 

Instalando ATI Catalyst 12.10 no Slackware64-Current (17/01/2013)

Postado em

images1

Olá.

Estou instalando o Slackware no meu computador essa semana e precisei colocar os drivers da ATI no meu Vostro 3550… Depois de procurar na Internet, achei um post em http://henryhermawan.blogspot.com.br/2012/12/amd-catalyst-patch-for-kernel-37x.html que me ajudou bastante… Só esqueceu de colocar que a instalação tem que ser feita em modo EXPERT… Abaixo segue o procedimento adotado.

      • Execute como root:../amd-driver-installer-catalyst-12.10-x86.x86_64.run
      • Siga as instruções e quando solicitado pela instalação expert, escolha essa opção!
      • Teremos erros nesta instalação… Isso é esperado e feche o instalador.
      • No terminal, copie o patch de correção para o kernel atual do Slackware (14) (fglrx-3.7.patch) para /lib/modules/fglrx/build_mod/
      • Ainda no terminal, faça o seguinte link simbólico:
        • # ln -s /lib/modules/3.7.1/build/include/generated/uapi/linux/version.h /lib/modules/3.7.1/build/include/linux/version.h
      • Vá para o diretório /lib/modules/fglrx/build_mod/
      • Aplique o patch de correção no fonte do fglrx (ATI Driver):
        • # patch -p0 < fglrx-3.7.patch
      • Faça a compilação dos módulos do fglrx:
        • # ./make.sh
        • # cd ..
        • # ./make_install.sh
      • Reinicie!

Até!

Sofia-SIP Slackbuild para GnomeSlackbuild

Postado em Atualizado em

Olá!

Hoje eu decidi que iria instalar um cliente SIP no meu Linux pois a Exsto agora está com um servidor VoIP e gostaria de testar o acesso externo. Depois de avaliar vários clientes, resolvi instalar um módulo SIP no meu Empathy.

O objetivo é concentrar todo tipo de comunicação (MSN/Gtalk/Facebook/SIP) no mesmo lugar e evitar a instalação de programas redundantes. Como uso o gnomeslackbuild da versão 2.32, o desafio(?) era adicionar este plugin no Empathy.

Depois de analisar, vi que era só instalar o telepathy-sofiasip para o meu Empathy ficar com acesso ao SIP. Como nada é tão fácil como parece, vi que tinha uma dependência do sofia-sip e essa dependência seria fácil se existisse um Slackbuild para instalação. Como eu não achei uma a contento, resolvi fazer a minha baseado nas informações que achei em dois sites (Obrigado PhantonX e Slacky).

Assim, se você quiser um Slackbuild simples de instalação do sofia-sip, pegue AQUI.

Assim, fica tudo na nuvem e qualquer sugestão/critica deixe um comentário.

Até!

MSN no Empathy 2.31 + Slackware64

Postado em Atualizado em

Olá!

Post rápido aproveitando a falta de sono neste domingo… Bom, eu estou compilando o gnome 2.32 para o Slackware64 e depois de instalar os pacotes padrão, resolvi instalar o Empathy para concentrar todas a comunicações em um só programa (Gtalk, Facebook, VoIP e MSN). Depois de compilar o telepathy-butterfly e algumas das suas dependências, o Empathy não conectava no MSN de jeito nenhum sempre aparecendo Network error.

Procurando soluções no Google, vi configurações e até a sugestão para remover o telepathy-butterfly! 0.o

Depois de um tempo, fui ao site do telepathy e descobri o módulo telepathy-haze, que utiliza a libpurple para conectar o Empathy em inúmeros IM tornando a instalação do butterfly e suas dependências, desnecessária.

Detalhe: A libpurple não é uma biblioteca instalavel sozinha, sendo necessária a instalação do Pidgin (Slackware package) para instalar a mesma…. Procurei esta biblioteca sozinha como código-fonte para instalação mas como ela é mantida pelo pessoal do pidgin, eles colocaram a mesma integrada.

Assim, somos obrigados a instalar o Pidgin para usar o telepathy-haze no Empathy.

Source code… Neste caso parece, para mim, venda casada….

Até!

Compilando o OpenOCD 0.4.0 no Slackware64

Postado em Atualizado em

Olá!

Para quem trabalha com desenvolvimento de microcontroladores, uma excelente plataforma para gravação e depuração pode diminuir muito o tempo de desenvolvimento. Mas como eu já disse em alguns post’s anteriores, todas as plataformas de desenvolvimento são focadas no Windows e para quem usa o sistema operacional Linux sempre foi uma tarefa dificil mesmo para as plataformas sempre opensource como ARM.

Mas como minha plataforma atual é ARM e estou tentando usar essa plataforma no meu Linux, hoje eu fiz a instalação do OpenOCD no meu Slackware64.

O OpenOCD é um servidor JTAG que é usado para gravação e depuração mas sua instalação e configuração não são triviais, inclusive fiz um manual deste para o XM700 da Exsto Tecnologia para o Windows.

Aqui eu coloco o procedimento de instalação e configuração da versão 0.4.0 que instalei hoje:

Primeiro, temos que baixar os drivers de uso do FT2232D. Este driver é necessário pois o mesmo é usado no meu JTAG que foi desenvolvido pela Exsto e baseado em alternativas Opensource.

Portanto, baixe o driver versão 0.4.16 do mesmo em: http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx0.4.16_x86_64.tar.gz

OBSERVAÇÃO: Não use a versão acima de 1.0 ainda pois na hora de compilação o mesmo vai apresentar erros. Acho que o OpenOCD ainda não está preparado para a versão do Driver mais atual.

Descompacte e faça os passos:

  • Copie o arquivo libftd2xx.so.0.4.16  para /usr/local/lib/
  • Faça o link simbolico do /usr/local/lib/libftd2xx.so.0.4.16 em  /usr/local/lib/libftd2xx.so
  • Faça o link simbolico do /usr/local/lib/libftd2xx.so.0.4.16 em /usr/lib/libftd2xx.so
  • Copie o arquivo ftd2xx.h e WinTypes.h para /usr/include
  • Execute o comando ldconfig
  • Adicione ao /etc/fstab a seguinte linha: none /proc/bus/usb usbfs defaults,devmode=0666 0 0
  • Rode o comando mount -a para atualizar os dispositivos montado

Depois de preparar o ambiente para a instalação do OpenOCD, vamos a ele. Baixe a versão do OpenOCD 0.4.0 em: http://sourceforge.net/projects/openocd/files/  descompacte e entre no diretório criado e siga os passos abaixo:

  • Prepare os fontes para compilação: ./configure –enable-ft2232_ftd2xx
  • Use o comando make para compilar os fontes.
  • Entre no modo de super usuário e digite make install ou use o checkinstall
Assim, se nada deu errado, o executável openocd estará disponível no /usr/local/bin
No mais, passo a passo simples mas nem sempre disponível. Assim não esqueço mais.
Fontes: Google
Até!

Instalando o Vmware-Server no Slackware

Postado em Atualizado em

Olá!

Dica rápida. Estava procurando uma forma de colocar o vmware-server no slackware mas a instalação pedia alguns diretórios que não existem no Slackware. Então para fazer a instalação, tive que criar, mesmo que de forma provisória estes diretórios usando os comandos abaixo:

# mkdir /etc/rc.d/{init,rc{0,1,2,3,4,5,6}}.d

# mkdir /etc/pam.d

Só lembrando que para instalar o vmware-server, devemos fazer o download do mesmo no site e executar os comandos:

# tar xvzf VMware-server-1.0.3-44356.tar.gz

#cd vmware-server-distrib

# ./vmware-install.pl

Agora não esqueço mais.

Até!