Ångström: Linux em Palmtops, portáteis e embarcados

Neste documento veremos como instalar a distribuição Ångström Linux com a interface gráfica em palmtops. Agradecimentos em especial para o Ricardo Alexandre Lemos Valverde, por disponibilizar o equipamento para fins de pesquisa e desenvolvimento. Utilizaremos um cartão SD para não modificar a memória flash do equipamento.

abelo-ipaq

Publiquei na Linux Magazine 33, como instalar a distribuição Familiar Linux em um iPAQ 3950. Agora veremos como utilizar a distribuição Ångström. Uma distribuição Linux com alta portabilidade e configuração de kernel, voltada para uma variedade de dispositivos embarcados.

Seu principal foco é disponibilizar o kernel 2.6 para PDAs, palms, celulares, roteadores etc. Esta distribuição é o resultado da junção dos desenvolvedores dos projetos OpenEmbedded, OpenZaurus e OpenSimpad. Abaixo a lista de alguns dispositivos compatíveis com a distribuição Ångström:

Sharp Zaurus:

  • SL-5500 (Collie) (not supported in current stable release)
  • SL-5600 (Poodle)
  • SL-6000 (Tosa)
  • SL-C7x0 (Corgi, Husky, Shepherd)
  • SL-C860 (Boxer)
  • SL-C1000 (Akita)
  • SL-C3xxx (Spitz, Borzoi, Terrier)
  • Hewlett Packard iPAQ PDA:
  • h2200
  • h4000
  • hx4700
  • h5000
  • h3900 e outros
  • Nokia 770 Internet Tablet
  • HTC Universal / iMate JasJar
  • Motorola A780
  • Psion| Teklogix NetBook Pro
  • Gumstix and Kouchuk-Bars
  • Beagle Board
  • Pandora (console)

A seguir os endereços onde encontramos uma lista mais detalhada com informações dos equipamentos compatíveis com o Ångström:

palmtop01

