Arquivo da categoria: Dicas Linux

Perigo do IoT: Hacker grava casal fazendo sexo com SmartTV

Iot

Vulnerabilidades em sistemas computacionais que existem a décadas, estão sendo descobertas e corregidas. Mas o quanto desta correções são atualizadas em sistemas embarcados? Com IoT o problemas tendem se agravar ainda mais…

Um Cracker invadiu uma Smart TV a ligou a câmera remotamente, com isto gravou um casal na Inglaterra fazendo sexo no sofá em frente ao aparelho. O Casal tomou conhecimento quando os amigos notificaram que seus momentos íntimos estavam em sites pornográficos.

“A gravação apareceu em um site. Amigos viram as imagens e alertaram o casal. Eles não haviam feito qualquer video particular. Pelo ângulo, o vídeo foi feito pela câmera da smart TV. Não houve contato com o casal, não houve chantagem ou ameaça. Concluímos que deve ter sido um ataque aleatório”, disse Laura.

Fonte: http://www.dailymail.co.uk/news/article-3598012/Trolls-sneak-photos-TV-turn-porn-images-lifted-screens-turned-pornography.html

Participação no Google I/O 2016 Extend

Abri o evento da Google I/O Extend São Paulo edição 2016 com a palestra do openCertiface onde mencionei sobre biometria em nuvem baseado em Linux e IoT com Intel Edison. A seguir a palestra na integra para visualização e download. O evento foi espetacular e a troca de informações sempre beneficia a todos de maneira bi-direcional .

_20160518_104236

Deixo aqui algumas novidades de maneira objetiva:

Com o Android Wear 2.0 a Google deseja tornar os dispositivos mais inteligentes a ponto de não depender mais de um smartphone. Esta nova versão trará um maior suporte aos aplicativos e até suporte para escrita. Já o Daydream é uma nova plataforma de realidade virtual baseado no Android N. E até agora os parceiros como Samsung, LG, HTC e Xiaomi estão dentro. Aguardem os primeiros games da EA e Ubisoft.

Com os novos meios de comunicação Allo e Duo. Allo é um software de mensagem com o diferencial de integração com outras app (dentro do software é possivel pesquisar locais). O módulo de inteligência artificial reconhece as figuras e faz sugestões baseado na sua interpretação,  o DUO é uma aplicativo de vídeo chama similar ao FaceTime, com o recurso de pré-visualizar a transmissão antes de atender.

Android N:  O modo multi janelas chama muito a atenção (existem boatos do modo Desktop). Com um único botão será possivel fechar todos os aplicativos e liberar recurso do celular. A criptografia que surgiu no Lollipop voltou novamente. API Vulkan trará acesso ao hardware para os desenvolvedores. O novo compilador java torna a instalação do aplicativos 75% mais rápido. O Google Assistant chegou como a evolução do Google Now, ainda sem personalidade própria mas compreende a linguagem natural e integra com todos os serviços dos serviços Google. O Google Home praticamente hardware dedicado para a Google Assistant capaz de se conectar com uma série de aparelhos inteligentes, desde seus smartphones a suas TVs inteligentes (ou o Chromecast).

Para finalizar deixo aqui a palestra ministrada no evento Google I/O edição 2016 São Paulo.

IoT e openCertiface com Intel Edison

intel-edison-com-module-20141

Quando as coisas começam não funcionar, é melhor para e relaxar, então fui finalizar o projeto IoT com biometria de código aberto (como não sei tocar violão como o PP e o Fernando Galves). Resumidamente compilei o client em C do openCertiface para fechar as próximas palestras.

Porque C? Claro que o serviço openCertiface pode ser consumido em PHP, Python, Shell e muitas outras linguagens. Mas quando falamos de computação embarcada, otimizar recurso preciso é para um jedi.

Partindo do princípio que as ferramentas para compilação nativa esta configura baseada no post anterior, vamos ao próximos passos:

Compilando o GSOAP para o Intel Edison

$ source /opt/poky-edison/1.7.2/environment-setup-core2-32-poky-linux
$ cd gsoap-2.8/
$ ./configure
configure: loading site script /opt/poky-edison/1.7.2/site-config-core2-32-poky-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking whether make sets $(MAKE)... (cached) yes
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether i586-poky-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer --sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux accepts -g... yes

$ make

Agora efetue o download do openCertiface no GIT e aplique o patch (disponível neste LINK ) para efetuar a compilação para a plataforma Intel Edison.

chart01

$ cd opencertiface/src
$ patch Makefile ../../Makefile.patch
patching file Makefile
$ cd ..

Com o aplicativo soap2cpp criaremos as funçoes em C.

$ ../gsoap-2.8/gsoap/src/soapcpp2 -e -b -c -T -I/usr/share/gsoap/import:/usr/share/gsoap functions.h

