Debian no Storcenter ix2-200


Primeiramente gostaria de salientar que não sou o autor principal do conteúdo deste artigo. A minha intenção é de mostrar o que outros autores tem realizado (referenciando links para o conteúdo original) neste blog até como um guia pessoal para uso próprio e ainda compartilhar minhas anotações e pequenas modificações que realizo no conteúdo, desejando que possa ajudar mais alguém em algum lugar.
First and foremost, I take no credit for any of this post’s content. I am really just taking what others have done (which I have links to bellow) and am putting it on my blog for a personal reference and hopefully the small changes that I made to their guides will help someone somewhere.

link: http://iomega.nas-central.org/wiki/Category:Ix2-200
link: http://blog.nobiscuit.com/2011/08/06/installing-debian-to-disk-on-an-ix2-200/
link: https://github.com/daniviga/ix2-200

cable from old cellphones ttl to rs232:
link: http://www.service4handys.de/shop-misc/Software/Datenkabel-Treiber/alle/USB_Driver.rar

Arquivos de Instalação

Copie os arquivos uInitrd uImage para um pen drive formatado como ext2.


Cabo USB - TTL

Prepare um cabo para acesso ao terminal serial do Iomega Ix2-200. 

Estou utilizando um cabo de um antigo Siemens MC60 que no ubuntu se mostrou como porta /dev/ttyUSB0
A identificação deste cabo no ubuntu é :
lsusb
Bus 003 Device 005: ID 10ab:10c5 USI Co., Ltd Sony-Ericsson / Samsung DataCable

O conector deste cabo é:
pino 2 = GND (vermelho)
pino 3 = TX (azul)
pino 4 = RX (laranja)

tem ainda outros fios:
pino 1 = power charging (amarelo)
pino 7 = Clockline For Accessory - DCD (verde)

Se quiser checar pode-se utilizar do seguinte método:
GND = para identificar o GND faça uma medida de voltagem entre um terra e o GND e confirme se esta ZERO
TX = a voltagem entre TX e GND é 3.3V e esta voltagem vai mudar se você enviar dados pelo cabo como por exemplo digitando em um terminal ou então com um altofalante ligado do TX voce irá ouvir sons ao digitar no terminal
RX = a voltagem entre RX e GND é de 2.5V. Se você conectar TX e RX voce terá uma situação de eco onde tudo que voce digitar no terminal será devolvido no sua própria tela.

Já no Iomega Ix2-200 o cabo é conectado no conector JP1:


O pinout deste conector é:
pino 1 = VCC (3.3V)
pino 2 = TxD
pino 3 = GND
pino 4 = RxD

Sendo que o pino 1 é marcado como JP1 e é o pino mais distante da bateria.

O meu cabo ficaria conectado assim:
pino 1 = vazio
pino 2 = TxD  =>   azul
pino 3 = GND =>   vermelho
pino 4 = RxD  =>   laranja


Conexão com Terminal