A distribuição Ångström possui diversos tipos de imagens (console/gráfica baseada no gtk e qt). As imagens são obtidas no link do seu respectivo hardware (https://www.angstrom-distribution.org/releases/2007.12/images/). A seguir uma breve descrição de cada modelo de imagem.

Angstrom-base-image-glibc-ipk

Imagem mínima composta com o menor número programas, sem interface gráfica X, nesta imagem encontramos o servidor SSH (utilize o módulo usbnet – ethernet sobre usb). Esta imagem pode ser utilizada para transformar o seu dispositivo em um roteador ou servidor.

Angstrom-console-image-glibc-ipk

Esta imagem também não possui interface gráfica, porém podemos conectar via BlueTooth, Wifi e USB.

Angstrom-minimalist-gpe-image-glibc-ipk

Imagem com interface gráfica (X11), porém enxuta e sem os principais aplicativos gráficos, como por exemplo, aplicativo para alterar data e hora do sistema operacional entre outros programas.

Angstrom-x11-gpe-image-glibc-ipk

Imagem com interface gráfica (X11) baseado no GTK e diversos aplicativos gráficos normalmente presente em distribuições Linux. Este pacote oferece toda a suíte que um palm necessita (agenda, lista de tarefas etc).

Angstrom-opie-image-glibc-ipk

Esta é a minha imagem favorita, com interface gráfica (X11) baseado no QT Embedded e diversos aplicativos gráficos normalmente presente em distribuições Linux. Este pacote oferece também toda a suíte que um palm necessita (agenda, lista de tarefas etc).

Angstrom-x11-image-liveramdisk

Como o próprio nome informa, esta imagem permite executar a distribuição sem instalar um arquivo sequer no equipamento. Recomendo esta imagem para os usuários AINDA em dúvida referente a troca do sistema.

palmtop02

Abaixo as categorias dos arquivos disponíveis para download:

  • tar.gz, tar.bz2, or cpio.gz: Utilizados em cartões CF/SD;
  • Jffs2: Imagem utilizada para gravar na memória flash do equipamento;
  • Exe: Distribuição Live para teste e avaliação;
  • Zimage: Imagem do Kernel;
  • Startup.txt/reflash.ctl: Dados de inicialização (boot) do sistema.

Arquitetura do processador

Geralmente os equipamentos portáteis (palmtop e celulares) possuem processadores ARM. Existem diversos modelos nesta família de processadores, um processador ARM é um chip RISC de 32 bits. Além do alto desempenho, o seu baixo consumo de energia é um diferencial para sistemas embarcados.

A arquitetura RISC suporta menos instruções, e por consequência executa em menos tempo um conjunto de tarefas. Ao contrário, a arquitetura CISC trabalha com mais comandos derivando execução mais lenta.

Evolução da família:

  • ARM1 – 1985 – protótipo que não chegou ao mercado;
  • ARM2 – 1986 – Possuía um barramento de dados de 32 bits, porém só usava 26 bits, deixando os 6 bits restantes para as flags de estado. Foi considerado o micro-processador de 32 bits mais simples, com 30.000 transistores (comparando com o Motorola modelo 68000, seis anos mais velho e continha 70.000 transistores), não tinha cache;
  • ARM3 – 1989 – 4KB de cache, melhorou a performance. Ao longo dos anos 90 a ARM torna-se líder no mercado de processadores embarcados, pois oferece alto desempenho com baixo consumo de energia.
  • ARM6 – 1991 – Processador 32 bits, tinha somente 35000 transistores. A Apple usou em seus primeiros PDAs processadores ARM 610 (1994);
  • ARM7 – 1994 – usa metade da energia usada no ARM6, e tem de 50% a 100% mais performance;
  • ARM7TDMI – Pipeline de 3 estágios.. Processador de 32 bits que combina tamanho reduzido, Pouca energia e alta performance (usado em Game Boy Advance, iPod);
  • StrongARM – Série mais rápida que os ARM anteriores, tem limitações de softwares com suas versões anteriores, pois possui diferentes tamanhos para memória e instruções;
  • ARM8 – Pipeline de 5 estágios, banda de memória duplicada. Aumento na taxa de clock, redução na CPI;
  • ARM9TDMI – Pipeline de 5 estágios também, usado em calculadoras HP. Reduziu o espaço do programa executável em 35%;
  • ARM9E – Processador de 32 bits, incluindo instruções da ARM®, Thumb® e Dsp. Usado em vídeo-games da Nintendo e telefones como Sony Ericson;
  • ARM10E – Pipeline de 6 estágios, cache variando entre 32k e 16k, dependendo do modelo. Excelente combinação de performance e pouco consumo de energia;
  • XScale – Linha produzida pela Intel, baseada na arquitetura StrongARM, usam menos energia porque trabalham em velocidades inferiores do que os CPUs Desktop. Trabalham entre 133MHz e 400MHz, comparado a 2GHz aos CPUs usados em desktop. Pipeline de 7 estágios;
  • ARM11 – 532-665 MHz, usado em comunicadores como Nokia E90, Apple iPhone;
  • Cortex – Atualmente o processador mais poderoso da ARM, de 600Mhz até mais de 1 GHz. Inclui 13 estágios de pipeline, com estados de espera programáveis.

Fonte: ARM Advanced RISC Machine

Para efetuar o download dos pacotes para o seu equipamento é importante conhecer o modelo do processador utilizado. A seguir uma breve tabela comercial extraída de: ARM – Informações de mercado

Download, instalação e dicas para Jedis!

Em primeiro lugar, localize a imagem do seu hardware e efetue o download em:

Junto ao arquivo .rootfs.tar.bz2, é preciso obter a imagem do kernel (zImage-2.6.21-hh9-1).

Devemos também efetuar o download do utilitário bootloader Haret em www.handhelds.org/moin/moin.cgi/HaRET. Agora com estes arquivos em mãos, estamos prontos para iniciar a instalação no cartão SD.

Sugiro instalar a distribuição no cartão SD para não modificarmos a memória flash do equipamento. Sendo assim, a seguir os procedimentos para particionamento e instalação do sistema.

Ao inserir o cartão, como super- usuário, efetue o comando fdisk:

# fdisk /dev/mmcblk0p1

O comando “p” permite visualizar a partição atual do cartão:

Comando (m para ajuda): p

Disk /dev/mmcblk0: 2013 MB, 2013265920 bytes 16 heads, 15 sectors/track, 16384 cylinders Units = cilindros of 240 * 512 = 122880 bytes Disk identifier: 0x00000000 Dispositivo Boot Start End Blocks Id System /dev/mmcblk0p1 2 16384 1965952+ 6 FAT16

Agora utilize o comando “o” para criar uma nova partição DOS vazia:

Comando (m para ajuda): o

Building a new DOS disklabel with disk identifier 0x8475ef43. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won’t be recoverable.

Utilize o comando “n” seguido do comando “p” para adicionar uma nova partição. Informe o número “1” para definir como primária esta nova partição. Por último informe +31M para o tamanho do cilindro.

Comando (m para ajuda): n

Comando – ação e estendida p partição primária (1-4) p Número da partição (1-4): 1 Primeiro cilindro (1-31000, default 1): +31M Último cilindro ou +tamanho ou +tamanho M ou +tamanho K (946-31000, default 31000): Using default value 31000

Devemos modificar o tipo da partição para FAT16 com o comando “t”, selecionando a partição “1” e atribuindo o código 6.

Comando (m para ajuda): t

Selected partition 1 Código hexadecimal (digite L para listar os códigos): 6 O tipo da partição £oi 1 foi alterado para 6 (FAT16)

Novamente usaremos o comando “n” e “p” para criar uma nova partição, porém agora o número da partição será 2. Onde é solicitado o tamanho, basta pressionar {ENTER} para ocupar todo o espaço livre no cartão. Utilize o comando “p” no menu principal para visualizar as novas partições e “w” para salvar as alterações.

Comando (m para ajuda): n

Comando – ação e estendida p partição primária (1-4) p Número da partição (1-4): 2 Primeiro cilindro (1-31000, default 1): Using default value 1 Último cilindro ou +tamanho ou +tamanho M ou +tamanho K (1-945, default 945): Using default value 945 Comando (m para ajuda): p Disk /dev/mmcblk0: 1015 MB, 1015808000 bytes 4 heads, 16 sectors/track, 31000 cylinders Units = cilindros of 64 * 512 = 32768 bytes Disk identifier: 0x00000000 Dispositivo Boot Start End Blocks Id System /dev/mmcblk0p1 946 31000 961760 6 FAT16 /dev/mmcblk0p2 1 945 30232 83 Linux Comando (m para ajuda): w

Para formatar as partições, utilize os comandos mkdosfs e mke2fs, como no exemplo a seguir:

# mkdosfs /dev/mmcblk0p1

mkdosfs 2.11 (12 Mar 2005)

# mke2fs /dev/mmcblk0p2

mke2fs 1.40.2 (12-Jul-2007)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

7584 inodes, 30232 blocks

1511 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=31195136

4 block groups

8192 blocks per group, 8192 fragments per group

1896 inodes per group

Superblock backups stored on blocks:

8193, 24577

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

Monte as partições com o comando mount seguido do tipo do sistema de arquivos:

# mount -t vfat /dev/mmcblk0p1 /mnt/SD1/

# mount -t ext2 /dev/mmcblk0p2 /mnt/SD2/

Crie na raiz da partição 1 (/dev/mmcblk0p1) o arquivo default.txt com o conteúdo abaixo:

set MTYPE 592

set KERNEL “zImage-2.6.21-hh9-1”

set RAMADDR 0x30000000

set CMDLINE “root=/dev/mmcblk0p2 rootdelay=3 psplash=false”

bootlinux

Copie o bootloader (Haret.exe) e a imagem do kernel para a partição 1:

# cp haret.exe /mnt/SD1/

# cp zImage-2.6.21-hh9-1 /mnt/SD1/

Descompacte a imagem obtida para o seu palmtop na partição 2:

# tar -xvjpf [Nome-da-imagem].rootfs.tar.bz2 -C /mnt/SD2

# umount /mnt/SD1/

# umount /mnt/SD2/

Pronto, agora basta inserir o cartão no seu palmtop e executar no Windows CE o bootloader Haret.exe e aguardar a carga do sistema.

Dicas e ferramentas Jedi (compilador C/C++)

Utilizei os comando abaixo para carregar os módulo do kernel da interface wireless:

# modbrobe acx

# modbrobe rx3000_acx

O comando a seguir habilita o serviço ethernet sobre USB.

# /etc/init.d/usb-gadget startrc

Para utilizar o compilador C/C++ em seu palm top, basta instalar os seguinte pacotes:

# ipkg install cpp

# ipkg install gcc

# ipkg install binutils

# ipkg install libc6-dev

# ipkg install glibc-extra-nss

# ipkg install gcc-symlinks

Onde baixar os pacotes?

No endereço https://www.angstrom-distribution.org/repo/ é disponibilizado um repositório com todos os pacotes necessário para começar a brincadeira. Ressalto que o pacote deve ser baixado de acordo com a arquitetura do processador do seu equipamento.

Compilando a sua imagem On-LINE:

No link https://amethyst.openembedded.net/~koen/narcissus/ podemos escolher a arquitetura, personalizar a imagem e compilar On-Line. Para testar, selecionei a interface gráfica Enlightenment, biblioteca de visão computacional entres outros brinquedinhos nerds legais.

A seguir um vídeo demonstrativo, onde podemos apreciar um iPaq RX3115 rodando a distribuição Ångström Linux:

Por Alessandro de Oliveira Faria (cabelo)

Fonte: vivaolinux.com.br

Postado por
Siga em:
Compartilhe
Deixe seu comentário
Assine nossa Newsletter
Assine nossa newsletter e receba nossa seleção de conteúdo sobre tecnologia, games, IA e internet em seu email.
Veja também
Publicações Relacionadas
Img de rastreio
Localize algo no site!