** The gSOAP code generator for C and C++, soapcpp2 release 2.8.29
** Copyright (C) 2000-2016, Robert van Engelen, Genivia Inc.
** All Rights Reserved. This product is provided "as is", without any warranty.
** The soapcpp2 tool and its generated software are released under the GPL.
** ----------------------------------------------------------------------------
** A commercial use license is available from Genivia Inc., contact@genivia.com
** ----------------------------------------------------------------------------

Saving soapStub.h annotated copy of the source interface file
Saving soapH.h serialization functions to #include in projects
Using ns service name: opencertiface
Using ns service style: rpc
Using ns service encoding: encoded
Using ns service location: http://opencertiface.com.br/opencertiface.cgi
Using ns schema namespace: urn:opencertiface
Saving opencertiface.wsdl Web Service description
Saving opencertiface.ping.req.xml sample SOAP/XML request
Saving opencertiface.ping.res.xml sample SOAP/XML response
Saving opencertiface.verifyImg.req.xml sample SOAP/XML request
Saving opencertiface.verifyImg.res.xml sample SOAP/XML response
Saving opencertiface.nsmap namespace mapping table
Saving soapTester.c server auto-test code
Saving ns.xsd XML schema
Saving soapClient.c client call stub functions
Saving soapClientLib.c client stubs with serializers (use only for libs)
Saving soapServer.c server request dispatcher
Saving soapServerLib.c server request dispatcher with serializers (use only for libs)
Saving soapC.c serialization functions

Compilation successful

Pronto, agora basta o comando make para compilar os respectivos módulos. E a seguir copie os binários para o Intel Edison e execute-os conforme a figura ao final deste post.

$ make soapC.o
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse \
-mstackrealign -fno-omit-frame-pointer \
--sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux -DLINUX \
-c -I ../gsoap-2.8/gsoap/ soapC.c -o soapC.o

$ make soapClient.o
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse \
-mstackrealign -fno-omit-frame-pointer \
--sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux -DLINUX \
-c -I ../gsoap-2.8/gsoap/ soapClient.c -o soapClient.o

$ make clientVerifyImg
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse \
-mstackrealign -fno-omit-frame-pointer \
--sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux -DLINUX \
-O2 -pipe -g -feliminate-unused-debug-types \
-c -o clientVerifyImg.o clientVerifyImg.c
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse \
-mstackrealign -fno-omit-frame-pointer \
--sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux -DLINUX \
-I ../gsoap-2.8/gsoap/ -DLINUX -g -O2 clientVerifyImg.o soapClient.o \
soapC.o ../gsoap-2.8/gsoap/libgsoap.a -o clientVerifyImg

$ make clientPING
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse \
-mstackrealign -fno-omit-frame-pointer \
--sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux -DLINUX \
-O2 -pipe -g -feliminate-unused-debug-types \
-c -o clientPING.o clientPING.c
i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse \
-mstackrealign -fno-omit-frame-pointer \
--sysroot=/opt/poky-edison/1.7.2/sysroots/core2-32-poky-linux -DLINUX \
-I ../gsoap-2.8/gsoap/ -DLINUX -g -O2 clientPING.o soapClient.o \
soapC.o ../gsoap-2.8/gsoap/libgsoap.a -o clientPING

edison

Terasology: O Minecraft gratuito e com gráfico realista!

Nem toda criança consegue obter do pai 26.95 USD para jogar Minecraft no seu computador, então sugiro conhecer o Terasology. Um jogo similar ao Minecraft, porém com gráficos realistas e gratuito (Software Livre). Agradeço ao meu filho na elaboração do vídeo e a super Bárbara Tostes pela apresentação do projeto. Disponibilizei no Viva O Linux o Material de compilação e execução (em breve os pacotes rpm para CentOS, Fedora, Redhat, SUSE e openSUSE). Tutorial na íntegra AQUI!

youtube

Disponibilizando USB em VM Virtual Box

Muitas vezes, precisamos disponibilizar um hardware USB  do hospedeiro na maquina virtual, então aqui fica a dica. Se o sistema não estiver devidamente configurado, ao digitar o comando list usbhost a relação de dispositivos será vazia como no exemplo abaixo:

$ VBoxManage list usbhost
Host USB Devices:
<none>

Entâo adicione o usuario no grupo vboxusers e pronto!

$ sudo usermod -a -G vboxusers cabelo

agora repita o comando novamente, e veremos o resultado:

$ VBoxManage list usbhost | head -19
Host USB Devices:

UUID:               abcd1234-123a-2345-b1e0-8a0b1c1f2511
VendorId:           0x046d (046D)
ProductId:          0x0809 (0809)
Revision:           0.9 (0009)
SerialNumber:       ABC34567
Address:            sysfs:/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4//device:/dev/vboxusb/001/004
Current State:      Busy