Conecte o cabo e ligue o aparelho em alguns segundos você poderá conectar na porta /dev/ttyUSB0 com 115200 baud (se tiver dificuldades em como conectar siga estes tutoriais (Linux, Windows ou Mac).

O comando abaixo pode ajudar a identificar qual é a sua porta:
dmesg | grep tty

Para ter acesso a esta porta serial inclua seu usuário no grupo dialout ou use sudo (precisa reiniciar):
sudo gpasswd --add joeuser dialout

A configuração da conexão é:
Settings: 115200 baud, parity none, flow control xon/xoff, 8 data bits, 1 stop bit.

Um exemplo de terminal no ubuntu:

Para instalar o picocom no ubuntu:
sudo apt-get install picocom
sudo picocom -s 115200 -d 8 -p n /dev/ttyUSB0
picocom -b 115200 /dev/ttyUSB0

sudo apt-get install cu
cu -l /dev/ttyUSB0 -s 115200


Para instalar o putty no ubuntu:
sudo apt-get install putty
  • Run putty
  • Choose 'serial' then configure serial line to e.g. '/dev/ttyUSB1' and speed to 115200
  • Click on 'serial' on the left side and choose to 'None' in flow control
  • Go back to 'Session' on the left side and choose a name for the session name ('ttyUSB1' for example), click 'save'
  • Open the session by choosing 'ttyUSB1' and click on 'Open'
  • Congratulations. You should get the U-Boot message.
  • NOTE: The first time configuration U-Boot will auto-boot, so if you are not fast enough reset the board (while keeping) it powered on, by inserting a needle in the small hole in the plug (don't close putty. just reset the plug).
Ou utilize o screen:
screen /dev/ttyUSB0 115200
Para fechar uma conexão de um terminal voce pode digitar os comandos:
 w
 14:45:23 up 53 min,  3 users,  load average: 0,41, 0,41, 0,59
USUÁRIO TTY      DE               LOGIN@   IDLE   JCPU   PCPU WHAT
aarvati  :0       :0               14:25   ?xdm?   5:49   0.22s init --user
aarvati  pts/0    :0               14:38   27.00s  0.12s  2.69s gnome-terminal
aarvati  pts/8    :0               14:45    3.00s  0.10s  0.00s w

ps -u root |grep -i pts/0
26748 pts/0    00:00:00 sudo
26749 pts/0    00:00:00 picocom

 sudo kill 26749


         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_ 
| | | |___|  _ \ / _ \ / _ \| __| 
| |_| |___| |_) | (_) | (_) | |_ 
 \___/    |____/ \___/ \___/ \__| 
 ** MARVELL BOARD: RD-88F6281A LE  

U-Boot 1.1.4 (Sep  8 2009 - 09:31:54) Marvell version: 3.4.14

Mapower version: 2.0 (32MB) (2009/09/08)

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CEE60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1000Mhz L2 running @ 333Mhz
SysClock = 333Mhz , TClock = 200Mhz 

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB 
DRAM Total size 256MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:32 MB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled 
Write allocate disabled

Module 0 is RGMII
Module 1 is TDM

USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0, egiga1 [PRIME]
Fan lookup table initialized.

Current remote temperature: 25
Current fan speed: 0

Hit any key to stop autoboot:  0 
Marvell>>

Configuração inicial do uBoot

Digite os comandos:
setenv ethaddr AA:00:00:00:00:01         <========== opcional caso não funcione

setenv mainlineLinux yes
setenv arcNumber 1682 
saveenv
reset

OBS: set arcNumber 1682  é a Reference Board da Marvell RD88F6281 ao qual o Ix2-200 se denomina

Instalação do Debian

Coloque o PENDRIVE com os arquivos e digite os comandos abaixo para um pendrive formatado com ext2:

usb start
ext2load usb 0:1 0x01100000 /uInitrd
ext2load usb 0:1 0x00800000 /uImage

Ou os comandos abaixo para partição FAt32 (se funcionasse):

usb start
fatload usb 0:1 0x01100000 /uInitrd
fatload usb 0:1 0x00800000 /uImage

Se preferir utilizar um servidor tftp utilize o comando:

setenv serverip 192.168.1.2
setenv ipaddr 192.168.1.147
tftpboot 0x01100000 uInitrd
tftpboot 0x00800000 uImage

Inicie o instalador:

setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x00800000 0x01100000

É Recomendado deixe ao mínimo uma partição /boot formatada com ext2 e no mínimo 150Mb. 
Eu resolvi deixar o raid que já existia de dados do iomega e apaguei e recriei o raid1 com logical partition com 30gb para seu minha partição root com ext4.
root=/dev/mapper/root-root

Selecione eth1 ao invés de eth0 caso não detect a rede.
Siga as instruções de instalação de : http://www.debian.org/releases/stable/armel/

Caso apareça uma mensagem que não consegue deixar o sistema bootável utilize os comandos abaixo por um "execute Shell" no instalador debian:


chroot /target
apt-get install mtd-utils uboot-mkimage uboot-envtools
cd /boot 
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d initrd.img-3.2.0-4-kirkwood uInitrd 
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-3.2.0-4 -d vmlinuz-3.2.0-4-kirkwood uImage

Ajuste o nome do kernel acima para os arquivos instalados pelo debian (initrd.img-3.2.0-4-kirkwood e vmlinuz-3.2.0-4-kirkwood) !!!

Copie os novos arquivos para o PENDRIVE:
mount /dev/sda1 /mnt
cp uImage /mnt/uImage-new 
cp uInitrd /mnt/uInitrd-new

Ajuste sda1 para a partição de seu pendrive.

Teste de Inicialização com o PenDrive

Se quiser testar o boot com um pendrive:
usb start
setenv bootargs_console 'console=ttyS0,115200 mtdparts=orion_nand:0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd) root=/dev/mapper/root-root'
setenv bootargs $(bootargs_console)
ext2load usb 0:1 0x00800000 /uImage-new
ext2load usb 0:1 0x01100000 /uInitrd-new
bootm 0x00800000 0x01100000

Altere o root=/dev/mapper/root-root acima para o root adequado para sua instalação !!!

Teste de Inicialização com o tFtp Server

Se quiser testar o boot com um tftp server:
setenv bootargs_console 'console=ttyS0,115200 mtdparts=orion_nand:0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd) root=/dev/mapper/root-root'
setenv bootargs $(bootargs_console)
setenv serverip 192.168.1.31
setenv ipaddr 192.168.1.13
tftpboot 0x01100000 uInitrd-original
tftpboot 0x00800000 uImage-original
bootm 0x00800000 0x01100000

Altere o root=/dev/mapper/root-root acima para o root adequado para sua instalação !!!

Inicializando pelo Disco SATA

Esta configuração é para quem optou por criar uma partição /boot do tipo ext2 somente para ser compativel com esta configuração abaixo.
Para configurar o uBoot para utilizar o novo sistema com os arquivos gravados no disco interrompa o boot do sistema e utilize os comandos:
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_sata 'ide reset; ext2load ide 0:1 0x01100000 /uInitrd; ext2load ide 0:1 0x00800000 /uImage'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_sata; bootm 0x00800000 0x01100000'
saveenv

Inicializando pela Memória Flash

Ou grave os arquivos na memória flash interna (cuidado para não salvar em cima do uBoot) 

Primeiro verifique se deu certo inicializar pelo Pendrive:
cat /proc/mtd
dev: size erasesize name
mtd0: 00300000 00004000 "uImage"
mtd1: 01000000 00004000 "uInitrd"

Obs: estes foram os argumentos passados no boot pelo mtdparts=orion_nand:0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd) 

