Ångström: Linux em Palmtops, portáteis e embarcados sem mistério
.
Share |


             
FaceBook
Postado pôr: Alessandro de Oliveira Faria
http://tecnociencia.inf.br/tecnico/cabelo
Monday, 02 March 2009

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.

Introdução: O que é Ångström?

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:
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 (http://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.
  
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

Família Version Core Aplicação  
ARM1 ARMv1 ARM1 ARM Evaluation System second processor for BBC Micro  
ARM2 ARMv2 ARM2 Acorn Archimedes, Chessmachine  
ARMv2a ARM250 Acorn Archimedes  
ARM3 ARMv2a ARM2a Acorn Archimedes  
ARM6 ARMv3 ARM60 3DO Interactive Multiplayer, Zarlink GPS Receiver  
ARM600    
ARM610 Acorn Risc PC 600, Apple Newton 100 series  
ARM7 ARMv3 ARM700 Acorn Risc PC prototipo CPU card  
ARM710 Acorn Risc PC 700  
ARM710a Acorn Risc PC 700, Apple eMate 300  
ARM7100 Psion Series 5  
ARM7500 Acorn A7000  
ARM7500FE Acorn A7000+  
ARM7TDMI ARMv4T ARM7TDMI(-S) Game Boy Advance, Nintendo DS, iPod, Lego NXT, Atmel AT91SAM7  
ARM710T Psion Series 5mx, Psion Revo/Revo Plus/Diamond Mako  
ARM720T Zipit Wireless Messenger  
ARM740T    
ARMv5TEJ ARM7EJ-S    
StrongARM ARMv4 SA-110 Apple Newton 2x00 series, Acorn Risc PC, Rebel/Corel Netwinder, Chalice CATS, Psion Netbook  
SA-1110 LART, Intel Assabet, Ipaq H36x0, Balloon2, Zaurus SL-5x00  
ARM8 ARMv4 ARM810[4] Acorn Risc PC prototype CPU card  
ARM9TDMI ARMv4T ARM9TDMI    
ARM920T Armadillo, GP32,GP2X (first core), Tapwave Zodiac (Motorola i. MX1), Hewlet Packard HP-49/50 Calculators, Sun SPOT, Samsung s3c2442 (HTC TyTN, FIC Neo1973  
ARM922T    
ARM940T GP2X (second core), Meizu M6 Mini Player  
ARM9E ARMv5TE ARM946E-S Nintendo DS, Nokia N-Gage, Conexant 802.11 chips
ARM966E-S ST Micro STR91xF, includes Ethernet
ARM968E-S  
ARMv5TEJ ARM926EJ-S Mobile phones: Sony Ericsson (K, W series); Siemens and Benq (x65 series and newer); Texas Instruments OMAP1710, OMAP1610, OMAP1611, OMAP1612; Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800; Freescale i.MX21, i.MX27, Atmel AT91SAM9
ARMv5TE ARM996HS  
ARM10E ARMv5TE ARM1020E  
ARM1022E  
ARMv5TEJ ARM1026EJ-S  
XScale ARMv5TE 80200/IOP310/IOP315  
80219 Thecus N2100
IOP321 Iyonix
IOP33x  
IOP34x  
PXA210/PXA250 Zaurus SL-5600, iPAQ H3900
PXA255 Gumstix basix & connex, Palm Tungsten E2,Mentor Ranger & Stryder
PXA26x Palm Tungsten T3
PXA27x Gumstix verdex, HTC Universal, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim x30, x50, and x51 series, Motorola Q, Balloon3, Trolltech Greenphone, Palm TX, Motorola Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Siemens LOOX N560, Toshiba Portégé G500
PXA800(E)F  
Monahans  
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100  
IXP2400/IXP2800  
IXP2850  
IXP2325/IXP2350  
IXP42x NSLU2
IXP460/IXP465  
ARM11 ARMv6 ARM1136J(F)-S Texas Instruments OMAP2420 (Nokia E90, Nokia N93, Nokia N95, Nokia N82), Zune, Nokia N800, Nokia N810, Qualcomm MSM7200 (with integrated ARM926EJ-S Coprocessor@274MHz, used in HTC TyTN II (Kaiser), HTC Nike), Freescale i.MX31
ARMv6T2 ARM1156T2(F)-S  
ARMv6KZ ARM1176JZ(F)-S Apple iPhone, Conexant CX2427X, Motorola RIZR Z8, Motorola RIZR Z10
ARMv6K ARM11 MPCore Nvidia APX 2500
Cortex ARMv7-A Cortex-A8 Texas Instruments OMAP3, Pandora
Cortex-A9  
Cortex-A9 MPCore  
ARMv7-R Cortex-R4(F) Broadcom is a user, TMS570 from Texas Instruments
ARMv7-M Cortex-M3 Luminary Micro microcontroller family, ST Microelectronics STM32
ARMv6-M Cortex-M1 "Actel ProASIC3 and Actel Fusion PSC devices will sample in Q3 2007"



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 http://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 http://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 CLIQUE AQUI!
 
 

Comentários
HTC
argeli 2009-10-16 11:03:27

Será que funcionaria com um HTC 9100?
Qual a imagem para palm TX ?
Marcio de Souza 2009-04-29 12:14:49

Não sei qual é a imagem para palm tx, ele utiliza o processador Intel XScale PXA270 (PXA270C5C312) CPU PXA270Cxxx...

Por favor se vc souber me manda um
e-mail com a resposta, obrigado
Linux no celular nokia N73
Ademilson 2009-08-04 22:20:53

Gostei muito deste artigo, e gostaria de poder instalar Linux no meu nokia N73.
Ja uso o Ubuntu no meu micro.Se souber de algum sistema linux que de certo no
nokia, me avise.
Somente usuários registrados podem comentar!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Tecnociencia