UUID:               d2abc46d-123-1234-b8c3-691a7ca551ce
VendorId:           0x046d (046D)
ProductId:          0xc504 (C504)
Revision:           19.16 (1916)
Manufacturer:       Logitech
Product:            USB Receiver
Address:            sysfs:/sys/devices/pci0000:00/0000:00:12.0/usb3/3-3//device:/dev/vboxusb/003/003
Current State:      Busy

Pronto, agora basta adicionar o dispositivo na interface gráfica.

virtualbox01virtualbox02

Compilação Nativa para o Intel Edison em Linux

Intel-Edison

Neste post, veremos como compilar aplicações nativas para a plataforma Intel Edison, primeiramente efetue e download do pacote SDK – Cross Compile Tools na pagina oficial da Intel: https://software.intel.com/en-us/iot/hardware/edison/downloads

A seguir descompacte o arquivo ZIP e execute o arquivo Shell.

$ unzip /dados/programas.install/Hardware/IntelEdison/edison-sdk-linux64-ww25.5-15.zip
Archive: /dados/programas.install/Hardware/IntelEdison/edison-sdk-linux64-ww25.5-15.zip
inflating: poky-edison-glibc-x86_64-edison-image-core2-32-toolchain-1.7.2.manifest
inflating: poky-edison-glibc-x86_64-edison-image-core2-32-toolchain-1.7.2.sh

A seguir execute o script toolchain como super usuário.

$ sh poky-edison-glibc-x86_64-edison-image-core2-32-toolchain-1.7.2.sh
Enter target directory for SDK (default: /opt/poky-edison/1.7.2):
You are about to install the SDK to &amp;quot;/opt/poky-edison/1.7.2&amp;quot;. Proceed[Y/n]?
Extracting SDK...done
Setting it up...done
SDK has been successfully set up and is ready to be used.

Agora criaremos uma arquivo em C++ no estilo ola mundo para teste.

#include <iostream>
int main()
{
    std::cout <<";Assunto Nerd!"\n;
    return 0;
}

Agora configure as variaveis ambientais, compile, efetue o upload com o scp( copia sobre ssh) e execute o programa.

$ source /opt/poky-edison/1.7.2/environment-setup-core2-32-poky-linux

$ $CXX hello.c -o hello

$ scp hello root@192.168.2.15:/home/root

$ ./hello
Assunto Nerd!

Pronto, duvidas em cabelo@opensuse.org

Parceria de Negócios: Certiface e Azure

O mundo de ideologia tecnológica e negócios estão muitos distantes, mas as tecnologias envolvidas estão cada vez mais próximas.  A OITI TECNOLOGIA tem no seu DNA utilizar TODA E QUALQUER tecnologia a serviço da humanidade. Com a Microsoft apoiando o movimento Linux, abre-se uma nova janela de oportunidade no mundo dos negócios. E neste cenário encontra-se o CERTIFACE. Um serviço em nuvem de utiliza a tecnologia de biometria facial para proteger as pessoas do bem. Veja o vídeo a seguir.

videocertiface02 Fonte: Youtube: https://www.youtube.com/watch?v=cYLOJyMPf1o

Atualizando o Edison Intel no openSUSE

Neste post, disponibilizo os passos efetuados para atualizar o firmware do meu Intel Edison na plataforma openSUSE.

ATENÇÃO:  Antes de iniciar deixo claro , que o leitor deste post é responsável por qualquer problema que venha a acontecer com o seu aparelho, logo: sendo de sua inteira responsabilidade e risco a utilização das instruções a seguir.

Primeiramente instale o pacote

zypper addrepo http://download.opensuse.org/repositories/home:cabelo:desktop/openSUSE_Leap_42.1/home:cabelo:desktop.repo

zypper refresh
zypper install dfu-util

Faça o Download da ultima versão do firmware em https://software.intel.com/pt-br/iot/hardware/edison/downloads

Posicione a chave SW1 próxima ao conector micro USB de acordo com a figura abaixo e plugue os 2 cabos USB:

intel-edison-setup-1

E logo a seguir descompacte o arquivo recém baixado e execute o comando ./flashall.sh

yocto02

Se executar o comando sudo screen /dev/ttyUSB0 115200, teremos a seguinte saida no console:


Starting Reboot...

******************************
PSH KERNEL VERSION: b0182727
WR: 20104000
******************************

SCU IPC: 0x800000d0  0xfffce92c

PSH miaHOB version: TNG.B0.VVBD.0000000c

microkernel built 23:15:13 Apr 24 2014

******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size)          = 0x00080000

*** Ready to receive application ***

U-Boot 2014.04 (Aug 20 2014 - 16:08:32)

