Galileo Gen2

Transcrição

Galileo Gen2
Galileo Gen2
Walter Fetter Lages
[email protected]
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 de Controle e Automação
Copyright (c) Walter Fetter Lages – p.1
Galileo Gen2
Copyright (c) Walter Fetter Lages – p.2
Galileo Gen2
•
•
•
•
Intel Galileo Gen2 Development Board
Intel Quark SoC X1000
• Pentium de 32 bits @ 400MHz
Open Source Hardware
Compatível com Arduino Uno R3
• 20 I/O digitais (12 nativas)
• 6 entradas analógicas
• 6 PWMs com resolução de 12 bits
• 1 mestre SPI
• 2 UARTs (1 compartilhada com console)
• 1 mestre I2C
Copyright (c) Walter Fetter Lages – p.3
Conectores
•
•
•
•
•
•
•
•
FTDI UART
ICSP
JTAG
Ethernet com PoE
USB 2.0 host
USB 2.0 client
Mini-PCI Express 1x
Jack de alimentação
Copyright (c) Walter Fetter Lages – p.4
Alimentação & Reset
•
•
•
•
Jack 7 a 15 Vpositivo no pino
header for RTC power
Botão de reset para shields e Ethernet
Botão de reboot para o Quark
Copyright (c) Walter Fetter Lages – p.5
Armazenamento
•
•
•
•
•
8 MB Flash NOR
256 MB DDR3 @ 800 MT/s
SD Card até 32 GB
USB
8 kB EEPROM
Copyright (c) Walter Fetter Lages – p.6
Diagrama de Blocos
Copyright (c) Walter Fetter Lages – p.7
UART de Console do Galileo Gen2
•
•
•
•
•
Sinais RS-232, porém com níveis TTL 3.3 V
Emula um DTE
GND, #RTS, NC, RXI, TXO, #CTS
É diferente do Galileo
• Plug de 3,5 mm, TX, RX, GND
No Linux aparece como /dev/ttyS1
Copyright (c) Walter Fetter Lages – p.8
Cabo FTDI TTL-232R-3V3
•
•
•
•
•
•
•
Conversor USB para serial
Sinais RS-232, porém com níveis TTL 3.3 V
Existem versões de 5 Ve 3.3 V
Emula um DTE
GND, #CTS, 5V, TXD, RXD, #RTS
Conectado no Galileo Gen2 cria um null-modem
No host aparece como /dev/ttyUSB?
Copyright (c) Walter Fetter Lages – p.9
Conversor USB-Serial
•
•
•
•
•
•
Sinais RS-232, porém com níveis TTL 3.3 V
Existem versões de 5 Ve 3.3 Ve selecionáveis
Emula um DTE
GND, #CTS, 5V, TXD, RXD, #DTR
Conectado no Galileo Gen2 cria um null-modem,
embora com sinalização #DTR/#CTS
No host aparece como /dev/ttyUSB?
Copyright (c) Walter Fetter Lages – p.10
Notas
•
Durante o boot a Galileo Gen2 desativa o #RTS
• Para usar o menu do GRUB, é necessário
desativar o controle de fluxo por hardware no
emulador de terminal
Copyright (c) Walter Fetter Lages – p.11
Boot da Galileo Gen2
•
•
•
•
•
A Galileo Gen2 possui um kernel Linux e um
initrd na Flash
O sistema de arquivos é RAMFS
Não é persistente entre boots
Para alterações nas configurações ou no kernel
serem persistentes é necessário criar um novo
initrd e gravá-los na flash
Felizmente a Galileo Gen2 também podem dar
boot a partir do cartão SD ou de pendrive
• A imagem disponível no site da Intel não
funciona bem com pendrive
Copyright (c) Walter Fetter Lages – p.12
Criação do Cartão SD
•
Download de
http://downloadmirror.intel.com/24355/eng/SDCard.1.0.4.tar.bz2
•
•
•
Formatar o cartão SD com FAT32
Descompactar com
tar-xjfSDCard.1.0.4.tar.bz2
Colocar os arquivos na raiz do cartão SD:
/boot/grub/grub.conf
bzImage
core-image-minimal-initramfs-clanton.cpio.gz
grub.efi
image-full-galileo-clanton.ext3
•
•
Inserir o cartão na Galileo Gen2
Dar boot
Copyright (c) Walter Fetter Lages – p.13
Cartão SD
•
Este não é a melhor forma de organizar os
arquivos para boot em um Linux, mas é uma
forma que pode ser criada no Windows pois
utiliza apenas FAT32.
Copyright (c) Walter Fetter Lages – p.14
Processo de boot
•
•
•
•
•
A Galileo Gen2 utiliza o sistema EFI para boot
grub.efi é o gerenciador de boot carregado
pelo EFI
• Necessariamente tem que estar em uma
partição com FAT32
/boot/grub/grub.conf é o arquivo de
configuração do GRUB
• Configura as opções do menu de boot
bzImage é o kernel
core-image-minimal-initramfs-clanton.cpio.gz é o
initrd
• Após inicializar o kernel executa o init
Copyright (c) Walter Fetter Lages – p.15
Processo de boot
•
image-full-galileo-clanton.ext3
Imagem do sistema de arquivos final
• O init chaveia o diretório raiz para o /
deste sistema de arquivos
Copyright (c) Walter Fetter Lages – p.16
Configuração do GRUB
•
É possível ter vários kernels instalados e
selecioná-los no boot
default 1
timeout 1
color white/blue white/cyan
title Clanton SVP kernel-SPI initrd-SPI IMR-On IO-APIC/HPET NoEMU
kernel --spi root=/dev/ram0 console=ttyS1,115200n8 \
earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 \
reboot=efi,warm apic=debug rw
initrd --spi
title Clanton SVP kernel-MassStorage initrd-MassStorage image-full IMR-O
root (hd0,0)
kernel /bzImage root=/dev/ram0 console=ttyS1,115200n8 \
earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 \
reboot=efi,warm apic=debug rw LABEL=boot debugshell=5 \
rootimage=image-full-galileo-clanton.ext3
initrd /core-image-minimal-initramfs-clanton.cpio.gz
Copyright (c) Walter Fetter Lages – p.17
Acesso ao FS do Galileo em um PC
•
•
•
É possível montar o sistema de arquivos do
Galileo em um PC com Linux
É possivel também executar um chroot para
este sistema de arquivos e executar programas
que estão lá
Útil para desenvolvimentos em casa, sem acesso
ao Galileo
modprobe loop
mount -o loop -t ext3 image-full-galileo-clanton.ext3 /mnt
Copyright (c) Walter Fetter Lages – p.18