O documento resume uma apresentação sobre hackear um dispositivo Android TV Box chamado SmartBOX para instalar o sistema operacional Linux e permitir aplicações gráficas Java. O documento descreve como gravar uma imagem Linux no cartão microSD, instalar o Java 8 para ARM e rodar aplicações Swing sem um ambiente gráfico completo.
Viller Hsiao presents information on Linux vsyscall and vDSO. vDSO (virtual dynamic shared object) is mapped into userspace and contains implementations of common system calls to make them faster. It gets benefits from ASLR and allows additional system calls compared to the older vsyscall method. The kernel generates the vDSO shared object which is then loaded and accessed by the glibc dynamic linker to provide optimized system call implementations to applications.
This document discusses OpenvSwitch, an open source virtual switch that provides virtual networking and network virtualization capabilities. It describes OpenvSwitch's architecture, features, configuration, and use cases with OpenStack, VMware NSX, MidoNet, Pica8, and Intel DPDK. OpenvSwitch supports virtual networking functions like VLANs, STP, QoS, and tunneling protocols. It integrates with hypervisors and controllers to enable network virtualization and software-defined networking.
HAProxy TCP 모드에서 클라이언트의 Source IP를 내부 서버로 전달하는 방법을 알아봅니다.
* 중간에 오타가 있어서 수정본을 다시 업로드 하고자 했으나... SlideShare 측의 답변으로는 "Re-Upload 기능을 제거했다."라고 합니다. 부디 오타 등 부자연스러운 부분에 대해 너그럽게 이해를 부탁 드립니다.
The document discusses C++ exploitation techniques including name mangling, virtual function tables, vtable hijacking, vectors, strings, and memory allocation/deallocation functions like new and delete. It provides details on how virtual function tables are used to implement polymorphism in C++ and how vtable hijacking can be used to exploit vulnerabilities by forcing a vtable and hijacking the virtual function pointer to call shellcode. It also explains how vectors and strings are implemented dynamically in memory and their memory layout.
Chartbeat measures and monetizes attention on the web. They were experiencing slow load times and TCP retransmissions due to default system settings. Tuning various TCP, NGINX and EC2 ELB settings like increasing buffers, disabling Nagle's algorithm, and enabling HTTP keep-alive resolved the issues and improved performance. These included tuning settings like net.ipv4.tcp_max_syn_backlog, net.core.somaxconn, and nginx listen backlog values.
Viller Hsiao presents information on Linux vsyscall and vDSO. vDSO (virtual dynamic shared object) is mapped into userspace and contains implementations of common system calls to make them faster. It gets benefits from ASLR and allows additional system calls compared to the older vsyscall method. The kernel generates the vDSO shared object which is then loaded and accessed by the glibc dynamic linker to provide optimized system call implementations to applications.
This document discusses OpenvSwitch, an open source virtual switch that provides virtual networking and network virtualization capabilities. It describes OpenvSwitch's architecture, features, configuration, and use cases with OpenStack, VMware NSX, MidoNet, Pica8, and Intel DPDK. OpenvSwitch supports virtual networking functions like VLANs, STP, QoS, and tunneling protocols. It integrates with hypervisors and controllers to enable network virtualization and software-defined networking.
HAProxy TCP 모드에서 클라이언트의 Source IP를 내부 서버로 전달하는 방법을 알아봅니다.
* 중간에 오타가 있어서 수정본을 다시 업로드 하고자 했으나... SlideShare 측의 답변으로는 "Re-Upload 기능을 제거했다."라고 합니다. 부디 오타 등 부자연스러운 부분에 대해 너그럽게 이해를 부탁 드립니다.
The document discusses C++ exploitation techniques including name mangling, virtual function tables, vtable hijacking, vectors, strings, and memory allocation/deallocation functions like new and delete. It provides details on how virtual function tables are used to implement polymorphism in C++ and how vtable hijacking can be used to exploit vulnerabilities by forcing a vtable and hijacking the virtual function pointer to call shellcode. It also explains how vectors and strings are implemented dynamically in memory and their memory layout.
Chartbeat measures and monetizes attention on the web. They were experiencing slow load times and TCP retransmissions due to default system settings. Tuning various TCP, NGINX and EC2 ELB settings like increasing buffers, disabling Nagle's algorithm, and enabling HTTP keep-alive resolved the issues and improved performance. These included tuning settings like net.ipv4.tcp_max_syn_backlog, net.core.somaxconn, and nginx listen backlog values.
This talk outlines the features in containerd 1.1 smart client: I/O redirection from the client side, containerd namespaces to leverage a single runtime instance with a logical isolation from multiple clients (Kubernetes, Docker Engine, other systems), and containers as types in Golang when using containerd Go client library.
Additionally, it explains all the performance improvements brought by BuildKit, and the capabilities that it opens up because of it's modular architecture, enabling open source developers who create new build systems using BuildKit directly to create new front ends.
- MySQL injection techniques can be used to extract data through blind injection, union queries, and error-based injection. Time-based blind injection and deep blind injection can extract data character by character.
- Load_file and into outfile functions can be used to read and write files in MySQL. Information from information_schema, user-defined functions, and triggers may also be exploitable.
- Triggers are database objects that activate when events like insert, update or delete occur and may potentially be exploited to add new accounts or stop the MySQL server.
This document discusses SR-IOV (Single Root I/O Virtualization) in ACRN. It begins with an introduction to SR-IOV, describing how it allows PCIe devices to be isolated and have near bare-metal performance through the use of Physical Functions (PFs) and Virtual Functions (VFs). It then outlines the SR-IOV architecture in ACRN, including how it detects and initializes SR-IOV devices, assigns VFs to VMs, and manages the lifecycle of VFs. Finally, it provides an agenda for an SR-IOV demo using an Intel 82576 NIC and concludes with a Q&A section.
VPC Implementation In OpenStack Heat
a) CreateVPC == Create Virtual Network
b) CreateSubnet == Create Subnet in Virtual Network(VPC)
c) CreateInternetGateway == Get external network defined in the Project
d) AttachInternetGateway == Connect external network to routers in the Virtual Network(VPC)
e) CreateRouteTable == Create a router and attach to Virtual Network(VPC)
f) AssociateRouteTable == Attach subnet to router
g) CreateEIP == Attach floating ip to instance
Linux Binary Exploitation - Return-oritend ProgramingAngel Boy
The document discusses using return-oriented programming (ROP) to bypass address space layout randomization (ASLR) and data execution prevention (DEP). It describes using the procedure linkage table (PLT) to leak the address of functions like puts to bypass ASLR. A ROP chain is then constructed to call read to read "/bin/sh" into memory and execute it, achieving arbitrary code execution.
The document describes how to build a virtual machine (VM). It discusses what a VM is and why we want one. The goal is to simulate a simple computer using bytecodes. An instruction set is defined including operations like add, subtract, branch, load, store, print. The bytecode format and a sample program are shown. The VM will fetch, decode and execute instructions in a cycle, operating on a stack. Implementing functions is also discussed.
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streamsconfluent
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streams, Loïc Divad, Software Engineer, Publicis Sapient Engineering
https://www.meetup.com/Lille-Kafka/events/272064179/
The document provides an overview of Kubernetes including:
- Kubernetes allows deploying and managing containerized applications across a cluster of nodes and provides capabilities like deployment, scaling, rolling updates, and optimization of resource usage.
- The main Kubernetes components include the master, which runs control plane components like the API server and scheduler, and worker nodes, which run the pods and services.
- Basic Kubernetes concepts include pods, which group related containers, labels for selecting pods, services for discovery and load balancing, replication controllers for replication and rollouts, and deployments for declarative updates.
Senlin is an OpenStack clustering service that was created to address gaps in Heat's autoscaling capabilities. Senlin allows users to group and manage collections of cloud resources through profiles and policies. It provides operations for creating and managing clusters, nodes, policies, and profiles. Senlin has a REST API and supports common actions like scaling, adding/removing nodes, attaching policies, and resizing clusters. It is developed by IBM and has features planned for Mitaka like health management and integration with Heat resources. Future work includes container clustering, testing, and integration with other services.
This document provides an agenda for a talk on network automation using Ansible. The talk covers DevOps and NetDevOps concepts, the benefits of automation, common automation tools with a focus on Ansible, and how Ansible works. The document lists 10 topics that will be covered: 1) Devops/NetDevOps, 2) Why automation, 3) Tools for automation, 4) Why Ansible, 5) Ansible introduction, 6) Ansible Language Basics, 7) Ansible encryption/decryption, 8) How to run Ansible, 9) A case study on Ansible use at SBAC Bank, and 10) A hands-on lab configuration. Contact information is also provided for the speaker.
CA World - mft1755 - gaps in your defense hacking the mainframe - philip youngPhilip Young
The document discusses gaps in mainframe security and how hackers are increasingly targeting mainframes. It notes that while mainframes are seen as inherently secure, they are actually vulnerable in several ways. The presentation will explore current mainframe hacking techniques using tools like Nmap, how flat network architectures have increased risk, and steps organizations can take to optimize mainframe security beyond just compliance, such as vulnerability scanning and penetration testing.
O documento apresenta a plataforma OpenDevice para Internet das Coisas (IoT), que fornece ferramentas e APIs para construção de soluções IoT. A plataforma permite monitorar e controlar dispositivos como Arduino e Raspberry Pi de forma independente de linguagem e plataforma, abstraindo detalhes de comunicação. Exemplos demonstram como usar OpenDevice com Java, JavaScript e Arduino para controlar LEDs de forma interativa e em tempo real.
This talk outlines the features in containerd 1.1 smart client: I/O redirection from the client side, containerd namespaces to leverage a single runtime instance with a logical isolation from multiple clients (Kubernetes, Docker Engine, other systems), and containers as types in Golang when using containerd Go client library.
Additionally, it explains all the performance improvements brought by BuildKit, and the capabilities that it opens up because of it's modular architecture, enabling open source developers who create new build systems using BuildKit directly to create new front ends.
- MySQL injection techniques can be used to extract data through blind injection, union queries, and error-based injection. Time-based blind injection and deep blind injection can extract data character by character.
- Load_file and into outfile functions can be used to read and write files in MySQL. Information from information_schema, user-defined functions, and triggers may also be exploitable.
- Triggers are database objects that activate when events like insert, update or delete occur and may potentially be exploited to add new accounts or stop the MySQL server.
This document discusses SR-IOV (Single Root I/O Virtualization) in ACRN. It begins with an introduction to SR-IOV, describing how it allows PCIe devices to be isolated and have near bare-metal performance through the use of Physical Functions (PFs) and Virtual Functions (VFs). It then outlines the SR-IOV architecture in ACRN, including how it detects and initializes SR-IOV devices, assigns VFs to VMs, and manages the lifecycle of VFs. Finally, it provides an agenda for an SR-IOV demo using an Intel 82576 NIC and concludes with a Q&A section.
VPC Implementation In OpenStack Heat
a) CreateVPC == Create Virtual Network
b) CreateSubnet == Create Subnet in Virtual Network(VPC)
c) CreateInternetGateway == Get external network defined in the Project
d) AttachInternetGateway == Connect external network to routers in the Virtual Network(VPC)
e) CreateRouteTable == Create a router and attach to Virtual Network(VPC)
f) AssociateRouteTable == Attach subnet to router
g) CreateEIP == Attach floating ip to instance
Linux Binary Exploitation - Return-oritend ProgramingAngel Boy
The document discusses using return-oriented programming (ROP) to bypass address space layout randomization (ASLR) and data execution prevention (DEP). It describes using the procedure linkage table (PLT) to leak the address of functions like puts to bypass ASLR. A ROP chain is then constructed to call read to read "/bin/sh" into memory and execute it, achieving arbitrary code execution.
The document describes how to build a virtual machine (VM). It discusses what a VM is and why we want one. The goal is to simulate a simple computer using bytecodes. An instruction set is defined including operations like add, subtract, branch, load, store, print. The bytecode format and a sample program are shown. The VM will fetch, decode and execute instructions in a cycle, operating on a stack. Implementing functions is also discussed.
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streamsconfluent
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streams, Loïc Divad, Software Engineer, Publicis Sapient Engineering
https://www.meetup.com/Lille-Kafka/events/272064179/
The document provides an overview of Kubernetes including:
- Kubernetes allows deploying and managing containerized applications across a cluster of nodes and provides capabilities like deployment, scaling, rolling updates, and optimization of resource usage.
- The main Kubernetes components include the master, which runs control plane components like the API server and scheduler, and worker nodes, which run the pods and services.
- Basic Kubernetes concepts include pods, which group related containers, labels for selecting pods, services for discovery and load balancing, replication controllers for replication and rollouts, and deployments for declarative updates.
Senlin is an OpenStack clustering service that was created to address gaps in Heat's autoscaling capabilities. Senlin allows users to group and manage collections of cloud resources through profiles and policies. It provides operations for creating and managing clusters, nodes, policies, and profiles. Senlin has a REST API and supports common actions like scaling, adding/removing nodes, attaching policies, and resizing clusters. It is developed by IBM and has features planned for Mitaka like health management and integration with Heat resources. Future work includes container clustering, testing, and integration with other services.
This document provides an agenda for a talk on network automation using Ansible. The talk covers DevOps and NetDevOps concepts, the benefits of automation, common automation tools with a focus on Ansible, and how Ansible works. The document lists 10 topics that will be covered: 1) Devops/NetDevOps, 2) Why automation, 3) Tools for automation, 4) Why Ansible, 5) Ansible introduction, 6) Ansible Language Basics, 7) Ansible encryption/decryption, 8) How to run Ansible, 9) A case study on Ansible use at SBAC Bank, and 10) A hands-on lab configuration. Contact information is also provided for the speaker.
CA World - mft1755 - gaps in your defense hacking the mainframe - philip youngPhilip Young
The document discusses gaps in mainframe security and how hackers are increasingly targeting mainframes. It notes that while mainframes are seen as inherently secure, they are actually vulnerable in several ways. The presentation will explore current mainframe hacking techniques using tools like Nmap, how flat network architectures have increased risk, and steps organizations can take to optimize mainframe security beyond just compliance, such as vulnerability scanning and penetration testing.
O documento apresenta a plataforma OpenDevice para Internet das Coisas (IoT), que fornece ferramentas e APIs para construção de soluções IoT. A plataforma permite monitorar e controlar dispositivos como Arduino e Raspberry Pi de forma independente de linguagem e plataforma, abstraindo detalhes de comunicação. Exemplos demonstram como usar OpenDevice com Java, JavaScript e Arduino para controlar LEDs de forma interativa e em tempo real.
Este documento apresenta uma oficina sobre o módulo ESP8266 para Internet das Coisas. A agenda inclui introdução ao ESP8266 e ESP32, plataformas de desenvolvimento como Arduino IDE e NodeMCU, e demonstrações práticas de códigos como blink e webserver usando o ESP8266.
O documento resume os resultados de 2 dias de teste do sistema operacional Ubuntu IoT com Raspberry Pi 3 B+, incluindo a configuração de rede Wi-Fi, atualização de pacotes, instalação de drivers, bibliotecas e ambientes gráficos. O autor também descreve a instalação e teste de sensores DHT22, LDR e módulo RTC DS3231.
Este documento resume um tutorial sobre como configurar e utilizar uma placa BeagleBoard. Ele descreve:
1) Dois métodos para instalar uma distribuição Linux na BeagleBoard - via download de uma imagem pré-configurada ou instalação via rede durante o boot.
2) Como fornecer internet à BeagleBoard através de um computador Linux usando um adaptador USB.
3) Como instalar pacotes e atualizar o sistema operacional diretamente no cartão SD da BeagleBoard usando o computador Linux.
4) Os passos para instalar a interface
Arduino + Python: produtividade ao extremoÁlvaro Justen
O documento descreve como Python pode ser usado junto com Arduino para aumentar a produtividade. Python pode ser usado diretamente no Arduino ou no PC para controlar o Arduino via USB, Ethernet ou sem fio. Vários projetos são apresentados como exemplos.
O documento descreve o sistema operativo Cisco IOS utilizado nos equipamentos de rede Cisco. O IOS é um sistema operativo proprietário que permite a configuração de protocolos de rede como TCP/IP, IPX e AppleTalk. O documento explica os componentes de um router Cisco, incluindo o processador, memória, interfaces e o processo de arranque do IOS. Além disso, descreve alguns comandos globais e de configuração utilizados no IOS para configurar interfaces de rede, protocolos de encaminhamento e outras funcionalidades.
Internet das coisas, conhecendo plataformas de desenvolvimentosDouglas Esteves
O documento apresenta diversas placas e ambientes de desenvolvimento para Internet das Coisas e robótica, incluindo placas ESP8266, Raspberry Pi, Arduino e ferramentas como Arduino IDE, PlatformIO e Blynk. Referências úteis como sites e redes sociais também são fornecidas.
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014Fabio Souza
A plataforma Arduino esta cada vez mais presente em projetos de sistemas embarcados, seja para estudo ou para aplicações comerciais. As placas arduino estão em constantes desenvolvimento e já deixou de ser um plataforma simples baseada apenas em microcontroladores de 8 bits. Hoje existe uma grande variedades de placas Arduino que vão desde microcontroladores de 8 bits a microcontroladores de 32 bits com núcleo ARM. Conhecer essa plataforma de hardware e software é de grande importância para o profissional da área de sistemas embarcados, onde é possível aprender e aplicar diversas tecnologias de uma forma fácil e divertida, além de participar da comunidade open source.
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
Slides (melhorados) da webminar (palestra online) que ministrei no LabDeGaragem.com na terça-feira dia 16/08/2011.
A palestra abordou aspectos introdutórios da linguagem e mostrou através de exemplos práticos onde a linguagem pode ser utilizada a favor da produtividade do desenvolvedor.
O documento fornece uma introdução sobre a plataforma Arduino, descrevendo sua criação em 2005 por Maximo Banzi com o objetivo de criar ferramentas eletrônicas acessíveis. Detalha os principais componentes de hardware do Arduino, incluindo o microcontrolador, portas digitais e analógicas e memórias. Apresenta diferentes modelos de Arduino e explica conceitos como programação, portas e a ferramenta de desenvolvimento Arduino.
Este documento introduz conceitos sobre computação física, sistemas embarcados e microcontroladores. Apresenta a plataforma Arduino, incluindo hardware, software e aplicações básicas de entrada/saída.
Assistente virtual do Raspberry PI, desenvolvido em Python.
Scratch: Ambiente de programação visual para crianças e iniciantes.
Sonic Pi: Ambiente de programação para criação de músicas em tempo real.
Minecraft Pi: Versão do Minecraft desenvolvida para o Raspberry PI.
Kodi: Media Center para reprodução de mídias em HD.
OctoPrint: Impressão 3D com interface web.
MotionEyeOS: Sistema operacional para câmeras de vigilância.
Pi-hole: Filtragem de anúncios na rede.
Ret
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
O documento apresenta a plataforma e framework Open IoT (Internet das Coisas) chamado OpenDevice, que fornece ferramentas e APIs para construir soluções de Internet das Coisas usando Arduino, Raspberry Pi, Android e Java. O objetivo do OpenDevice é monitorar e controlar hardwares populares de forma local ou na nuvem de maneira independente de linguagem ou plataforma. Apresenta exemplos de código em Java, C/Arduino e JavaScript para controlar dispositivos e conectá-los à plataforma.
O documento apresenta uma introdução à programação embarcada com Arduino. Resume os principais tópicos da palestra, incluindo uma introdução aos sistemas embarcados, as características do hardware e software da plataforma Arduino e exemplos de projetos como acender um LED, controlar um motor e criar um sensor de estacionamento.
O documento apresenta uma introdução ao uso de Python com sistemas embarcados, cobrindo três dias de treinamento. O primeiro dia discute introdução aos dados, leitura e escrita de arquivos. O segundo dia aborda GPIOs, bibliotecas e comunicação serial. O terceiro dia lida com leitura de sensores, envio de dados para a nuvem via REST e MQTT. Exemplos de código Python para acender um LED são apresentados para diferentes placas como Raspberry Pi, Intel Edison e LinkIt Smart 7688.
Este documento fornece um resumo sobre Arduino e domótica. Ele introduz o Arduino como uma plataforma de hardware e software open source, popular e acessível. Também discute vários modelos de Arduino, sensores, shields, projetos iniciais e como começar com Arduino. Por fim, aborda brevemente o tema da domótica e como o Arduino pode ser usado para automatizar e controlar dispositivos domésticos.
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
O documento discute a Internet das Coisas e apresenta a plataforma Arduino. Apresenta exemplos de uso de sensores e shields com Arduino, além de projetos como automação residencial. Por fim, discute alternativas de comunicação entre dispositivos como Arduino, Raspberry Pi e Android utilizando a plataforma OpenDevice.
O documento descreve o Raspberry Pi, um computador do tamanho de um cartão de crédito que pode ser usado para aprender programação. Ele explica como o Raspberry Pi pode ser usado para diferentes propósitos em comparação com o Arduino, e fornece dicas sobre como configurar e programar o Raspberry Pi usando a linguagem Python.
[1] O documento apresenta o Banana Pi, um computador de placa única baseado no processador Allwinner A20 e com características similares ao Raspberry Pi. [2] Discutem-se possibilidades de software para o Banana Pi, com foco no sistema operacional Bananian Linux baseado em Debian. [3] Demonstram-se procedimentos para configurar e usar o Bananian Linux na Banana Pi, incluindo a criação de um repositório local para pacotes.
Semelhante a Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice (20)
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
1. Hardware Free
Hackeando um SmartBOX e instalando Linux & JAVA gráfico
Ricardo JL Rufino
rjlr@cin.ufpe.br
ricardo@criativasoft.com.br
2. AgendaApresentação
Ricardo JL Rufino
➔ Esp. em Engenharia de Software
➔ Mestrando em Gestão de TI (UFPE)
➔ Sócio fundador da CriativaSoft.
➔ Atuo no desenvolvimento de Software desde 2007, focado em
soluções empresariais sobre plataforma JavaEE.
Desenvolvedor de softwares open-source como Framework
Web MVC Mentawai, ProjectNCode e instrutor de cursos de
Java.
7. Outros Similares
● Cubietruck (Cubieboard)
http://www.cnx-software.com/2013/06/25/cubietruck-development-board-features-allwinner-a20-
soc-2gb-ram-and-gb-ethernet/
8. Instalação do Linux
● Fácil e a Difícil
● Fácil: Usando uma imagem já pronta:
– http://linux-sunxi.org/Bootable_OS_images
– LOGO DISPONIBILIZAREI A MINHA !
● Difícil: Compilando e extraindo as informações
do dispositivo.
9. Instalação do Linux (Fácil)
● Existem já algumas distribuições prontas para
vários dispositivos.
● Se não encontrar a imagem para o dispositivo
idêntico, procura um do mesmo processador
– Foi o que eu fiz !! Usando o Debian para A20
– http://linux-sunxi.org/Bootable_OS_images
10. Gravação da Imagem
● Linux: Usando DD
– dd bs=4M sd.img of=/dev/sdX
– CUIDADO COM O X !!
● Windows
– http://www.raspberrypi.org/documentation/installatio
n/installing-images/windows.md
11. Estrutura do SD
● O SD tem duas partições:
– 1 – BOOT (64 MB – FAT)
● uEnv.txt : Parâmetros de Configuração
● script.bin : Configurações do Hardware (binário)
● uimage : Kernel
● SETOR onde fica o u-boot (não visível)
– 2 – LINUX FS / ROOTFS (> 2GB EXT4)
● Sistema de Arquivos do LINUX
● No caso estamos usando o Debian
12. Entendendo o Processo de BOOT
● Principais envolvidos
– U-BOOT (u-boot-sunxi)
– Kernel / Linux – (linux-sunxi)
● Etapas
– O Processador inicia um chip com software de boot (Boot ROM) / BIOS
– Segundo verifica se tem um SD e a partição de boot (u-boot)
– O u-boot é configurado usando o uEnv.txt e script.bin
– U-boot carrega o kernel(uImage) e passa o comando pra ele.
– Kernel faz todo o processo normal do linux
13. BOOT pela USB
● É mais rápido (empírica e teoricamente)
● Pode usar a mesma imagem para o SD
●
Alterar arquivo uEnv.txt na partição de Boot do SD:
– root=/dev/sda2 ro rootwait
No caso sda2, porque a imagem tem duas
partições e o linux tá na segunda, mas você
pode usar só uma partição (tem que ser EXT4)
14. Algumas coisas mais avançadas
● Quando não se tem o mesmo modelo é preciso
extrair algumas informações do dispositivo.
– Script.bin
– Alguns links referentes a isso:
● http://linux-sunxi.org/Identification_guide
● http://linux-sunxi.org/Retrieving_device_information
15. Script.bin
● É um arquivo que guarda as informações do hardware
● Ele pode ser capturado e descompilado (FEX) usando o Sunxi-
tools
● Quando for usar uma imagem feita para outro equipamento
você deve usar o Script.bin do seu equipamento.
– NOTA: É bom desativar a partição NAND no A20, pois a minha
corrompeu por algum motivo e perdi o S.O original...
– Setar: nand_used = 0
● Guida de Configuração:
– http://linux-sunxi.org/Script.bin
– http://linux-sunxi.org/Fex_Guide
16. Infra-RED
Deve ser habilitado no Script.bin (fex)
● Carregar módulo
– modprobe sunxi-ir
● Verificar se foi inicializado corretamente
– cat /proc/bus/input/devices
– dmesg | grep IR
● Teste:
– apt-get install input-utils
– Input-events 0
● Aparentemente funciona apenas com protocolo NEC
[ir_para]
ir_used = 1
ir0_rx = port:PB04<2><default><default><default>
17. WIFI
Deve ser habilitado no Script.bin (fex)
Verificar se tem:
[wifi_para]
wifi_used = 1
wifi_sdc_id = 3
wifi_usbc_id = 2
wifi_usbc_type = 1
Etc...
[usb_wifi_para]
usb_wifi_used = 1
usb_wifi_usbc_num = 2
NOTA: Internamente é ligado em um barramento USB
21. JAVA 8 ARM - interface gráfica
Não precisamos de um ambiente gráfico completo como: GNOME , KDE,
LXDE
Podemos rodar diretamente no 'X' sem nenhuma coisa no monitor (nem o
relógio)
● Você pode usar a API da Swing e AWT
– Ainda não funciona o JAVA FX !!! = (
– Precisa fazer o driver da GPU MALI400 funcionar !!
● Instalar o X
– # apt-get install xorg
● Configurar o script: ~/.xsession
● Startar o Servidor gŕafico
– # startx
22. ~/.xsession
xrandr --output VGA1 --mode 1280x720 #For setting a video mode
xrandr --fb 1280x720 #Not always required, sets the framebuffer size
xset -dpms s off
# Sua aplicação !
java -jar /opt/jdk1.8.0/demo/jfc/SwingSet2/SwingSet2.jar
24. Debugar pela UART
● É possível monitorar o processo de BOOT e
saber o que está acontecendo pela porta UART
● Usei um ARDUINO UNO pra isso !!
PS: No Leonardo acho que não da certo !
Tem que ter um chip separado de USB
27. Debugando usando o Arduino
● Nessa configuração o arduino está em RESET,
ou seja, ele está funcionando apenas o CHIP
USB (Atmega16U2) para fazer a conversão:
– Serial UART → USB
● Plugue o arduino no seu computador
● Abra um terminal serial (pode ser o putty)
● No Linux:
– # screen /dev/ttyACM{X} 115200
28. Melhor que Raspberry ?!?!
● Bonitinho (vem com “case”)
● Mais rápido (1Ghz sem overclock)
– FALAR MAIS..
● Micro-SD
● WiFI
● Memória Interna (FLASH)
● MAAAAAsss não tem GPIO !!
30. OpenDevice
Open IoT (Internet Of Things) Platform and Framework.
“Conjunto de ferramentas e APIs para construção de
soluções de Internet das Coisas”
31. OpenDevice
● Apis e Ferramentas que permitem construir
sistemas de:
– Automação Residencial
– Monitoramento de Sensores
– Monitoramento de Energia
– Controle de Robôs
– Smart City
32. OpenDevice
● Objetivo:
O principal objetivo é monitorar e controlar
hardwares baratos como Arduino, RaspberryPI e
plataformas semelhantes, local (offline) ou sobre
a nuvem usando linguagens de programação de
alto nível e com a abstração de protocolos e
detalhes de baixo nível.
33. Foco no que é importante !
Isso permite que você se concentre em seu
projeto e na inovação, deixar os detalhes
obscuros de protocolos de comunicação e
especificações com OpenDevice, você vai dar um
passo importante para o sucesso de seu
projeto.
45. Adicionando Rest !
Adicione essa linha e seja feliz !!!
Você pode acessar pelo navegador
… ou com JavaScript !
46. Agora ficou sério ! WebSockets !
Adicione essas linhas e fique Real-Time e de quebra servidor http !
Biblioteca de Rest e WebSocket ! (adicione no pom.xml)
Ao adicionar o servidor de W.S automaticamente já é adicionado o servidor de REST
48. Instalação
● Usamos o Maven (arquivo pom.xml)
Substitua: ${opendevice-version} pela ultima versão, atualmente: 0.1.2-SNAPSHOT.
Qualquer dúvida consulte:
https://opendevice.atlassian.net/wiki/display/DOC/A.+First+Steps+with+OpenDevice
50. Instalação (lib arduino/similar)
● Baixar ou Clonar o repositório do GIT
– opendevice-hardware-libraries
● Copiar a pasta: arduino/OpenDevice
– Para pasta /libraries da IDE do Arduino
● Reinicie a IDE do Arduino
Github / Sources: https://github.com/OpenDevice
52. Postura !
Nós somos desenvolvedores, não somos “normais”
ACEITE ISSO.. !!!
Devemos ser agentes de Transformação e Criação.
53. Atitude !
Não espere a ideia brilhante !
Execute a ideia que você gosta.
Descubra o que você gosta
Não escute os outros
●
Muita gente vai dizer que você não consegue
●
Muita gente vai dizer que já existe