Atenção os itens abaixo podem deixar seu equipamento sem uBoot e totalmente inicessível. Somente utilize o flash eraseall na CORRETA partição listada pelo comando cat /proc/mtd que tenha o arquivo de imagem que deseja sobreescrever.

Apague e salve os arquivos na memória flash:
# flash_eraseall /dev/mtd0
Erasing 16 Kibyte @ 300000 -- 100 % complete.
# flash_eraseall /dev/mtd1
Erasing 16 Kibyte @ 1000000 -- 100 % complete.
# nandwrite -p /dev/mtd0 /boot/uImage
...
# nandwrite -p /dev/mtd1 /boot/uInitrd

Reboot para voltar a tela de prompt do uBoot e dessa vez configure:

setenv mtdids 'nand0=orion_nand'
setenv mtdparts 'mtdparts=orion_nand:0x100000@0x000000(uboot)ro,0x20000@0xA0000(uboot_env),0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd)'
setenv bootargs_console 'console=ttyS0,115200 mtdparts=orion_nand:0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd) root=/dev/mapper/root-root'
setenv bootcmd 'setenv bootargs $(bootargs_console); nand read 0x800000 uImage; nand read 0x1100000 uInitrd; bootm 0x00800000 0x01100000'
saveenv
reset

Ajuste o valor de root corretamente !!! se preferir ajustar com o UUID faça assim =>        root=UUID=

O comando para continuar com o boot é:

run bootcmd



Atualizar kernel:

cd /boot 
update-initramfs -v -c -k $(uname -r) 
update-initramfs -v -u -k $(uname -r) 

cp uInitrd-$(uname -r) uInitrd-$(uname -r).old
cp uImage-$(uname -r) uImage-$(uname -r).old
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d initrd.img-$(uname -r) uInitrd-$(uname -r) 
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n $(uname -r) -d vmlinuz-$(uname -r) uImage-$(uname -r) 
flash_eraseall /dev/mtd0
flash_eraseall /dev/mtd1
nandwrite -p /dev/mtd0 /boot/uImage-$(uname -r) 
nandwrite -p /dev/mtd1 /boot/uInitrd-$(uname -r) 

antes verifique se a memória flash continua com os mesmos mtd0 e mtd1 com o comando:
cat /proc/mtd




NO Iomega original temos:

cat /proc/mtd
dev:    size   erasesize  name
mtd0: 000c0000 00004000 "uboot"
mtd1: 00020000 00004000 "env"
mtd2: 00300000 00004000 "zImage"
mtd3: 00300000 00004000 "initrd"

cat /proc/cmdline
console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0x0(uboot),0x20000@0xa0000(env),0x300000@0x100000(zImage),0x300000@0x540000(initrd),128m@0x0(flash)

dmesg | grep NAND
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
NAND device: Manufacturer ID: 0xad, Chip ID: 0x75 (Hynix NAND 32MiB 3,3V 8-bit)


blkid  (com um disco /dev/sdb fazendo backup do /dev/mapper/56caed24_vg-lv45fbc66
/dev/loop0: TYPE="ext2"
/dev/loop1: UUID="94ce3355-13ea-49bd-8b01-2cf29b8c2b65" TYPE="ext2"
/dev/loop2: LABEL="Compressed" TYPE="cramfs"
/dev/sda1: UUID="7444ed09-f91f-f8d1-34ac-0b5acb39f7d4" TYPE="mdraid"
/dev/sda2: UUID="d6oQeT-8D1C-Ou4m-74By-qsiI-KLHQ-7r4F1A" TYPE="lvm2pv"
/dev/sdb1: UUID="cf59206b-31b3-4700-90a8-55317258d36f" TYPE="xfs"
/dev/md0: UUID="INN3Ph-2FIK-Pb8T-XBoM-uSlR-wFqb-GoGFbv" TYPE="lvm2pv"
/dev/mapper/md0_vg-BFDlv: UUID="584e64e7-4c54-4938-bcdc-83c6a86b85fc" TYPE="ext2"
/dev/mapper/md0_vg-vol1: UUID="23ebf92e-a086-4ca7-8f0d-ede758136d43" TYPE="xfs"
/dev/md1: UUID="d6oQeT-8D1C-Ou4m-74By-qsiI-KLHQ-7r4F1A" TYPE="lvm2pv"
/dev/mapper/56caed24_vg-lv45fbc66a: UUID="eeb28fd0-e1b1-46e8-a83a-439631633c4d" TYPE="xfs"


cat /proc/version
Linux version 2.6.31.8 (soho@bsoho127.lss.emc.com) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #1 Mon Feb 13 16:57:10 EST 2012



O URL específico do gadget não foi encontrado



Comments