QtCon Brasil Desenvolvendo aplicações com Qt em Linux embarcado. Embedded Labworks
|
|
- Tiago Rosa Bacelar
- 5 Há anos
- Visualizações:
Transcrição
1 QtCon Brasil 2018 Desenvolvendo aplicações com Qt em Linux embarcado Embedded Labworks Por Sergio Prado. São Paulo, Novembro de 2018 Copyright Embedded Labworks All rights reserved.
2 Embedded Labworks SOBRE ESTE DOCUMENTO Este documento é disponibilizado sob a Licença Creative Commons BY-SA Os fontes deste documento estão disponíveis em: Sinta-se livre para utilizar, compartilhar e adaptar este material às suas necessidades, lembrando-se sempre de respeitar a licença.
3 Embedded Labworks SERGIO PRADO Sergio Prado tem mais de 20 anos de experiência em desenvolvimento de software para sistemas embarcados, em diversas arquiteturas de CPU (ARM, PPC, MIPS, x86, etc), atuando em projetos com Linux embarcado, Android embarcado e sistemas operacionais de tempo real. É sócio da Embedded Labworks, onde atua com consultoria, treinamento e desenvolvimento de software para sistemas embarcados. É ativo na comunidade de sistemas embarcados no Brasil, sendo um dos criadores do site Embarcados, administrador do grupo sis_embarcados no Google Groups, além de manter um blog pessoal sobre assuntos da área. É colaborador de alguns projetos de software livre, incluindo o Buildroot e o kernel Linux.
4 Embedded Labworks AGENDA (PARTE 1) 1. Criando distribuições GNU/Linux com suporte ao Qt5 para dispositivos embarcados. 2. Configurando o Qt Creator para desenvolver e depurar aplicações em Qt5 para um dispositivo com Linux embarcado.
5 Embedded Labworks PRÉ-REQUISITOS Usuário de sistemas operacionais GNU/Linux. Terminal de comandos (ls, cat, cp, mv, grep, find, vi, etc). Conhecimentos básicos de linguagem C e C++.
6 Embedded Labworks AMBIENTE DE LABORATÓRIO /opt/labs/ dl/ docs/ hardware/ training-part1/ training-part2/ ex/ Ambiente de laboratório Aplicações e pacotes open-source que serão utilizados durante as atividades de laboratório Documentação Documentação do hardware Atividades de laboratório (parte 1) Atividades de laboratório (parte 2) Exercícios de laboratório
7 Embedded Labworks ORIENTAÇÕES GERAIS Pergunte... Expresse seu ponto de vista... Troque experiências... Ajude... Participe!
8 Embedded Labworks QtCon Brasil 2018 Construindo distribuições GNU/Linux
9 Embedded Labworks SISTEMA LINUX EMBARCADO Aplicação Biblioteca Toolchain Aplicação Biblioteca Biblioteca C Linux kernel Bootloader Hardware
10 Embedded Labworks COMPONENTES DE UM SISTEMA LINUX Hardware: dispositivo de hardware (target). Bootloader: responsável pela inicialização básica do hardware, carga e execução do sistema operacional, no nosso caso o kernel Linux. Kernel Linux: Núcleo do sistema operacional. Gerencia CPU, memória e I/O, exportando diversos serviços para a camada de usuário. Rootfs: sistema de arquivos principal. Biblioteca C: interface entre o kernel Linux e as aplicações do usuário. Bibliotecas e aplicações do usuário. Toolchain: conjunto de ferramentas para gerar os binários do sistema.
11 Embedded Labworks SISTEMA LINUX COM O QT5 Aplicações Qt5 Qt5 Toolchain ARMv7 Busybox e outras aplicações auxiliares Bibliotecas auxiliares Biblioteca C (glibc) Linux kernel U-Boot Colibri i.mx6 + Viola Baseboard + Ipê Board
12 Embedded Labworks HARDWARE Aplicações Qt5 Qt5 Toolchain ARMv7 Busybox e outras aplicações auxiliares Bibliotecas auxiliares Biblioteca C (glibc) Linux kernel U-Boot Colibri i.mx6 + Viola Baseboard + Ipê Board
13 Embedded Labworks HARDWARE (cont.)
14 Embedded Labworks CPU Suporta mais de 30 arquiteturas diferentes (x86, ia64, ARM, PPC, MIPS, SuperH, Blackfin, Coldfire, etc). 32/64 bits: não foi feito para microcontroladores! Originalmente projetado para CPUs com MMU (Memory Management Unit). O projeto uclinux foi criado para que o Linux pudesse ser usado em CPUs sem MMU. Boa parte do uclinux já foi integrado à árvore oficial do kernel, possibilitando o uso do Linux em diversas CPUs sem MMU (m68k e arm sem MMU, H8/300 da Hitachi, ADI Blackfin, etc).
15 Embedded Labworks MEMÓRIA RAM E ARMAZENAMENTO Um sistema Linux bem básico pode funcionar com 8MB de RAM (ou até menos), mas o ideal para começar é em torno de 32MB. Suporta armazenamento em memória flash NAND e NOR, disco rígido, cartão SD/MMC, etc. Um sistema bem básico pode funcionar com 2M de armazenamento (ou até menos). Atualmente boa parte das plataformas de hardware utilizam a emmc como dispositivo de armazenamento.
16 Embedded Labworks COMUNICAÇÃO O Linux suporta muitos barramentos comuns em sistemas embarcados: I2C, SPI, CAN, 1-wire, SDIO, USB, etc. E também os principais protocolos de rede: Ethernet, Wi-Fi, Bluetooth, CAN, IPv4, IPv6, TCP, UDP, etc. Se o barramento ou protocolo não possuir restrições de licença, é bem provável que esteja implementado no kernel. Já protocolos ou barramentos com restrições de licença tem dificuldade para entrar na árvore oficial do kernel (ex: Zigbee).
17 Embedded Labworks CRITÉRIOS PARA SELEÇÃO Certifique-se de que o hardware já é suportado pelo Linux e por um bootloader open-source. Suporte nas versões oficiais dos projetos (bootloader e kernel) é melhor: maior qualidade e novas versões disponíveis. A diferença entre uma plataforma suportada na árvore oficial do kernel, e outra plataforma não suportada de forma oficial, pode te trazer grandes consequências em termos de custo e tempo de desenvolvimento!
18 Embedded Labworks COLIBRI IMX6DL System-on-module (SOM) da Toradex. Baseado no SOC i.mx6 DualLite da NXP, um ARM Cortex-A9 rodando a até 996MHz. 512MB de memória RAM. 4GB de armazenamento interno (emmc NAND Flash). Conector no padrão (memória DDR1). SODIMM200
19 Embedded Labworks PLACA BASE VIOLA Placa base compatível com todos os módulos Colibri da Toradex. 2 conectores USB Host e 1 conector Ethernet. 1 conector de cartão SD. Interface RGB para display LCD. Barramento de 50 pinos que exporta o acesso às diversas interfaces de I/O do SOC (I2C, SPI, UART, GPIO, etc). Alimentação externa com uma fonte de 5V/2A.
20 Embedded Labworks PLACA DE EXPANSÃO IPÊ Placa desenvolvida pela Toradex Brasil. 2 chaves, 1 botão e 3 leds conectados a GPIOs. 1 led e 1 buzzer conectados a canais PWM. 1 porta serial para console. 1 resistor dependente de luz (LDR) e um trimpot conectados a canais A/D. 1 acelerômetro MMA expansor de GPIOs MCP23S08 conectado a um display de 7 segmentos.
21 Embedded Labworks REFERÊNCIAS E DOCUMENTAÇÃO A documentação do hardware está disponível no ambiente de laboratório do treinamento em /opt/labs/docs/hardware: SOC_imx6sdl_datasheet.pdf: datasheet SOM_colibri_imx6_datasheet.pdf: datasheet do SOM. BASE_BOARD_viola_datasheet.pdf: datasheet da placa base. EXT_BOARD_ipe_esquemático.pdf: esquemático da placa de expansão. Recursos na internet: do SOC.
22 Embedded Labworks TOOLCHAIN Aplicações Qt5 Qt5 Toolchain ARMv7 Busybox e outras aplicações auxiliares Bibliotecas auxiliares Biblioteca C (glibc) Linux kernel U-Boot Colibri i.mx6 + Viola Baseboard + Ipê Board
23 Embedded Labworks O QUE SÃO TOOLCHAINS? Ao pé da letra, e traduzindo literalmente, toolchain é uma "corrente de ferramentas". Na prática, é um conjunto de ferramentas de compilação. Você se lembra do processo de compilação de um código em C? Ele envolve normalmente as seguintes etapas: pré-processamento, compilação, montagem (assembler) e linkagem. Cada uma destas etapas é executada por uma ferramenta (préprocessador, compilador, assembler e linker), e todas elas fazem parte do toolchain.
24 Embedded Labworks TIPOS DE TOOLCHAIN As ferramentas de desenvolvimento normalmente disponíveis em um desktop GNU/Linux são chamadas de toolchain nativo. Este toolchain roda na sua máquina e compila código para ser executado na sua máquina, geralmente um x86. Em desenvolvimento de sistemas embarcados normalmente é complicado (às vezes até impossível) usar um toolchain nativo, porque precisamos de bastante espaço em disco, capacidade de processamento, memória, etc. Portanto, para esta tarefa, o melhor é usar um cross-compiling toolchain, que roda na sua plataforma de desenvolvimento mas gera código para a sua plataforma alvo.
25 Embedded Labworks CROSS-COMPILING TOOLCHAIN Código-fonte Host Toolchain nativo Cross-compiling toolchain x86 Binário x86 Target Binário ARM x86 ARM
26 Embedded Labworks TOOLCHAIN BASEADO NO GNU gcc: compilador, com suporte a diversas linguagens como C, C++ e Fortran. binutils: ferramentas de manipulação de binários como o assembler e o linker. glibc: biblioteca C padrão do sistema.
27 Embedded Labworks INSTALANDO UM TOOLCHAIN Existem alguns toolchains prontos disponíveis na Internet, como por exemplo o toolchain da Linaro. Uma distribuição GNU/Linux pode conter toolchains em seu repositório de pacotes: $ sudo apt-get install gcc-arm-linux-gnueabihf Existem algumas ferramentas capazes de gerar toolchains, incluindo o crosstool-ng, Buildroot e Yocto Project.
28 Embedded Labworks BOOTLOADER Aplicações Qt5 Qt5 Toolchain ARMv7 Busybox e outras aplicações auxiliares Bibliotecas auxiliares Biblioteca C (glibc) Linux kernel U-Boot Colibri i.mx6 + Viola Baseboard + Ipê Board
29 Embedded Labworks BOOTLOADER (cont.) O bootloader tem basicamente duas responsabilidades: Inicializar o hardware. Carregar e executar o sistema operacional. Normalmente o bootloader provê outras funcionalidades para facilitar o desenvolvimento do sistema, incluindo: Fazer o boot pela rede ou pela porta serial. Ler e escrever na memória flash. Executar rotinas de diagnóstico de hardware.
30 Embedded Labworks BOOT EM X86 BIOS em ROM Plataformas x86 normalmente vem acompanhadas de uma memória não-volátil, a BIOS. Um programa na BIOS é executado no boot do equipamento, que faz a inicialização básica do hardware, carrega para a memória e executa os primeiros 512 bytes do dispositivo de boot. Estes 512 bytes também são chamados de MBR. Estágio bytes do disco Estágio 2 A MBR é o bootloader de 1o. estágio, que é o responsável por carregar um bootloader de 2o. estágio do disco para a RAM. O bootloader de 2o. estágio é mais completo, entende sistemas de arquivo, consegue ler o sistema operacional do disco, carregar para a memória e executar. do disco SO do disco
31 Embedded Labworks BOOT EM ARM ROM Code O SoC tem um código de boot em uma ROM interna, responsável por carregar um bootloader de 1o. estágio (SPL) para uma memória RAM interna (SRAM ou IRAM). SPL O SPL (Secundary Program Loader) é responsável por inicializar o hardware (CPU, DRAM, GPIOs, etc) e carregar um bootloader de 2o. estágio para a RAM. Bootloader É um bootloader mais completo e normalmente suporta sistemas de arquivo, interface USB e protocolo TCP/IP. Responsável por carregar e executar o kernel Linux. Linux Kernel É executado da memória RAM e assume o controle do sistema (a partir daqui, o bootloader não existe mais).
32 Embedded Labworks PRINCIPAIS BOOTLOADERS x86: LILO Grub Syslinux ARM, MIPS, PPC e outras arquiteturas: U-Boot Barebox Redboot
33 Embedded Labworks U-BOOT Bootloader open-source (GPLv2) mais utilizado atualmente, principalmente em ARM. Suporta uma grande variedade de CPUs, incluindo PPC, ARM, MIPS, Coldfire, x86, etc. Documentação disponível no site do projeto.
34 Embedded Labworks KERNEL LINUX Aplicações Qt5 Qt5 Toolchain ARMv7 Busybox e outras aplicações auxiliares Bibliotecas auxiliares Biblioteca C (glibc) Linux kernel U-Boot Colibri i.mx6 + Viola Baseboard + Ipê Board
35 Embedded Labworks KERNEL LINUX (cont.) O Linux é um kernel! As distribuições GNU/Linux (Ubuntu, Fedora, Debian, Slackware, etc) integram o kernel Linux, bibliotecas e aplicações. Criado em 1991 pelo estudante finlandês Linus Torvalds, começou a ser usado rapidamente como sistema operacional em projetos de software livre. Linus Torvalds foi capaz de criar uma comunidade grande e dinâmica de desenvolvedores e usuários ao redor do projeto. Atualmente, centenas de pessoas e empresas contribuem com o projeto.
36 Embedded Labworks KERNEL LINUX (cont.)
37 Embedded Labworks KERNEL LINUX (cont.) O kernel Linux abstrai o uso das CPUs do sistema, de forma que cada processo acredite que ele tem a CPU só para ele. O kernel Linux abstrai o uso da memória com a ajuda da MMU, de forma que cada processo acredite que ele tem a memória só para ele. O kernel Linux abstrai o acesso a dispositivos de I/O, utilizando arquivos como principal mecanismo de abstração. $ echo hello > /dev/ttys0
38 Embedded Labworks KERNEL LINUX (cont.) Existe uma separação bem definida entre o kernel (kernel space) e as bibliotecas e aplicações do usuário (user space). O kernel roda em modo privilegiado, com acesso completo a todas as instruções da CPU, endereçamento de memória e I/O, enquanto que os processos do usuário rodam em modo restrito, com acesso limitado aos recursos da máquina. Por isso, existe uma interface de comunicação, baseada chamadas de sistema (system calls), para que as bibliotecas e aplicações tenham acesso aos recursos da máquina.
39 Embedded Labworks DEVICE TREE Muitas plataformas possuem dispositivos de hardware que não podem ser identificados dinamicamente pelo kernel. Nestes casos, é necessário um mecanismo para comunicar ao kernel informações sobre os dispositivos de hardware presentes no sistema. Para resolver este problema, muitas plataformas adotaram o device tree. O device tree é uma estrutura de dados capaz de descrever a topologia e a configuração do hardware presente no sistema. Na prática, é um arquivo com extensão.dts, compilado para um arquivo com extensão.dtb e passado para o kernel no boot do sistema.
40 Embedded Labworks ROOTFS Aplicações Qt5 Qt5 Toolchain ARMv7 Busybox e outras aplicações auxiliares Bibliotecas auxiliares Biblioteca C (glibc) Linux kernel U-Boot Colibri i.mx6 + Viola Baseboard + Ipê Board
41 Embedded Labworks COMPONENTES BÁSICOS DO ROOTFS Um sistema GNU/Linux precisa de um conjunto básico de programas para funcionar, incluindo: Uma biblioteca do sistema (glibc, uclibc-ng, musl, etc). Um mecanismo de inicialização (systemd, sysvinit, upstart, etc). Diversas bibliotecas e aplicações (bash, cat, echo, grep, sed, useradd, vi, getty, libusb, etc). Normalmente estes programas são fornecidos em diferentes projetos e é trabalhoso configurar, compilar e integrar manualmente todos eles.
42 Embedded Labworks BUSYBOX O Busybox é uma solução alternativa, trazendo uma quantidade grande e comum de programas usados em sistemas Linux, mas com tamanho reduzido, perfeito para sistemas embarcados! O Busybox contém diversos componentes, incluindo um sistema de inicialização baseado no sysvinit, um terminal de comandos, além de ferramentas e utilitários diversos (cat, echo, ps, vi, etc). Geralmente, as ferramentas são mais limitadas em termos de funcionalidades comparadas às originais.
43 Embedded Labworks BUSYBOX TUDO ISSO EM ~1MB! addgroup, adduser, adjtimex, ar, arp, arping, ash, awk, basename, bbconfig, bbsh, brctl, bunzip2, busybox, bzcat, bzip2, cal, cat, catv, chat, chattr, chcon, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devfsd, df, dhcprelay, diff, dirname, dmesg, dnsd, dos2unix, dpkg, dpkg_deb, du, dumpkmap, dumpleases, e2fsck, echo, ed, egrep, eject, env, envdir, envuidgid, ether_wake, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat, fdisk, fetchmail, fgrep, find, findfs, fold, free, freeramdisk, fsck, fsck_minix, ftpget, ftpput, fuser, getenforce, getopt, getsebool, getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave, ifup, inetd, init, inotifyd, insmod, install, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, lash, last, length, less, linux32, linux64, linuxrc, ln, load_policy, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lzmacat, makedevs, man, matchpathcon, md5sum, mdev, mesg, microcom, mkdir, mke2fs, mkfifo, mkfs_minix, mknod, mkswap, mktemp, modprobe, more, mount, mountpoint, msh, mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od, openvt, parse, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, poweroff, printenv, printf, ps, pscan, pwd, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot, renice, reset, resize, restorecon, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run_parts, runcon, runlevel, runsv, runsvdir, rx, script, sed, selinuxenabled, sendmail, seq, sestatus, setarch, setconsole, setenforce, setfiles, setfont, setkeycodes, setlogcons, setsebool, setsid, setuidgid, sh, sha1sum, showkey, slattach, sleep, softlimit, sort, split, start_stop_daemon, stat, strings, stty, su, sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, top, touch, tr, traceroute, true, tty, ttysize, tune2fs, udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat, zcip
44 Embedded Labworks CRIANDO O ROOTFS No rootfs do sistema GNU/Linux que criaremos neste treinamento, incluiremos a glibc, as ferramentas básicas providas pelo Busybox, as bibliotecas do Qt5 e algumas bibliotecas e ferramentas auxiliares. Apesar de simples, criar um rootfs manualmente é bastante trabalhoso pois envolve configurar e compilar cada componente individualmente. Esta tarefa pode ser automatizada através de um sistema de build (build system).
45 Embedded Labworks BUILD SYSTEM Um build system é capaz de gerar todos os componentes do sistema operacional, incluindo o toolchain, bootloader, kernel Linux e rootfs. Atualmente, os dois principais sistemas de build são o Buildroot e o Yocto Project. Nesta apresentação, utilizaremos o Buildroot para construir a imagem do sistema operacional.
46 Embedded Labworks BUILDROOT Desenvolvido pelos mesmos mantenedores da uclibc. Possibilita gerar o toolchain, o bootloader, o kernel e o rootfs com muitas bibliotecas e aplicações disponíveis. Mais de aplicações e bibliotecas integradas, de utilitários básicos à bibliotecas mais elaboradas como X.org, Qt, Gtk, Webkit, Gstreamer, etc. Desde a versão um novo release é liberado a cada 3 meses.
47 Embedded Labworks BUILDROOT (cont.) Fonte:
48 Embedded Labworks CONFIGURANDO O BUILDROOT Permite configurar, dentre outras opções: Arquitetura e modelo da CPU. Toolchain. Bootloader. Kernel. Bibliotecas e aplicações. Tipos das imagens do rootfs (ext4, ubifs, etc). Para configurar: $ make menuconfig
49 Embedded Labworks CONFIGURANDO O BUILDROOT (cont.)
50 Embedded Labworks COMPILANDO O BUILDROOT Configuração fica armazenada em um arquivo chamado.config. Para compilar: $ make No final do processo de compilação, as imagens estarão disponíveis no diretório output/images/: $ ls output/images/ imx6dl-colibri-ipe.dtb rootfs.tar u-boot.bin rootfs.ext2 sdcard.img u-boot.img rootfs.ext4 SPL zimage
51 Embedded Labworks QtCon Brasil 2018 Laboratório 1: Gerando uma distribuição GNU/Linux com o Qt5
52 Embedded Labworks QtCon Brasil 2018 Desenvolvendo aplicações com o Qt Creator
53 Embedded Labworks INTRODUÇÃO AO QT O Qt é um framework completo para o desenvolvimento de aplicações multiplataforma desktop e mobile. Suporta inúmeras plataformas, incluindo os sistemas operacionais GNU/Linux, Windows, MacOS, Android e ios e as arquiteturas x86, x86-64 e ARM. Diversas aplicações e produtos famosos utilizam o Qt, incluindo as smart TVs da LG e os softwares Autodesk Maya, Google Earth e VirtualBox. É implementado em C++ mas possui bindings para outras linguagens, incluindo Python, Go, Rust, PHP e Java.
54 Embedded Labworks HISTÓRICO DO QT 1990: começou a ser escrito pela Trolltech. 1995: primeiro release público do Qt (licenças GPLv2 e comercial). 2008: Nokia compra a Trolltech. 2009: Lançado o Qt Creator e o Qt 4.5 (licença LGPLv2). 2011: Digia compra da Nokia a licença comercial e os direitos do Qt. 2014: Digia cria a subsidiária "The Qt Company". 2016: Lançamento do Qt 5.7, onde a maioria do módulos é relicenciado para LGPLv3.
55 Embedded Labworks APIs O Qt possui uma API completa para o desenvolvimento de aplicações, incluindo bibliotecas para trabalhar com arquivos, threads, networking, banco de dados, multimedia, localização, gráficos, etc. Possui uma API baseada em widgets para o desenvolvimento de aplicações com interface gráfica. Através do módulo Qt Quick e da linguagem declarativa QML, possibilita o desenvolvimento de aplicações gráficas ricas e fluídas.
56 Embedded Labworks QT QUICK Na mudança do Qt4 para o Qt5, houve um foco grande no desenvolvimento de interfaces gráficas ricas através de um módulo chamado Qt Quick, baseado em três principais componentes: Uma linguagem declarativa chamada QML. Um interpretador Javascript. Elementos para o desenvolvimento de uma interface gráfica rica, com bastante foco em animação e efeitos 3D. Apesar da grande quantidade de novos recursos, o Qt5 mantém compatibilidade com as versões anteriores do Qt.
57 Embedded Labworks EXEMPLOS QT QUICK
58 Embedded Labworks LICENÇAS Até a versão 5.3, os principais módulos do Qt eram licenciados com LGPLv2, uma licença bastante amigável do ponto de vista comercial. A partir do Qt 5.4, os principais módulos do Qt foram aos poucos relicenciados para LGPLv3, que pode ser uma barreira para produtos comerciais. Para estes casos, pode ser necessário adquirir uma licença comercial do Qt. Nas últimas versões do Qt, a maioria dos módulos tem licença LGPLv3.
59 Embedded Labworks LICENÇA (Qt v5.6) Fonte:
60 Embedded Labworks LICENÇA (Qt v5.7) Fonte:
61 Embedded Labworks QT CREATOR Ambiente de desenvolvimento integrado (IDE) completo para o Qt. Disponível para Linux, Windows e MacOS. Suporta o desenvolvimento de aplicações em modo texto, aplicações gráficas através de widgets e aplicações multimídia ricas utilizando QML. Possibilita o desenvolvimento, testes e depuração remota em um dispositivo com Linux embarcado.
62 Embedded Labworks QT CREATOR (EDITOR)
63 Embedded Labworks QT CREATOR (WIDGETS)
64 Embedded Labworks QT CREATOR (QML)
65 Embedded Labworks QT CREATOR (OPTIONS MENU)
66 Embedded Labworks QtCon Brasil 2018 Laboratório 2: Configurando o Qt Creator
67 DÚVIDAS? Website Blog Twitter Embedded Labworks Por Sergio Prado. São Paulo, Novembro de 2018 Copyright Embedded Labworks All rights reserved.
68 Aplicações Embarcadas com Qt5 Cleiton Bueno B2Open Systems
69 Direitos do material Compartilhar copiar e redistribuir o material em qualquer suporte ou formato. Adaptar remixar, transformar, e criar a partir do material para qualquer fim, mesmo que comercial. O licenciante não pode revogar estes direitos desde que você respeite os termos da licença. BY: Licença Creative Commons BY-SA 3.0
70 B2Open Systems Trabalhamos com diversas soluções em FOSS realizando consultoria, treinamento, projetos alinhado ao cliente de diversos setores da industria entre estas soluções o @cleitonbueno
71 Fedora s Tips Quando ver este ícone em qualquer slide será abordado alguma dica ou macete solucionando algum problema ou evitando um, além de dicas que podem evitar horas e horas de pesquisa para soluções simples. PS: Fedora é o nome da minha cachorra!
72 Qt5 x ROI
73 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular.
74 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular. 2. Aplicações Multiplataformas.
75 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular. 2. Aplicações Multiplataformas. 3. IDE QtCreator: IDE completa para desenvolver, compilar, depurar, profilar e configuração de diversos diferentes plataformas. Kits para
76 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular. 2. Aplicações Multiplataformas. 3. IDE QtCreator: IDE completa para desenvolver, compilar, depurar, profilar e configuração de diversos Kits diferentes plataformas. 4. Qt Linguist: Internacionalização com Qt. para
77 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular. 2. Aplicações Multiplataformas. 3. IDE QtCreator: IDE completa para desenvolver, compilar, depurar, profilar e configuração de diversos Kits para diferentes plataformas. 4. Qt Linguist: Internacionalização com Qt. 5. QPA para Linux Embarcado: eglfs, linuxfb, wayland, XBC,
78 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular. 2. Aplicações Multiplataformas. 3. IDE QtCreator: IDE completa para desenvolver, compilar, depurar, profilar e configuração de diversos Kits para diferentes plataformas. 4. Qt Linguist: Internacionalização com Qt. 5. QPA para Linux Embarcado: eglfs, linuxfb, wayland, XBC, 6. Qt VirtualKeyboard: Teclado suporte a mais de 35 idiomas. virtual com
79 Framework Qt5 justificando o ROI 1. Extenso numero de bibliotecas e modular. 2. Aplicações Multiplataformas. 3. IDE QtCreator: IDE completa para desenvolver, compilar, depurar, profilar e configuração de diversos Kits para diferentes plataformas. 4. Qt Linguist: Internacionalização com Qt. 5. QPA para Linux Embarcado: eglfs, linuxfb, wayland, XBC, 6. Qt VirtualKeyboard: Teclado virtual suporte a mais de 35 idiomas. 7. Qt OTA: Over-The-Air baseado no OSTree. com
80 Framework Qt5 justificando o ROI 1. Extenso número de bibliotecas e modular. 2. Aplicações Multiplataformas. 3. IDE QtCreator: IDE completa para desenvolver, compilar, depurar, profilar e configuração de diversos Kits para diferentes plataformas. 4. Qt Linguist: Internacionalização com Qt. 5. QPA para Linux Embarcado: eglfs, linuxfb, wayland, XBC, 6. Qt VirtualKeyboard: Teclado virtual com suporte a mais de 35 idiomas. 7. Qt OTA: Over-The-Air baseado no OSTree. 8. Qt Device Creation: SO Linux Customizado e otimizado para Sistemas Embarcado.
81 Framework Qt5
82
83
84 Módulos Módulos contêm bibliotecas, plugins e documentação. Alguns módulos são comuns para todas plataformas, outros, são de proposito especifico e de uma plataforma alvo.
85 Qt Essentials Disponíveis para todas plataformas QtCore, QtGui, QtMultimedia, QtNetwork, QtQML, QtQuick, QtSQL, QtTest, QtWidgets. Qt Essentials
86 Qt Add-ons Módulos de proposito especifico nem sempre disponível para todas plataformas Qt3D, QtBluetooth, QtConcurrent, QtD-BUS, QtGamePad, QtLocation, QtNFC, QtPositioning, QtPrint, QtQuickControls1/2, QtSensors, QtSerialBus, QtSerialPort e etc Qt Add-ons
87 Destaque para Embarcados QtSerialPort QtMqtt QtSerialBus QCanBus e QModbus* QtKnx QCryptographicHash QDateTime QRegularExpression QSettings QCommandLineParser QFileSystemWatcher QJson* IPC Qt Sql Qt Networking #1
88 Extensões.qrc Qt Resource Collection (armazenar icones, arquivos de traduções, imagens e etc).cpp Código-fonte C++.h Cabecalho do Código-fonte C++.ui User Interface.qml Qt Modeling Language (linguagem declarativa, fluida, semelhante com JSON para descrever GUI).js Contendo rotinas e declarações JavaScript.pro Projeto, descrição do projeto e dependências, utilizado pelo qmake.pri Includes a serem estendidos no.pro
89 Quem utiliza?
90 QtQuick (QML)
91 Qt Quick Utiliza uma linguagem declarativa conhecida como QML, e imperativa com JavaScript, integração runtime com Qt, API C++ para integração e suporte da IDE Qt Creator para linguagem QML
92 Qt Quick Fácil prototipação e pode-se visualizar a GUI sem uma linha de C++. Qt Quick1 Preview: qmlviewer Qt Quick2 Preview: qmlscene
93 Qt Quick Qt Quick2 Preview: qmlscene A ferramenta qmlscene carrega e exibe documentos QML antes mesmo da conclusão do aplicativo. Esse utilitário também fornece os seguintes recursos adicionais que são úteis ao desenvolver aplicativos QML.
94 Qt Quick Inicialmente em QML vamos falar de Itens e Propriedades.
95 Qt Quick Inicialmente em QML vamos falar de Itens e Propriedades Itens: É o item básico de todo componente visual, onde se tem posições, cores, ancoras entre diversos outras opções.
96 Qt Quick Inicialmente em QML vamos falar de Itens e Propriedades Itens: É o item básico de todo componente visual, onde se tem posições, cores, ancoras entre diversos outras opções. Propriedades: É uma relação chave-valor, onde se configura/define valores no caso, as posições, cores, valores dentro de um Item.
97 Primeiro QML
98 Primeiro QML Itens Properties
99 Primeiro QML Tools > External > Qt Quick > Qt Quick 2 Preview ou /home/qtcon/qt/5.11.1/gcc_64/bin/qmlscene
100 Erro deploy/run remoto qt.qpa.plugin: Could not find the Qt platform plugin "" This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, minimal, minimalegl, offscreen. 12:48:43: Process killed by signal #2
101 Erro deploy/run remoto IDE Qt Creator > Projects(Ctrl+5) > Selecionar Kit(ToradexQtCon) > Run Procurar por Run e adicionar a plataforma em uso em Command line arguments #2
102 Cores Tipos de especificação de cores SVG Names: yellow, red, green, gold HTML Style Color: #0000FF Qt built-in: Qt.rgba(0, 0.75, 0, 1)
103 Posicionamento Posicionamento em QML é falar de Column, Grid, Row e estender com Anchors.
104 Posicionamento Column
105 Posicionamento Grid
106 Posicionamento Row
107 Posicionamento Anchors
108 Posicionamento Anchors
109 Imagens
110 Imagem não suportada qrc:/main.qml:16:9: QML Image: Error decoding: qrc:///res/images/bg-dark-green.jpg: Unsupported image format #3
111 Imagem não suportada Listando os formatos de imagens suportadas para carregar e salvar imagens: QImageReader::supportedImageFormats(); QImageWriter::supportedImageFormats(); #3
112 Imagem não suportada Host Formatos para carregar imagens: ("bmp", "cur", "gif", "icns", "ico", "jpeg", "jpg", "pbm", "pgm", "png", "ppm", "svg", "svgz", "tga", "tif", "tiff", "wbmp", "webp", "xbm", "xpm") Formatos para salvar imagens : ("bmp", "cur", "icns", "ico", "jpeg", "jpg", "pbm", "pgm", "png", "ppm", "tif", "tiff", "wbmp", "webp", "xbm", "xpm") #3
113 Imagem não suportada Target Formatos para carregar imagens: ("bmp", "cur", "icns", "ico", "pbm", "pgm", "png", "ppm", "svg", "svgz", "tga", "tif", "tiff", "wbmp", "webp", "xbm", "xpm") Formatos para salvar imagens : ("bmp", "cur", "icns", "ico", "pbm", "pgm", "png", "ppm", "tif", "tiff", "wbmp", "webp", "xbm", "xpm") Solução: Usar o formato png ou algum outros da lista de suportados! #3
114 Texto
115 Eventos do Teclado Captura os eventos do teclado, porém, deverá setar focus: true no item a utilizar Keys{} Lembre-se deste Keys no Laboratório!
116 MouseArea Capturar toque na tela touchscreen, utilizar MouseArea{}
117 Framework Qt5 - C++
118 C++ C++ / Qt
119 QFile Classe que fornece uma interface amigável e completa para se manipular arquivos. open(), close(), seek(), write(), read(), rename(), remove(),... Estendendo recursos com: QByteArray: Array de bytes, usa CoW[copy-on-write) QTextStream: Dados Formatados QDataStream: Dados Binarios QString: Poderosa classe para manipulação de strings
120 QFile Saída: Temperatura: Temperatura: Temperatura: Temperatura: "29.5" "30.2" "27.6" "28.8"
121 QDebug A classe QDebug fornece um fluxo de saída para informações de depuração. O QDebug é usado sempre que o desenvolvedor precisa gravar informações de depuração ou de rastreamento em um dispositivo, arquivo, string ou console.
122 QDebug 1. qdebug("mensagem1"); 2. qdebug() << "Debug:" << endl; 3. qinfo() << "Info:"; 4. qwarning() << "Atencao:"; 5. qcritical() << "Erro Critico:"; 6. qfatal("erro fatal, encerrando aplicação");
123 QTimer Classe de um temporizador, para eventos repetitivos ou um único disparo com atraso, por exemplo. 1. QTimer *timer = new QTimer(this); 2. connect(timer, SIGNAL(timeout()), this, SLOT(update())); 3. timer->start(1000); QTimer::singleShot(200, this, SLOT(updateCaption()));
124 Sinais e Slots
125 Sinais e Slots Se QObject é o coração do Qt Object Model, podemos dizer que sinais e slots são as artérias!
126 Sinais e Slots Se QObject é o coração do Qt Object Model, podemos dizer que sinais e slots são as artérias! Principal mecanismo de comunicação entre os objetos criados em C++ no Qt5, necessário mencionar Q_OBJECT na classe, para o MOC saber que esta classe utiliza Sinais e Slots.
127 Sinais e Slots Se QObject é o coração do Qt Object Model, podemos dizer que sinais e slots são as artérias! Principal mecanismo de comunicação entre os objetos criados em C++ no Qt5, necessário mencionar Q_OBJECT na classe, para o MOC saber que esta classe utiliza Sinais e Slots. A classes que utilizam sinais e slots, também devem derivar (direta ou indiretamente) do QObject.
128 Sinais e Slots
129 Sinais e Slots Estilo Qt4 connect(&objeto1, SIGNAL(sigObj1()), objeto2, SLOT(slotObj2(QString)) ); Estilo Qt5 connect(&objeto1, &Class1::sigObj1, objeto2, &Class2::slotObj2 );
130 Sinais e Slots Estilo Qt5 com C++11 Lambda Expressions connect(&objeto1, &Class1::sigObj1, [=](const QString &s) { // Rotinas aqui! qdebug() << Atualizado! ; } );
131 Sinais e Slots Evitando conflitos e problemas com bibliotecas de terceiro, não usando signals, slot e emit. Solução: Adicionar no.pro: CONFIG += no_keywords Utilizar: signals Q_SIGNAL() Q_SIGNALS() slots Q_SLOT() Q_SLOTS() emit Q_EMIT() #4
132 Integrando QML e C++
133 A magica Quem faz todo trabalho duro para que esta funcionalidade pareça magica é o Qt Meta-Object System em especial neste curso o QObject e a macro Q_OBJECT.
134 A magica Quem faz todo trabalho duro para que esta funcionalidade pareça magica é o Qt Meta-Object System em especial neste curso o QObject e a macro Q_OBJECT. Q_PROPERTY Q_INVOKABLE Signals/Slots
135 Q_PROPERTY Recurso muito útil para configurar uma propriedade(set), ler o valor de um propriedade(get) ou notificar alguma alteração(signal). Um protótipo comum usando Q_PROPERTY. Q_PROPERTY(QString msg READ msg WRITE setmsg NOTIFY msgchanged)
136 Q_PROPERTY
137 Q_INVOKABLE Métodos que podem ser chamados direto do QML, e que podem ou não retornar algum dado, o mesmo vale para slots. Um protótipo comum usando Q_INVOKABLE. Q_INVOKABLE void registrarfalha(qstring falha)
138 Q_INVOKABLE
139 QML C++ main.qml main.cpp led.h
140 QML C++ main.qml main.cpp led.h
141 QML C++ main.qml main.cpp led.h
142
143 Classe Name
144 Classe Name URI Name
145 Classe Name URI Name Version Major Version Minor
146 Classe Name URI Name Version Major Version Minor QML Name
147 QML C++ main.qml main.cpp led.h
148 QML C++ main.qml main.cpp led.h
149 QML C++ main.qml main.cpp led.h
150 QML C++ main.qml main.cpp led.h
151 Laboratório
152
153 Problemas/Soluções, macetes e dicas valiosas com Qt5 Parse Command Line Tratar Sinais Linux Adicionando Fontes ao projeto Depurar problemas por debaixo do Qt5
154 Problema v-sync No mundo dos gamers o famoso tearing o rasgo de tela #5
155 Problema v-sync Exportar no terminal executando a aplicação a variável ambiente QT_QPA_EGLFS_FORCEVSYNC. # export QT_QPA_EGLFS_FORCEVSYNC=1 #5
156 Exportar variável ambiente via QtCreator Executando a aplicação demo B2Weather do QtCreator(Host) no Target(Kit Toradex). #6
157 Exportar variável ambiente via QtCreator IDE Qt Creator > Projects(Ctrl+5) > Selecionar Kit(ToradexQtCon) > Run Environment #6
158 Informações extras sobre Scene Graph Qual render loop esta sendo utilizado? Informações v-sync Fabricante da GPU Versão do Driver GPU Extensões OpenGL #7
159 Informações extras sobre Scene Graph Exportar no terminal executando a aplicação a variável ambiente QSG_INFO. # export QSG_INFO=1 #7
160 Ignorar qdebug() Muitos desenvolvedores mantêm diversos qdebug() em diversas classes durante o desenvolvimento da aplicação, em dado momento não são removidos ou acabam poluindo o stdout durante uma depuração #8
161 Ignorar qdebug() Definir durante a compilação a flag QT_NO_DEBUG_OUTPUT no CMake com add_compile_definitions(qt_no_debug_output) ou adicionando DEFINE += QT_NO_DEBUG_OUTPUT no.pro para o QMake processar. #8
162 Obrigado! perguntas? Cleiton Bueno
Construindo uma Distribuição GNU/Linux com Suporte a Qt para Dispositivos Embarcados. Sergio Prado Embedded Labworks
Construindo uma Distribuição GNU/Linux com Suporte a Qt para Dispositivos Embarcados Sergio Prado Embedded Labworks sergio.prado@e-labworks.com SERGIO PRADO Sergio Prado tem mais de 20 anos de experiência
Sistemas Embarcados. Montando o quebra-cabeças... linuxrc. O primeiro programa em espaço de usuário. Aula 07
Montando o quebra-cabeças... Sistemas Embarcados Busybox e buildroot Aula 07 Power-on dispara bootloader Bootloader Inicialização do hardware Carrega kernel na memória, descompacta e passa controle Kernel
DESENVOLVENDO APLICAÇÕES EMBARCADAS COM QT E TORADEX Cleiton Bueno
DESENVOLVENDO APLICAÇÕES EMBARCADAS COM QT E TORADEX Cleiton Bueno cleiton.bueno@b2open.com OLA! Eu sou Cleiton Bueno Engenheiro, ciclista*, FOSS, e tudo isso junto 1. TORADEX SoM Colibri i.mx6 i.mx6s
Embedded Linux From Scratch
Embedded Linux From Scratch Embedded Linux From Scratch em 40 minutes! Michael Opdenacker Free Electrons / nada + 40 min = Traduzido por Brivaldo Jr Criado com OpenOffice.org 2.x 1 Direitos de Cópia Attribution
Programação de Periféricos
Programação de Periféricos Componentes Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Apresentação Raspberry pi Sistema Operacional embarcado Atividade Raspberry pi Sistema computacional
DECRYPT. Comandos Bash. /bin. Curso de Linux. Prof. Carlos Tardocchi
DECRYPT Curso de Linux Comandos Bash /bin ls list Lista arquivos e conteúdo do diretório Sintaxe ls ... ... Na linha de comando do sistema operacional Unix, o ls
Administração de Sistemas Operacionais Não-Proprietários II
Faculdade Senac Porto Alegre - FSPOA Administração de Sistemas Operacionais Não-Proprietários II UC: Administração de Redes Aula 01 1/15 Faculdade Senac Porto Alegre - FSPOA Revisão 2/15 Linux e Distribuições
DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade KDE/IFBA
DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade KDE/IFBA sandroandrade@kde.org AGENDA DESTE TREINAMENTO O que é o Qt? Porque utilizar o Qt no desenvolvimento para mobile? Módulos do Qt voltados
Estácio-FIC Graduação em Redes de Computadores
Estácio-FIC Graduação em Redes de Computadores Disciplina Programação para Servidores Aula 6 Comandos externos Sumário Comandos básicos; Comandos para manipulação de data e hora; Comandos para processamento
10. mkdir [pasta1] [pasta2] (cria pasta1 e pasta dois ao mesmo tempo) Exemplo: $ mkdir teste1 teste2
Principais Comandos do Terminal no LINUX Estes comandos não visam ser um compêndio completo de operação, haja vista que se possui mais comandos que esses aqui que serão listados, logo os comandos são:
Informática. Linux. Professor Márcio Hunecke.
Informática Linux Professor Márcio Hunecke www.acasadoconcurseiro.com.br Informática O SISTEMA OPERACIONAL GNU/LINUX Características Gerais O Linux surgiu por meio do Projeto GNU (GNU s Not Unix) e é
Comandos de Verificação. Alberto Felipe Friderichs Barros
Comandos de Verificação Alberto Felipe Friderichs Barros fstab fstab é um arquivo em texto puro para configuração de dispositivos de armazenamento e pontos de montagem do GNU/Linux e que pode ser editado
Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)
Sistemas Operacionais Laboratório 1 () Roteiro Linux em modo texto Acesso Interpretador de comandos Comandos Básicos Tratamento de Arquivos e Diretórios (Pasta*) Permissões Processos Editor de Texto Criação
Programação Shell Script: como dominar seu terminal
Programação Shell Script: como dominar seu terminal 14 de Outubro de 2008 1 2 Sistemas Operacionais Shell 3 4 5 O que é Shell? Programa interpretador de instruções Por que utilizar o Shell? Facilidade
Certificação Linux: Conhecendo o caminho das pedras
LPI Linux Professional Institute Certificação Linux: Conhecendo o caminho das pedras Sobre esta apresentação: - Nível: Intermediário - Escopo: Dicas sobre como obter a certificação LPI. - Pré-requisitos:
Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto
Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Processos Periódicos Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Cron O cron é um programa de agendamento
OpenWrt: modelagem do
Instituto Federal do Ceará Essas apresentação possui um acumulado de informações de mais de 9 meses de pesquisa e desenvolvimento em redes mesh utilizando o firmware Openwrt. OpenWrt: modelagem do 1 código
Comandos de arquivos
Comandos de arquivos ls lista diretórios ls -al lista mostrando também arquivos ocultos cd dir muda do diretório atual para o especificado (substituir a variável dir pelo nome da pasta) cd muda para o
Programação de Periféricos
Programação de Periféricos Componentes Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Apresentação Raspberry pi Sistema Operacional embarcado Atividade Raspberry pi Sistema computacional
Usando o terminal -- Linux -- Flávia Maristela
Usando o terminal -- Linux -- Flávia Maristela (flavia@flaviamaristela.com) Os comandos que já vimos man info cal date uname clear nano pico clear exit pwd ls cd locate mkdir rmdir cp mv rm cat tree file
Estruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
b. Causa parada do processo c. Reinicia um processo parado d. O processo é enviado para primeiro plano e. O processo é enviado para segundo plano 5)
SENAC Curso Superior de Tecnologia em Redes de Computadores Unidade Curricular Administração de Sistemas Operacionais Não Proprietários Professor Eduardo Maroñas Monks Nome do Aluno: GABARITO Data: 06/05/2011
Instalação Qt OpenSource
Instalação Qt 5.3.1 OpenSource Escrito por: Cleiton Bueno Data: 13/07/2014 Blog: http://www.cleitonbueno.wordpress.com Na data em que escrevo este artigo o Qt está na versão 5.3.1, onde iremos ver todo
Arquitetura e Organização de Computadores. Compiladores e processamento
Arquitetura e Organização de Computadores Compiladores e processamento Verificar a existência dos pacotes: - GCC (Gnu C Compiler); - GDB (Gnu Debuger); - Libc (blibliotecas C); - nano, vi, emacs ou outro
Lojamundi Tecnologia Sem Limites br
BananaPro/Pi: Construindo u-boot, script.bin e linux-kernel Nota: Todas as instruções a seguir ( e também nas seções 2,3 e 4 ) tem que ser carregadas em um computador linux e não na própria Banana Pro/Pi!
Comandos Básicos Sistema Operacional GNU Linux
Básicos Sistema Operacional GNU Linux Leonardo Cabral da Rocha Soares 4 de junho de 2018 Leonardo Soares Linux 4 de junho de 2018 1 / 7 Conteúdo 1 Introdução 2 Acessando o servidor remoto 3 Miscelânea
V 1.6. LPI 101 Arquitetura do Sistema
LPI 101 Arquitetura do Sistema 101 Arquitetura do Sistema 101.1 Hardware Skills Configurar hardware no sistema Habilita e desabilitar periféricos integrados Configurar systemas com ou sem periféricos externos
Introdução à Informática
Introdução à Informática Professor: Jailson Torquato Sistema Operacional - Linux Conhecimentos básicos em informática O que é Linux? Sistema operacional: é o componente de software que faz a interface
Algoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação
Sistemas Operacionais Abertos
Sistemas Operacionais Abertos Revisando a aula anterior O formato de pacotes.deb Formato do pacote : samba_3.0-2_i386.deb samba nome do pacote 3.0 versão 2 release i386 arquitetura deb tipo do pacote dpkg
Galileo Gen2. Walter Fetter Lages
Galileo Gen2 Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia Semana Acadêmica 2015 Engenharia
Roteiro. 2 Estado Atual. 3 Desenvolvendo para Maemo. 4 Referências e Outras Fontes. 5 Final
Roteiro 1 Apresentação 2 Estado Atual 3 Desenvolvendo para Maemo 4 Referências e Outras Fontes 5 Final Gustavo Sverzut Barbieri Programador desde os 9 anos (1991). Desenvolvedor de Software Livre desde
Aula 04 Sistemas Embarcados LT38C
Aula 04 Sistemas Embarcados LT38C Prof. Lucas Ricken Garcia 2017/1 Linux Contexto Histórico DOS Mac OS UNIX (proprietário nesta época) Minix - Andrew S. Tanenbaum criou baseado no Unix para Processadores
1.1-Digitar o comando abaixo para entrar no manual on-line do sistema para buscar informações sobre o comando pwd. man pwd
Universidade Federal do ABC Disciplina: Software LIvre Prática: Ambiente Linux Laboratório Conteúdo Objetivo...1 1. Comandos de Ajuda...1 2. Comandos de Navegação...2 3. Comandos de Localização de Arquivo...2
TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU
TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU Wellyson Vieira Dias 1. Introdução: 1.1. Componentes do ambiente de desenvolvimento: - IDE Android Studio com SDK. - API Level 19
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Especificação da Projeto de Laboratório de Programação Parte 1 Salvador, 2009 Universidade Federal da Bahia Instituto
Plano de Trabalho Docente Ensino Técnico
Plano de Trabalho Docente 2016 Ensino Técnico Plano de Curso nº 160 aprovado pela portaria Cetec nº 138 de 04 / 10 /2012 Etec Professora Ermelinda Giannini Teixeira Código: 187 Município: Santana de Parnaíba
bg - faz um programa, que está executando em primeiro plano, passar a executar em segundo plano.
A adduser - cria um novo usuário. alias - permite nomear um conjunto de comandos, a ser executado pelo sistema, por um único nome. apropos - informa quais os comandos do Linux possuem, em sua definição,
Laboratório de Microprocessadores Compilação Cruzada
Laboratório de Microprocessadores Compilação Cruzada Giovani Gracioli giovani@lisha.ufsc.br Março 2010 Mar 2010 Giovani Gracioli (http://www.lisha.ufsc.br/~giovani) 1 Roteiro Visão geral sobre compilação
Algoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA
Minicurso Básico de Linux
Minicurso Básico de Linux PET Computação 15 de março de 2017 GNU/Linux (a) Linux (b) GNU Linux: Kernel GNU/Linux: Sistema Operacional Distro (c) Arch (d) Debian (e) Fedora (f) Gentoo (g) Manjaro (h) opensuse
Aaron Newcomb. Novatec
Aaron Newcomb Novatec Authorized Portuguese translation of the English edition of Linux for Makers ISBN 9781680451832 2017 Maker Media Inc. This translation is published and sold by permission of O'Reilly
Componentes do kernel Compilando o kernel Aplicando patch no kernel Configurar, compilar, instalar um kernel personalizado Gerenciar, consultar o
LPI 201 Componentes do kernel Compilando o kernel Aplicando patch no kernel Configurar, compilar, instalar um kernel personalizado Gerenciar, consultar o kernel e seus módulos. Componentes do Kernel Kernel
Sistemas Embarcados. GNU toolchain. Introdução. Mas o compilador sozinho não adianta muito... Compilador. Aula 07
Sistemas Embarcados Ferramentas de desenvolvimento GNU toolchain Introdução Projetistas de software empregam várias ferramentas durante o ciclo de desenvolvimento de um software E.g.: editores, compiladores,
AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.
AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais. 6.1 Objetivo: O objetivo desta aula é mostrar aos alunos o que é e como funciona o Arduino e seus
Arquitetura de Computadores
Arquitetura de Computadores Aula 07 Prof. Dr. Saulo Amui 1/16 2/16 Sistemas Operacionais O que é um Sistema Operacional? Um programa que atua como um intermediário entre um usuário de um computador e o
Moisés Souto docente.ifrn.edu.br/moisessouto
Moisés Souto docente.ifrn.edu.br/moisessouto moises.souto@ifrn.edu.br Aula 02 Acesso ao sistema e comandos básicos Software O que torna o computador reutilizável para diferentes propósitos Sem software,
de Redes de Computadores Linux
Curso de Formação Continuada de Configuração de Redes de Computadores Linux Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello
Torne-se um Sysadmin Linux. Prof. Juliano Ramos
Torne-se um Sysadmin Linux Prof. Juliano Ramos O que é o Linux? Ao pé da letra: Kernel de várias distribuições GNU ou não-gnu Só o ubuntu tem mais de 25 milhões de usuários Linux em Servidores Mais do
Curso online de Fundamentos em Android. Plano de Estudo
Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos
Linux Básico. Prof. Odilson Tadeu Valle, M. Eng.
Linux Básico Prof. Odilson Tadeu Valle, M. Eng. odilson@sj.cefetsc.edu.br www.sj.cefetsc.edu.br/wiki Objetivos do Curso Desmistificar o Linux. Preparação para a gerência de servidores em linha de comando.
Introdução aos Sistemas Operacionais. Subsistema de Entrada e Saída
Introdução aos Sistemas Operacionais Subsistema de Entrada e Saída Eleri Cardozo FEEC/Unicamp Entrada e Saída O subsistema de entrada e saída é responsável pela interface entre o sistema operacional e
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Roteiro de Laboratório 12 Compilação Cruzada de um Kernel
Construindo um Minigame com Qt e Raspberry Pi. Luis Gustavo S. Barreto
Construindo um Minigame com Qt e Raspberry Pi Luis Gustavo S. Barreto Introdução O projeto consiste em um Gamepad (mini-game) desenvolvido inteiramente com Qt/Qml utilizando
Instalador e Operador de Sistemas de Telefonia e Comunicação de Dados
Redes Gerência e a Internet de Redes Instalador e Operador de Sistemas de Telefonia e Comunicação de Dados Conceitos Básicos 01 E-mail: euberchaia@yahoo.com.br Site: www.echaia.com Sistema de Arquivos
Estudo da placa de prototipagem Intel Galileo Gen2. Apostila de acompanhamento para o aluno.
Estudo da placa de prototipagem Intel Galileo Gen2 Apostila de acompanhamento para o aluno. 1 Conteúdo Conteúdo... 2 1. Introdução... 3 2. Informações Gerais... 3 3. Componentes da Placa... 4 4. Especificações
Toolkit para Linux Embarcado. Autor: Thiago Waltrik Orientador: Miguel Alexandre Wisintainer
Toolkit para Linux Embarcado Autor: Thiago Waltrik Orientador: Miguel Alexandre Wisintainer Roteiro Introdução Fundamentação Teórica Objetivos Trabalhos Correlatos Desenvolvimento Requisitos Especificação
Introdução à Sistemas Operacionais
Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática IC (2018/02) Introdução Sistema Operacional serve como um intermediário entre o hardware e os softwares aplicativos
Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A.
Brian Ward Novatec Copyright 2014 by Brian Ward. Title of English-language original: How Linux Works, 2nd Edition, ISBN 978-1-59327-567-9, published by No Starch Press. Portuguese-language edition copyright
Programação para Servidores. Cassio Diego
Programação para Servidores Cassio Diego contato@cassiodiego.com Unidade 1 1. INTRODUÇÃO 1.1. Definição de shell script 1.2. Programação script 1.3. Scripts versus linguagens compiladas 1.4. Caracteres
KERNEL LINUX. Por Jussara Reis
KERNEL LINUX Por Jussara Reis KERNEL O kernel do Linux foi idealizado pelo estudante de ciência da computação finlandês Linus Benedict Torvalds da Universidade de Helsinque na Finlândia, em 1991. Torvalds
1º Ano - Técnico em Informática Integrado. Sistemas Operacionais
1º Ano - Técnico em Informática Integrado Sistemas Operacionais Navegação entre diretórios Antes de começar a trabalhar diretamente com os comandos do Linux, é necessário navegarmos entre os diretórios
Apresentação de SISTEMAS OPERATIVOS
Apresentação de SISTEMAS OPERATIVOS Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos Módulo IV - Sistema Operativo Open Source Duração: 30 tempos Conteúdos (1) 2 História.
BeagleBone Black + Windows Embedded Compact
BeagleBone Black + Windows Embedded Compact Olá pessoal! Este é mais um tutorial da Lojamundi, e vamos ensinar como instalar o sistema operacional Windows Embedded no fantástico embarcado BeagleBone Black.
MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRÁTICO PARA PROGRAMAÇÃO
MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRÁTICO PARA PROGRAMAÇÃO Fabricação e suporte nacional O melhor preço do mercado Software de fácil configuração em idioma português Otimização de tempo no desenvolvimento
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o Plasma Sandro Andrade Agenda Novos requisitos para UX's Qt e QML Plasma Plasma Widgets Seu Plasma Widget em 20 minutos O Futuro Novos requisitos para UXs Cross-platform
Noções de sistemas de computação
Noções de sistemas de computação Software Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons
Introdução à Computação
Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
CEFET SC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO EM TELECOMUNICAÇÕES REDES DE COMPUTADORES/TELEFONIA DISCIPLINA DE SISTEMAS OPERACIONAIS
CEFET SC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO EM TELECOMUNICAÇÕES REDES DE COMPUTADORES/TELEFONIA DISCIPLINA DE SISTEMAS OPERACIONAIS Lista de Comandos: Manipulação de diretórios cd, pwd, ls, mkdir, rmdir
O Linux Possui varias características que diferenciam dos outros sistemas operacionais e que aproximam do UNIX, sendo um dos motivos da sua escolha
O Linux Possui varias características que diferenciam dos outros sistemas operacionais e que aproximam do UNIX, sendo um dos motivos da sua escolha em várias aplicações nas quais são necessárias estabilidade
Sistemas Operacionais. Prof. MSc André Y. Kusumoto
Prof. MSc André Y. Kusumoto andrekusumoto.unip@gmail.com Apresentação Prof. MSc André Yoshimi Kusumoto andrekusumoto.unip@gmail.com http://www.kusumoto.com.br Carga horária semanal: 4 horas-aula Carga
Programação Aplicada a Redes de Computadores Shell Script
Programação Aplicada a Res Computadores Shell Script Faculdas IESGO 2º Sem 2016 Definições Software Livre (Free Software) Conceito que prevê que todo software será distribuído com seu código-fonte, pondo
Tutorial de confguração de um cartão micro SD como área de swap e armazenamento para a DragonBoard 410c (DB410C)
Tutorial de confguração de um cartão micro SD como área de swap e armazenamento para a DragonBoard 410c (DB410C) [1] Motivação O processo de unboxing da DragonBoard 410c é bastante agradável e simples.
Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger
Sistemas Operacionais Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger Inicializando o Sistema BIOS verifica os componentes instalados (RAM, teclado etc.) e verifica se dispositivos estão
COMANDOS DESCRIÇÃO EXEMPLOS DE USO
COMANDOS DESCRIÇÃO EXEMPLOS DE USO whatis stat wc find gzip tar du locate grep wall mensagem Descreve o que um determinado comando é/faz Mostra o estado de um arquivo, útil para saber por exemplo a hora
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Roteiro de Laboratório 11 Compilação Cruzada de um Kernel
Manual on-line. Volnys Borges Bernal. Edson Toshimi Midorikawa
Volnys & Midorikawa (c) 1 Manual on-line Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Edson Toshimi Midorikawa emidorik@lsi.usp.br http://www.lsi.usp.br/~emidorik Laboratório de
Apêndice B Sistema Sem Fios Adotado 171 B.1 SISTEMA ADOTADO
Apêndice B Sistema Sem Fios Adotado 171 B.1 SISTEMA ADOTADO O sistema empregado nos ensaios de modelos físicos consiste de dispositivos discutidos em um dos trabalhos pesquisados. Estes dispositivos passaram
Internet das Coisas com Intel A2 Placas IoT.
Internet das Coisas com Intel A2 Placas IoT paul.guermonprez@intel.com Historia Arduino Raspberry Pi Avaliação de placas IoT Microcontrolador vs Processador Arduino usa um microcontrolador de 8-bit. É
Minicurso Básico de Linux
Minicurso Básico de Linux PET Computação 1 de março de 2018 GNU/Linux (a) Linux (b) GNU Linux: Kernel GNU/Linux: Sistema Operacional Distro (c) Arch (d) Debian (e) Fedora (f) Gentoo (g) Manjaro (h) opensuse
Tecnologias e Sistemas de Informação. Software Livre. SL: Gerenciamento e Configurações 2 Semestre de Prof. Marcelo Z.
Tecnologias e Sistemas de Informação Software Livre SL: Gerenciamento e Configurações 2 Semestre de 2010 Prof. Marcelo Z. do Nascimento Roteiro Gerenciamento de Grupos e Usuários Comandos para gerenciamento
Desenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Componentes do Kernel
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Vicente Amorim vicente.amorim.ufop@gmail.com
Introdução à Computação
Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
Introdução a Sistemas Abertos. Ambiente shell
Introdução a Sistemas Abertos Ambiente shell Conteúdo Programático Login e Logout Iniciando e Desligando o Sistema Tipos de arquivo Texto Binário Arquivos e Diretório Manipulação de arquivos e diretório
MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRATICO PARA PROGRAMAÇÃO
MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRATICO PARA PROGRAMAÇÃO Fabricação e suporte nacional O melhor preço do mercado Software de fácil configuração em idioma português Otimização de tempo no desenvolvimento
Programação para Dispositivos Móveis
Programação para Dispositivos Móveis Professor Ariel da Silva Dias Apresentação Android e IDEs Por que estudar programação para dispositivos móveis? Linha histórica da indústria durante os séculos Feudalismo
Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3
João Bosco T. Junior Apresentação da Disciplina Bibliografia Sistemas Operacionais Modernos (3ª Ed.) Ed Prentice Hall, A. S. Tanenbaum Sistemas Operacionais (3ª Ed.) Sagra Luzzatto, Rômulo, Alexandre e
Tutorial BuildRoot. Meu Primeiro Linux embarcado: Programação de Periféricos CC FACIN PUCRS
Tutorial BuildRoot Programação de Periféricos CC FACIN PUCRS Configuração do Ambiente de Trabalho: 1. Criar um diretório de trabalho: Ex: mkdir ~/buildroot 2. Ir para o diretório de trabalho: Ex: cd ~/buildroot
Programação para Servidores. Cassio Diego
Programação para Servidores Cassio Diego contato@cassiodiego.com 1 Unidade 1 1. INTRODUÇÃO 1.1. Definição de shell script 1.2. Programação script 1.3. Scripts versus linguagens compiladas 1.4. Caracteres
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Roteiro de Laboratório 11 Compilação Cruzada de um Kernel
Aula de Linux Modo Texto
Aula de Linux Modo Texto Prompt usuario@maquina:/caminho # $ - indica usuario que está logado com usuário comum # - indica que está logado com o usuário root (Administrador do Sistema) ~ - indica o diretório
Principais Comandos do Terminal no LINUX
Principais Comandos do Terminal no LINUX Estes comandos não visam ser um compêndio completo de operação, haja vista que se possui mais comandos que esses aqui que serão listados, logo os comandos são:
AULA 7. Bruno L. Albrecht Felipe A. Chies Lucas F. Zawacki. PET Computação UFRGS
M i n i - C u r s o d e I n t r o d u ç ã o a o G N U / L i n u x AULA 7 Bruno L. Albrecht Felipe A. Chies Lucas F. Zawacki PET Computação UFRGS Setembro 2009 S i s t e m a s d e A r q u i v o s e I n
Sistemas Operacionais II. Linux - Introdução
Sistemas Operacionais II Linux - Introdução 2 Histórico Em 1991, um estudante de computação da Finlândia chamado Linus Torvalds desenvolveu um kernel compatível com o Unix para um processador 80386 que
LINUX. Uma visão geral
LINUX Uma visão geral O QUE É? Sistema Operacional Código aberto Criado por Linus Torvalds em 1991 Estudante de computação, 20 anos Linguagem C Variação do Minix Criado por Andrew S. Tanenbaum em 1987
Obtendo Ajuda. Linux oferece diversas formas de ajuda aos seus usuários:
Obtendo Ajuda Linux oferece diversas formas de ajuda aos seus usuários: help mostra informações gerais sobre buit-ins do shell man - mais completa documentação do Linux apropos Mostra informações sobre
Introdução aos Sistemas Operacionais. Ricardo Ramos de Oliveira
Introdução aos Sistemas Operacionais Ricardo Ramos de Oliveira E-mail: ricardo.ramos@ifsuldeminas.edu.br Cadastro Wiki USP Endereço: http://garapa.intermidia.icmc.usp.br/mediawiki Objetivos Conceituar
Trabalho 2 - Sistemas Operacionais Embarcados
Sistemas Operacionais Embarcados Trabalho 2 - Sistemas Operacionais Embarcados Carlos Marcelo Pedroso Universidade Federal do Paraná, Departamento de Engenharia Elétrica E-mail: pedroso@eletrica.ufpr.br