Watchdog enabled
DRAM:  980.6 MiB
MMC:   tangier_sdhci: 0
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
Target:blank
Partitioning already done...
Flashing already done...
GADGET DRIVER: usb_dnl_dfu
#
DFU complete CRC32: 0x3756edb6
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0x3756edb6
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0x6ad212b0
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0xe511e42b
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0xe511e42b
DOWNLOAD ... OK
Ctrl+C to exit ...
resetting ...

******************************
PSH KERNEL VERSION: b0182b2b
WR: 20104000
******************************
SCU IPC: 0x800000d0  0xfffce92c
PSH miaHOB version: TNG.B0.VVBD.0000000c
microkernel built 11:24:08 Feb  5 2015

******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size)          = 0x00080000

*** Ready to receive application ***
U-Boot 2014.04 (Jun 19 2015 - 12:05:55)
Watchdog enabled
DRAM:  980.6 MiB
MMC:   tangier_sdhci: 0
In:    serial
Out:   serial
Err:   serial
Writing to redundant MMC(0)... done
Writing to MMC(0)... done
Hit any key to stop autoboot:  0
Target:blank
Partitioning using GPT
Writing GPT: success!
Saving Environment to MMC...
Writing to redundant MMC(0)... done
Flashing already done...
GADGET DRIVER: usb_dnl_dfu
#
DFU complete CRC32: 0xb98db2f8
DOWNLOAD ... OK
Ctrl+C to exit ...
pageStoreSize(IMR Size)          = 0x00080000

*** Ready to receive application ***
U-Boot 2014.04 (Jun 19 2015 - 12:05:55)
Watchdog enabled
DRAM:  980.6 MiB
MMC:   tangier_sdhci: 0
In:    serial
Out:   serial
Err:   serial
Writing to redundant MMC(0)... done
Writing to MMC(0)... done
Hit any key to stop autoboot:  0
Target:blank
Partitioning using GPT
Writing GPT: success!
Saving Environment to MMC...
Writing to redundant MMC(0)... done
Flashing already done...
GADGET DRIVER: usb_dnl_dfu
#
DFU complete CRC32: 0xb98db2f8
DOWNLOAD ... OK
Ctrl+C to exit ...
pageStoreSize(IMR Size)          = 0x00080000

*** Ready to receive application ***

U-Boot 2014.04 (Jun 19 2015 - 12:05:55)

Watchdog enabled
DRAM:  980.6 MiB
MMC:   tangier_sdhci: 0
In:    serial
Out:   serial
Err:   serial
Writing to redundant MMC(0)... done
Writing to MMC(0)... done
Hit any key to stop autoboot:  0
Target:blank
Partitioning using GPT
Writing GPT: success!
Saving Environment to MMC...
Writing to redundant MMC(0)... done
Flashing already done...
GADGET DRIVER: usb_dnl_dfu
#
DFU complete CRC32: 0xb98db2f8
DOWNLOAD ... OK
Ctrl+C to exit ...
######################################################################################

******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size)          = 0x00080000

*** Ready to receive application ***
U-Boot 2014.04 (Jun 19 2015 - 12:05:55)
Watchdog enabled
DRAM:  980.6 MiB
MMC:   tangier_sdhci: 0
In:    serial
Out:   serial
Err:   serial
Writing to redundant MMC(0)... done
Writing to MMC(0)... done
Hit any key to stop autoboot:  0
Target:blank
Partitioning using GPT
Writing GPT: success!
Saving Environment to MMC...
Writing to redundant MMC(0)... done
Flashing already done...
GADGET DRIVER: usb_dnl_dfu
#
DFU complete CRC32: 0xb98db2f8
DOWNLOAD ... OK
Ctrl+C to exit ...
##############################################################################################

Se tudo funcionou corretamente, teremos a seguinte tela:

yocto03

IoT com Intel Edison e Reconhecimento Facial

IMG_20160229_224005125_HDR

Neste post, compartilho os primeiros passos com o Intel Edison, cujo principal objetivo é um projeto que envolve IoT com Reconhecimento Facial. Após achar uma fonte para a placa, pluguei o cabo USB. Com o comando dmesg constatei que o sistema já estava disponível na ttyUSB0. Logo em seguida, com o comando sudo screen /dev/ttyUSB0 115200 já obtive acesso ao console Linux. Então, bastou o comando configure_edison --wifi para configurar a internet…

Iot01

Iot02

Iot03

Precisei configurar o arquivo /etc/opkg/base-feeds.conf com o comando a seguir:

echo -e "src/gz all http://repo.opkg.net/edison/repo/all \nsrc/gz  
edison http://repo.opkg.net/edison/repo/edison \nsrc/gz core2-32 
http://repo.o pkg.net/edison/repo/core2-32 " > /etc/opkg/base-feeds.conf

opkg update

 … e para ser feliz, bastou.

opkg install opencv-apps

No proximo post, os passo para atualizar o firmware e teste do módulo de reconhecimento facial…