slide1 n.
Download
Skip this Video
Download Presentation
Laboratório 2

Loading in 2 Seconds...

play fullscreen
1 / 15

Laboratório 2 - PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on

Laboratório 2. Sistemas embarcados Período 2010.2. Roteiro. Inicialização Sistema de arquivos raiz. Inicialização. Os programas responsáveis pela inicialização do núcleo são os bootloaders. Dentre eles pode-se destacar:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Laboratório 2' - ismael


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Laboratório 2

Sistemas embarcados

Período 2010.2

roteiro
Roteiro
  • Inicialização
  • Sistema de arquivos raiz
inicializa o
Inicialização
  • Os programas responsáveis pela inicialização do núcleo são os bootloaders.
  • Dentre eles pode-se destacar:
    • GRUB(x86), LILO(x86), RedBoot(x86, ARM, PowerPC, MIPS e m68k) e U-Boot(x86, ARM e PowerPC).
  • U-Boot
    • É o melhor bootloader para ARM(suporte a um maior número de plataformas baseadas no ARM).
    • Projeto U-boot: http://sourceforge.net/projects/uboot
compilando o u boot
Compilando o U-Boot
  • Instalar dependências build-essential, autoconf, autotools
  • Tem que ser compilado usando o toolchain da Texas para OMAP
    • Baixar no site de recursos
    • E descompactar como root
      • tar xjvf gcc-3.3.2.tar.bz2 -C /
  • Baixar o fonte
    • wget -b http://linux.omap.com/pub/bootloader/h2/source/u-boot.tar.gz
    • tar zxvf u-boot.tar.gz
    • cd u-boot
  • Configura o U-Boot para omap:
    • make omap1610inn_config
  • Alterar o Makefile
    • Apagar a linha 124 do Makefile
    • Os exemplos não compilam
  • Inicia compilação:
    • export PATH=$PATH:/usr/local/arm/3.3.2/bin
    • make
  • Arquivos gerados:
    • u-boot, uboot.bin
    • mkimage (programa usado para gerar uma imagem do núcleo entendível pelo o u-boot)‏
sistema de arquivos raiz
Sistema de arquivos raiz
  • Estrutura de como os arquivos são organizados
  • Os principais comandos GNU são providos pelo busybox
  • O busybox é um arquivo executável
  • Os comandos são links simbólicos para o busybox
  • O busybox os identifica pelo link chamado
  • Provê desde o processo init, até servidores mais sofisticados (http)‏
vantagens
Vantagens
  • Construir seu próprio sistema de arquivos raiz traz algumas vantagens:
    • Melhor entendimento
    • Maior controle
    • Configurações mais simples
sistema de arquivos raiz1
Sistema de arquivos raiz
  • Os dispositivos (/dev) podem ser criados a partir do mdev (mini udev) provido pelo busybox
  • Só são necessários dois devices
    • /dev/null
    • /dev/console
  • Em versões mais antigas do núcleo (2.6.12) os dispositivos eram montados como um sistema de arquivos
    • devfs
  • Em distribuições mais completas, pode-se usar um initrd para carregar módulos que variam de acordo com as configurações das máquinas
    • Maior compatibilidade
    • Maior tamanho de distribuição
criando um sistema de arquivos raiz
Criando um sistema de arquivos raiz
  • Baixar da página o script que instala as dependências pra compilar o busybox
  • sh dependencias_busybox.sh
  • Baixando o Busybox:
    • wget http://busybox.net/downloads/busybox-1.2.1.tar.gz
    • tar zxvf busybox-1.2.1.tar.gz
    • cd busybox-1.2.1
  • Configura o Busybox:
    • Habilita todas as opções do Busybox
      • make defconfig
slide9
Altera algumas opções:
      • make menuconfig
      • (Caso apareça o erro /usr/bin/ld: cannot find -lncurses checar as dependências ncurses-base, ncurses-bin, ncurses-hexedit, ncurses-term, libncurses5, libncurses5-dbg, libncurses5-dev, libncursesw5, libncursesw5-dbg, libncursesw5-dev)‏
slide10

Busybox settings

    • Build options
      • Marcar: Build BusyBox as a static binary (no shared libs)‏
      • Desmarcar: Build with Large File Support (for accessing files > 2 GB)‏
  • Shells
    • Choose your default shell: ash
  • cd ..
  • mv busybox-1.2.1 /scratchbox/users/userLogin/home/userLogin/
  • /scratchbox/login
  • cd busybox-1.2.1
  • Compila
      • make install
povoando o sistema de arquivos raiz
Povoando o sistema de arquivos raiz
  • Pasta raiz
    • sudo mkdir -p /embedded/targets/tux
  • Copiando a estrutura dos arquivos do Busybox para dentro da imagem montada:
    • (Fora do scratchbox)‏
    • sudo rsync -a /scratchbox/users/<userLogin>/home/<userLogin>/busybox-1.2.1/_install/ /embedded/targets/tux/
criando os principais devices
Criando os principais devices
  • Criar a pasta de dispositivos:
    • sudo mkdir /embedded/targets/tux/dev
    • cd /embedded/targets/tux/dev
  • Criando o device “console”:
    • sudo mknod console c 5 1
  • Criando o device “null”:
    • sudo mknod null c 1 3
etc inittab do rootfs
/etc/inittab do rootfs
  • Criar arquivo /etc/inittab:
    • sudo mkdir -p /embedded/targets/tux/etc
    • sudo vi /embedded/targets/tux/etc/inittab
    • Arquivo inittab:

# This is run first script

::sysinit:/etc/init.d/rcS

# Start an "askfirst" shell on the console

::askfirst:-/bin/sh

# Stuff to do when restarting the init process

::restart:/sbin/init

# Stuff to do before rebooting

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

script etc init d rcs
Script /etc/init.d/rcS
  • Criar o script /etc/init.d/rcS:
    • sudo mkdir -p /embedded/targets/tux/etc/init.d
    • sudo vi /embedded/targets/tux/etc/init.d/rcS
    • sudo chmod 777 /embedded/targets/tux/etc/init.d/rcS

#!/bin/sh

/bin/busybox mkdir -p /proc

/bin/busybox mkdir -p /sys

/bin/busybox mount -t proc none /proc

/bin/busybox mount -t sysfs none /sys

/bin/busybox mkdir -p /dev/pts

/bin/busybox mount -t devpts devpts /dev/pts

# /bin/busybox echo /sbin/mdev > /proc/sys/kernel/hotplug

/bin/busybox mdev -s

/bin/busybox ifconfig lo 127.0.0.1 up

exec /etc/profile

rcS

slide15

Criar o script /etc/profile:

    • sudo vi /embedded/targets/tux/etc/profile
      • sudo chmod 777 /embedded/targets/tux/etc/profile

#!/bin/sh

TSLIB_TSDEVICE=/dev/event1

TSLIB_CONFFILE=/etc/ts.conf

PATH=$PATH:/usr/X11R6/bin:/sbin

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib

DISPLAY=:0

export TSLIB_TSDEVICE TSLIB_CONFFILE PATH LD_LIBRARY_PATH DISPLAY

profile