Lenovo Iomega EZ Media & Backup Center

Here I shoot some pictures of my Board. I think it is the same as you said,


I added on other site too: http://iomega.nas-central.org/wiki/Category:EZ_Media

On 3rd image there is a populated 4-pin connector labeled "CN4" that is seria-ttl, it is at bottom left.

The pins are from left to right tx gnd rx, the 4th one is not needed.

I had some time now to test Debian, it is difficult to install it ?

[quote]On 2nd and 3rd image there is an un populated 4-pin connector labeled "CN7" near the SATA connector, I think that is seria-ttl.[/quote]No, it isn't. That is power for the disk. Do not connect your TTL device to it. You'll fry it. (Edit: CN7 is probably not sata power. I was mistaken with CN5. Don't know what CN7 is)

The serial port is CN4.

[quote]I had some time now to test Debian, it is difficult to install it ?[/quote]Depends on your skills. Basically you have put a kernel and a root filesystem on the disk, and change the u-boot parameters to load&use it. More info on the doozan forum.

http://forum.doozan.com/read.php?2,12096

It seems the EZ is still in beta. Don't know what that means.

Ok, I used the initrd and zimage from files.tgz that comes inside ./emctools/hm3_images/ that I downloaded from http://downloads.iomega.nas-central.org/Users/Mijzelf/EZMedia/EZMedia-recovery-4.0.2.9960.zip as I see on the URL the file was uploaded by you @Mijzelf...
And later on top of that I put the @bobafetthotmail downloaded from https://www.dropbox.com/s/fb92zvq12akll5r/lede-kirkwood-ix1-spi-initramfs-uImage?dl=0 in order to try if it boots, (below is the boot log using serial-ttl)

dd if=zImage of=/dev/sdb bs=512 seek=2048
dd if=initrd of=/dev/sdb bs=512 seek=8192
dd if=lede-kirkwood-ix1-spi-initramfs-uImage of=/dev/sdb bs=512 seek=8192 
Serial TTL boot log(click here) __ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** ix1-spi ** ** uboot_ver:0.0.8 **
 ** MARVELL BOARD: DB-88F6282A-BP LE

U-Boot 1.1.4 (Oct 28 2011 - 15:17:21) Marvell version: 3.6.1 - EMC

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

Soc: 88F6282 A1 CPU running @ 1200Mhz L2 running @ 600Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM (DDR3) CAS Latency = 6 tRP = 6 tRAS = 15 tRCD=6
DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB  16bit width
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
[1024kB@f8000000] Flash:  1 MB

Marvell Serial ATA Adapter
Integrated Sata device found
[0 0 0]: Enable DMA mode (6)
  Device 0 @ 0 0:
Model: WDC WD60PURX-64T0ZY1                     Firm: 80.00A80 Ser#:      WD-WX11D3778ZFD
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1528862.5 MB = 1493.0 GB (-1163856720 x 512)


CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
PEX 1: interface detected no Link.
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Reset IDE:
Marvell Serial ATA Adapter
Integrated Sata device found
[0 0 0]: Enable DMA mode (6)
  Device 0 @ 0 0:
Model: WDC WD60PURX-64T0ZY1                     Firm: 80.00A80 Ser#:      WD-WX11D3778ZFD
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1528862.5 MB = 1493.0 GB (-1163856720 x 512)


IDE read: device 0 block # 2048, count 6144 ... 6144 blocks read: OK

IDE read: device 0 block # 8192, count 8192 ... 8192 blocks read: OK
## Booting image at 00040000 ...
   Image Name:   Linux-2.6.31.8
   Created:      2013-03-12  22:02:31 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2831076 Bytes =  2.7 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00900000 ...
Bad Magic Number

Am I doing right? Please let me know how I must continue these tests, I really want to have working LEDE on this...
meanwhile I will read on doozan's forum how to put Debian on this.

There is a way to boot to usb? it will be great that...

lede-kirkwood-ix1-spi-initramfs-uImage should be written on 2048, and initrd on 8192. I think the LEDE kernel will simply ignore the initrd, because it already has an initramfs, but the bootloader clearly doesn't, as it refuses to boot with an invalid ramdisk:[quote]## Loading Ramdisk Image at 00900000 ... Bad Magic Number (silence) [/quote]

Great, ok, I do:

dd if=lede-kirkwood-ix1-spi-initramfs-uImage of=/dev/sdb bs=512 seek=2048
dd if=initrd of=/dev/sdb bs=512 seek=8192

I'm using the initrd from files.tgz inside http://downloads.iomega.nas-central.org/Users/Mijzelf/EZMedia/EZMedia-recovery-4.0.2.9960.zip

Here is the output:

Serial TTL boot log(click here)
         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** ix1-spi ** ** uboot_ver:0.0.8 **

 ** MARVELL BOARD: DB-88F6282A-BP LE

U-Boot 1.1.4 (Oct 28 2011 - 15:17:21) Marvell version: 3.6.1 - EMC

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

Soc: 88F6282 A1 CPU running @ 1200Mhz L2 running @ 600Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM (DDR3) CAS Latency = 6 tRP = 6 tRAS = 15 tRCD=6
DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB  16bit width
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
[1024kB@f8000000] Flash:  1 MB

Marvell Serial ATA Adapter
Integrated Sata device found
[0 0 0]: Enable DMA mode (6)
  Device 0 @ 0 0:
Model: WDC WD60PURX-64T0ZY1                     Firm: 80.00A80 Ser#:      WD-WX11D3778ZFD
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1528862.5 MB = 1493.0 GB (-1163856720 x 512)


CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
PEX 1: interface detected no Link.
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Reset IDE:
Marvell Serial ATA Adapter
Integrated Sata device found
[0 0 0]: Enable DMA mode (6)
  Device 0 @ 0 0:
Model: WDC WD60PURX-64T0ZY1                     Firm: 80.00A80 Ser#:      WD-WX11D3778ZFD
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1528862.5 MB = 1493.0 GB (-1163856720 x 512)


IDE read: device 0 block # 2048, count 6144 ... 6144 blocks read: OK

IDE read: device 0 block # 8192, count 8192 ... 8192 blocks read: OK
## Booting image at 00040000 ...
Bad Magic Number

IDE device 1: not available

IDE read: device 0 block # 2048, count 6144 ... 6144 blocks read: OK

IDE read: device 0 block # 8192, count 8192 ... 8192 blocks read: OK
## Booting image at 00040000 ...
Bad Magic Number
Marvell>>

Hmm. That lede-...-uImage is not a uImage. It's a plain kernel:~$ file lede-kirkwood-ix1-spi-initramfs-uImage lede-kirkwood-ix1-spi-initramfs-uImage: Linux kernel ARM boot executable zImage (little-endian)
You'll have to package it using mkimage (I guess load address and execution pointer are both 0x8000), or use the bootloader to load it at 0x8000 and then boot 0x8000. Not bootm, as it expects a uImage.

I don't know how to do that, can you tell me how?

Sorry but I do not understand very well how it works all the uboot, kernel, root, image etc things...
I know some about Debian and LEDE/OpenWRT but I never do anything with kernel upgrades, kernel images, etc.

man mkimage

1 Like

Please, I already read the man page of mkimage, but I don't know yet what I need to do, I never used mkimage in the past...

It sounds like your best option is to get someone who knows what they are doing to do it for you.

1 Like

I know how to connect it using my serial-ttl cable, I know how to run commands on linux vm, I know how to use dd I already have a usb-sata cable and serial-ttl cable and have correctly identified pins on board, and I successfully disk-flashed a WDMybookLive (similar box)... but I just don't understand the linux kernel thing and the uImage image thing... I just need help with that... I am completely lost on Doozan forums about this... there is so many files and config trial and error and missing steps...
I want to try to install LEDE, to see if it works (the WDMybookLive works like a charm), if not, I want to just install Debian to be able to use the damn NAS for god sake... with stock firmware this shit it is just unusable.

Do you have a recovery plan if you brick the device?

As far i can tell with the serial ttl I can modify the 1mb flash of the board if it is needed to boot properly.
No problem if my hardrive fails in some way, and no problem if my any of my USB flash drive fails in some way.
If the on-board flash of the Iomega fails no problem to me, I already have my WD MybookLive with LEDE up and working.

That is because I want to do experiments, no problem if I brick the hardware, I also have lots of Routers, and some PogoPlug Mobile too, all flashed with LEDE.

I am very careful with my notes, I will write it down as I always do as a step-by-step guide if I had success to allow other to learn to do it with their hardware or similar ones.

For start, Can someone explain to me what is and the relation between of "Plain kernel", uBoot, uImage, a Initramfs, a zImage, ramdisk, initrd, dtb, etc, etc, may be if I understand all of that well I will understand easily what involves the mkimage process in order to get the files to ´dd´ in to the Iomega EZ.

'Plain kernel' is the binary which is the result of compiling&linking the kernel source.
zImage is a compressed plain kernel with a 'pyggyback'. Some extra code which can decompress the kernel before booting it.
uImage is (in most cases) a zImage with a 64 byte uImage header, which contains the load address & entry point of the zImage, so that uBoot knows what to do with it. Further is contains a description of the actual contents (linux kernel, version, ...)
An initramfs and initrd are basically the same. It's a filesystem in memory, which contains userland software. In an embedded environment it might contain the whole distro, on bigger systems it can contain tools&scripts to assemble&mount raid arrays and stuff like that before passing userland boot to them. Both can have a uHeader, to let uBoot know what it is.
dtb is a database describing the hardware. (How many Sata ports, their addresses, gpio, ... ).

You have at least to set the load address and entry point of the uImage correctly. Else u-boot doesn't know what to do. Don't know if uBoot actually cares about the other fields. But they are not hard to guess
Here you can see the uImage header of an ix2-dl:
Image Name: Linux-2.6.31.8
Created: 2013-03-12 21:25:40 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2943440 Bytes = 2.8 MB
Load Address: 00008000
Entry Point: 00008000

1 Like

Loud and Clear... Understood perfectly! MANY Thanks!!!

Ok, do you recommend that I must give a try to use mkimage then with this image?

so I need to convert that zImage into a uImage passing to mkimage with the entrypoint of 00008000 right?

It is something like this?

mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-4.11.3-kirkwood-tld-2 -d zImage.fdt uImage

I just found it here, I just missed it, I speed read again the forum post and I just found it: https://forum.doozan.com/read.php?2,35331,35434#msg-35434

the setenv commands in "u-boot reconfiguration" are needed to be executed on the same debian VM that I wil l use to run the mkimage command right ? or it goes on some file ?

In the post, I don't understand, are he running the commands on the box itself on the /boot directory? it says root@iomega:/boot#

I will write now to Eine from Doozan Forum to see if he can give a hand on this experiment too

@Mijzelf Again, thank you so much.

It is something like this?

Yes.

the setenv commands in “u-boot reconfiguration” are needed to be executed on the same debian VM that I wil l use to run the mkimage command right ? or it goes on some file ?

No. They are executed in the u-boot prompt, and the environment is stored in the 'u-boot environment partition' in flash.

In the post, I don’t understand, are he running the commands on the box itself on the /boot directory?

Yes. He already seems to have Debian running, which he uses to upgrade the kernel. So he can use dd to write the image to the local flash partition.
In your case you can run mkimage on any OS/platform which it can run on, and you'll have to upload using tftp to u-boot, and flash it using u-boot. (If you know another way to write it it's also fine, of course.)

Amazing, Thanks!.
I am chating with Ein on Skype, he help me too with this.
I will try to make the image and flash it.

I'll keep you posted.

Ok, Debian worked perfectly fine!
Now I will try to flash LEDE, boot to USB, and other thing, I will post my findings here too, so If anyone want to see a simplified step-by-step on this: https://gist.github.com/braian87b/b5a4c5f20d1112473c470b096df766a3