Welcome! Log In Create A New Profile

Advanced

Debian on WD My Cloud

Posted by megal0maniac 
Debian on WD My Cloud
August 09, 2017 01:14PM
Recently, I came into the possession of a WD My Cloud storage device (without a hard drive)
I had a look inside:
  • MV88F6720 (Armada 375) CPU, possibly dual-core
  • 512MiB RAM
  • Gigabit ethernet
  • USB3
  • SATA
  • 1MiB flash (for u-boot)
Naturally, I now want to put Debian on it. The stock firmware (stored on the hard drive, which I don't have) was based on Debian Wheezy and had an ancient kernel. I did however make images of the partitions from another device, so I have something to work with there. I'm hoping to run something more current on it, hopefully bodhi's image and kernel, and will document my progress here :)

Boot log, u-boot help and printenv:
BootROM - 1.51
Booting from SPI flash


General initialization - Version: 1.0.0
High speed PHY - Version: 0.1.1 (COM-PHY-V20)
USB2 UTMI PHY initialized succesfully
USB2 UTMI PHY initialized succesfully
High speed PHY - Ended Successfully

DDR3 Training Sequence - Ver 5.7.1
DDR3 Training Sequence - Run with PBS.
DDR3 Training Sequence - Ended Successfully
BootROM: Image checksum verification PASSED

 ** LOADER **


U-Boot 2013.01_v1.03 (Nov 20 2014 - 16:39:45) Marvell version: 2014_T2.0p3

Board: WD_Glacier_DB-88F6720-V2
SoC:   MV88F6720 Rev A0
       running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
       CPU 0
       CPU    @ 800 [MHz]
       L2     @ 400 [MHz]
       TClock @ 200 [MHz]
       DDR    @ 534 [MHz]
       DDR 16Bit Width, FastPath Memory Access, DLB Enabled
DRAM:  512 MiB

Map:   Code:            0x1fed6000:0x1ff92c90
       BSS:             0x1ffefa20
       Stack:           0x1f9c5f20
       Heap:            0x1f9c6000:0x1fed6000

SF: Detected MX25L8006E with page size 64 KiB, total 1 MiB
*** Warning - bad CRC, using default environment

PCI-e 0: Detected No Link.
PCI-e 1: Detected No Link.
SF: Detected MX25L8006E with page size 64 KiB, total 1 MiB
MAC addr: 00:14:EE:0B:96:E9
### Loading Firmware from USB 3.0 Disk ###
USB2.0 0: Host Mode
USB2.0 1: Device Mode
USB3.0 0: Host Mode
Board configuration detected:
        GE-PHY-0 on MAC0
SERDES configuration:
        Lane #0: PCIe0
        Lane #1: PCIe1
        Lane #2: SATA0
        Lane #3: USB3
Net:   egiga0 [PRIME]
*** ERROR: ping address not given
Hit any key to stop autoboot:  0
(Re)start USB...
USB0:   Port (usbActive) : 0    Interface (usbType = 3) : USB XHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
** Bad device usb 0 **
** Bad device usb 0 **
## Booting image at 00a00000 ...
### Loading Firmware from USB 2.0 Disk ###
(Re)start USB...
USB0:   Port (usbActive) : 1    Interface (usbType = 2) : USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
** Bad device usb 0 **
** Bad device usb 0 **
## Booting image at 00a00000 ...
### Loading Firmware from Disk ###

Reset IDE:
Marvell Serial ATA Adapter
Integrated Sata device found

** Bad device ide 0 **
** Bad device ide 0 **
## Booting image at 00a00000 ...
### Loading Rescure Firmware from Disk ###
** Bad device ide 0 **
** Bad device ide 0 **
## Booting image at 00a00000 ...
### Start network installation ###
RX_ICMP
rx_icmp(): Listening to incoming WD ICMP beacons for 3 second!
Error...
rxIcmp - rxIcmp

Usage:
rxIcmp Start Listening to incoming WD ICMP beacons
## Booting image at 00a00000 ...
Wrong Image Format for bootm command
ERROR: can't get kernel image!
Marvell>> help
?       - alias for 'help'
Creset  - Creset        - Run 'reset' or boot command in a loop, while counting.

SatR    - Sample At Reset sub-system

active_units- print active units on board
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
boot_menu- command allows to select boot script from boot device
        example: boot_menu
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
bubt    - bubt  - Burn an image on the Boot SPI Flash.

chpart  - change active partition
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
date    - get/set/reset date & time
ddrPhyRead- ddrPhyRead - Read DDR PHY register

ddrPhyWrite- ddrPhyWrite - Write DDR PHY register

dhcp    - boot image via network using DHCP/TFTP protocol
diskboot- diskboot- boot from IDE device

dma     - dma   - Perform DMA using the XOR engine

echo    - echo args to console
editenv - edit environment variable
eeprom  - EEPROM sub-system
env     - environment handling commands
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4write- create a file in the root directory
false   - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fdt     - flattened device tree utility commands
fsinfo  - print information about filesystems
fsload  - load binary file from a filesystem image
go      - start application at address 'addr'
help    - print command description/usage
i2c     - I2C sub-system
ide     - ide     - IDE sub-system

iminfo  - print header information for application image
imxtract- extract a part of a multi-image
ir      - ir    - reading and changing MV internal register values.

itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
map     - map   - Display address decode windows

md      - memory display
me      - me    - PCIe master enable

mm      - memory modify (auto-incrementing address)
mp      - mp    - map PCIe BAR

mtdparts- define flash/nand partitions
mtest   - simple RAM read/write test
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
pci     - list and access PCI Configuration Space
pciePhyRead- phyRead    - Read PCI-E Phy register

pciePhyWrite- pciePhyWrite      - Write PCI-E Phy register

phyRead - phyRead       - Read Phy register

phyWrite- phyWrite      - Write Phy register

ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
pxe     - commands to get and boot from pxe files
rcvr    - rcvr  - Start recovery process (with TFTP server)

reset   - Perform RESET of the CPU
resetenv- resetenv      - Erase environment sector to reset all variables to default.

run     - run commands in an environment variable
rxIcmp  - rxIcmp
scsi    - SCSI sub-system
scsiboot- boot from SCSI device
se      - se    - PCIe Slave enable

setenv  - set environment variables
sf      - SPI flash sub-system
sg      - sg    - scanning the PHYs status

showvar - print local hushshell variables
sleep   - delay execution for some time
source  - run script from memory
sp      - scan and detect all devices on PCI-e interface
sspi    - SPI utility command
stage_boot- command to load script/image from different devices
        example: stage_boot hd_img pxe
sys_restore- sys_restore        - Search for install script on USB DOK and start installation of linux kernel and rootfs.

sysboot - command to get and boot from syslinux files
temp    - temp  - Display the device temperature.

tempCmd0- tempCmd - This command allocated for monitor extinction

tempCmd1- tempCmd - This command allocated for monitor extinction

tempCmd2- tempCmd - This command allocated for monitor extinction

tempCmd3- tempCmd - This command allocated for monitor extinction

test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
training- training      - prints the results of the DDR3 Training.

true    - do nothing, successfully
ts_report- ts_report    - report touch screen coordinate

ts_test - ts_test       - test touch screen

ubi     - ubi commands
ubifsload- load file from an UBIFS filesystem
ubifsls - list files in a directory
ubifsmount- mount UBIFS volume
ubifsumount- unmount UBIFS volume
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
whoAmI  - - reading CPU ID

Marvell>> printenv
CASset=max
MALLOC_len=5
MPmode=SMP
autoload=no
baudrate=115200
boot_order=hd_scr usb_scr mmc_scr hd_img usb_img mmc_img pxe net_img net_scr
bootargs=root=/dev/ram console=ttyS0,115200
bootargs_dflt=$console $nandEcc $mtdparts $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel
bootargs_end=:10.4.50.254:255.255.255.0:Armada375:eth0:none
bootargs_root=root=/dev/nfs rw
bootcmd=usb reset; fatload usb 0:1 0xa00000 /boot/uImage; fatload usb 0:1 0xf00000 /boot/uRamdisk; bootm 0xa00000 0xf00000
bootcmd_auto=stage_boot $boot_order
bootcmd_fdt=tftpboot 0x2000000 $image_name;tftpboot $fdtaddr $fdtfile;setenv bootargs $console $nandEcc $mtdparts $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel; bootz 0x2000000 - $fdtaddr;
bootcmd_fdt_boot=tftpboot 0x2000000 $image_name; setenv bootargs $console $nandEcc $mtdparts $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel; bootz 0x2000000 - $fdtaddr;
bootcmd_fdt_edit=tftpboot $fdtaddr $fdtfile; fdt addr $fdtaddr; setenv bootcmd $bootcmd_fdt_boot
bootcmd_lgcy=tftpboot 0x2000000 $image_name; setenv bootargs $bootargs_dflt; bootm 0x2000000;
bootdelay=1
cacheShare=no
console=console=ttyS0,115200
device_partition=0:1
disL2Cache=yes
disL2Prefetch=yes
disaMvPnp=no
eeeEnable=no
enaClockGating=no
enaCpuStream=no
enaDCPref=yes
enaFPU=yes
enaICPref=yes
enaMonExt=no
enaWrAllo=no
eth1addr=00:50:43:00:02:02
eth1mtu=1500
eth2addr=00:50:43:00:00:02
eth2mtu=1500
eth3addr=00:50:43:02:00:00
eth3mtu=1500
ethact=egiga0
ethaddr=00:14:EE:0B:96:E9
ethmtu=1500
ethprime=egiga0
fdt_addr=2040000
fdt_skip_update=no
fdtaddr=0x1000000
fdtfile=armada-375-db.dtb
ide_path=/
image_name=uImage
initrd_name=uInitrd
ipaddr=2.76.78.201
kernel_addr_r=2080000
lcd0_enable=0
lcd0_params=640x480-16@60
lcd_panel=0
loadaddr=0x02000000
loads_echo=0
mtdids=spi0=spi_flash
mtdparts=mtdparts=spi_flash:4m(boot),-(spi-rootfs)
mvNetConfig=mv_net_config=4,(00:50:43:11:11:11,0:1:2:3),mtu=1500
mv_pon_addr=00:50:43:02:00:00
netbsd_en=no
netmask=255.0.0.0
netretry=no
pcieTune=no
pexMode=RC
pxe_files_load=:default.arm-armadaxp-db:default.arm-armadaxp:default.arm
pxefile_addr_r=3100000
ramdisk_addr_r=2880000
rootpath=/srv/nfs/
sata_delay_reset=0
sata_dma_mode=yes
script_addr_r=3000000
script_name=boot.scr
serverip=192.168.1.1
setL2CacheWT=no
standalone=fsload 0x2000000 $image_name;setenv bootargs $console $nandEcc $mtdparts root=/dev/mtdblock0 rw ip=$ipaddr:$serverip$bootargs_end; bootm 0x2000000;
stderr=serial
stdin=serial
stdout=serial
usb0Mode=host
usbActive=1
usbType=2
vxworks_en=no
yuk_ethaddr=00:00:00:EE:51:81

Environment size: 3077/65532 bytes
Marvell>>
Re: Debian on WD My Cloud
August 09, 2017 05:45PM
megal0maniac,

> [*] MV88F6720 (Armada 375) CPU, possibly dual-core
> [*] 512MiB RAM
> [*] Gigabit ethernet
> [*] USB3
> [*] SATA
> [*] 1MiB flash (for u-boot)

This looks quite promising! try running the my release MVEBU rootfs.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on WD My Cloud
August 10, 2017 03:00PM
So I got this far. Embedded dtb in uImage (it loads, but still complains about unrecognized/unsupported device ID)
It almost works...

Marvell>> setenv bootargs $console root=LABEL=rootfs rootdelay=5 rootfstype=ext2 earlyprintk=serial
Marvell>> usb reset; ext2load usb 0:1 0xa00000 /boot/uImage; ext2load usb 0:1 0xf00000 /boot/uInitrd;  bootm 0xa00000 0xf00000
(Re)start USB...
USB0:   Port (usbActive) : 1    Interface (usbType = 2) : USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
3917433 bytes read in 456 ms (8.2 MiB/s)
6210503 bytes read in 557 ms (10.6 MiB/s)
### Start network installation ###
RX_ICMP
rx_icmp(): Listening to incoming WD ICMP beacons for 3 second!
Error...
rxIcmp - rxIcmp

Usage:
rxIcmp Start Listening to incoming WD ICMP beacons
## Booting image at 00a00000 ...
## Booting kernel from Legacy Image at 00a00000 ...
   Image Name:   Linux-4.9.0-mvebu-tld-12
   Created:      2017-08-10  19:45:04 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3917369 Bytes = 3.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 00f00000 ...
   Image Name:   initramfs-4.9.0-mvebu-tld-12
   Created:      2017-02-03  23:57:32 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    6210439 Bytes = 5.9 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.0-mvebu-tld-12 (root@tldDebianVM) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #2 SMP PREEMPT Wed Feb 1 02:31:29 PST 2017
[    0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: Marvell Armada 375 Development Board
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] percpu: Embedded 15 pages/cpu @dfbce000 s30796 r8192 d22452 u61440
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line:  console=ttyS0,115200 root=LABEL=rootfs rootdelay=5 rootfstype=ext2 earlyprintk=serial
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 500156K/524288K available (8192K kernel code, 690K rwdata, 2052K rodata, 1024K init, 386K bss, 24132K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
[    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
[    0.000000]       .data : 0xc0d00000 - 0xc0daca28   ( 691 kB)
[    0.000000]        .bss : 0xc0daca28 - 0xc0e0d4f8   ( 387 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] mvebu_mbus: [Firmware Warn]: deprecated mbus-mvebu Device Tree, suspend/resume will not work
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 D prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 Coherent cache controller enabled, 8 ways, 256 kB
[    0.000000] L2C-310 Coherent: CACHE_ID 0x410054c9, AUX_CTRL 0x56040001
[    0.000000] Switching to timer-based delay loop, resolution 40ns
[    0.000007] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85899345900ns
[    0.007892] clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
[    0.019251] Console: colour dummy device 80x30
[    0.023777] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.034208] pid_max: default: 32768 minimum: 301
[    0.039041] Security Framework initialized
[    0.043273] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.049960] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.057893] CPU: Testing write buffer coherency: ok
[    0.063094] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.068876] Setting up static identity map for 0x100000 - 0x100058
[    0.075455] mvebu-soc-id: MVEBU SoC ID=0x6720, Rev=0x3
[    0.274629] Booting CPU 1
[    0.277547] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.277664] Brought up 2 CPUs
[    0.286446] SMP: Total of 2 processors activated (100.00 BogoMIPS).
[    0.292770] CPU: All CPU(s) started in SVC mode.
[    0.298445] devtmpfs: initialized
[    0.305379] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.313602] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.323615] prandom: seed boundary self test passed
[    0.331943] prandom: 100 self tests passed
[    0.336148] pinctrl core: initialized pinctrl subsystem
[    0.342860] NET: Registered protocol family 16
[    0.348475] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.384835] cpuidle: using governor ladder
[    0.414910] cpuidle: using governor menu
[    0.419073] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.427178] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.505820] vgaarb: loaded
[    0.508892] SCSI subsystem initialized
[    0.513964] usbcore: registered new interface driver usbfs
[    0.519742] usbcore: registered new interface driver hub
[    0.525302] usbcore: registered new device driver usb
[    0.530699] media: Linux media interface: v0.10
[    0.535411] Linux video capture interface: v2.00
[    0.541454] clocksource: Switched to clocksource armada_370_xp_clocksource
[    0.597706] VFS: Disk quotas dquot_6.6.0
[    0.601882] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.621134] NET: Registered protocol family 2
[    0.626393] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.633574] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.640130] TCP: Hash tables configured (established 4096 bind 4096)
[    0.646646] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.652850] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.659371] NET: Registered protocol family 1
[    0.664346] RPC: Registered named UNIX socket transport module.
[    0.670329] RPC: Registered udp transport module.
[    0.675132] RPC: Registered tcp transport module.
[    0.679901] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.686671] Unpacking initramfs...
[    0.690150] Initramfs unpacking failed: junk in compressed archive
[    0.702178] Freeing initrd memory: 6068K (c0f00000 - c14ed000)
[    0.708224] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.716225] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.722576] audit: initializing netlink subsys (disabled)
[    0.728078] audit: type=2000 audit(0.710:1): initialized
[    0.733875] Initialise system trusted keyrings
[    0.738684] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    0.745375] zbud: loaded
[    0.748963] NFS: Registering the id_resolver key type
[    0.754149] Key type id_resolver registered
[    0.758401] Key type id_legacy registered
[    0.762520] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.769278] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.776005] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.783708] orangefs_debugfs_init: called with debug mask: :none: :0:
[    0.790444] orangefs_init: module version upstream loaded
[    0.799705] Key type asymmetric registered
[    0.803909] Asymmetric key parser 'x509' registered
[    0.808974] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.816459] io scheduler noop registered
[    0.820452] io scheduler deadline registered
[    0.824837] io scheduler cfq registered (default)
[    0.908705] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.922369] libphy: Fixed MDIO Bus: probed
[    0.927884] libphy: mdio_driver_register: mv88e6085
[    0.934124] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.940732] ehci-pci: EHCI PCI platform driver
[    0.945458] ehci-orion: EHCI orion driver
[    0.950229] usbcore: registered new interface driver usblp
[    0.955977] usbcore: registered new interface driver usb-storage
[    0.962619] mousedev: PS/2 mouse device common for all mice
[    0.969536] i2c /dev entries driver
[    0.975681] hidraw: raw HID events driver (C) Jiri Kosina
[    0.981884] usbcore: registered new interface driver usbhid
[    0.987521] usbhid: USB HID core driver
[    0.991790] drop_monitor: Initializing network drop monitor service
[    0.998165] Netfilter messages via NETLINK v0.30.
[    1.003026] ip_set: protocol 6
[    1.006494] NET: Registered protocol family 10
[    1.022142] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.030074] NET: Registered protocol family 17
[    1.034997] 8021q: 802.1Q VLAN Support v1.8
[    1.039299] Key type dns_resolver registered
[    1.043822] ThumbEE CPU extension supported.
[    1.048170] Registering SWP/SWPB emulation handler
[    1.054043] registered taskstats version 1
[    1.058214] Loading compiled-in X.509 certificates
[    1.063162] zswap: loaded using pool lzo/zbud
[    1.136559] Key type big_key registered
[    1.140954] Key type encrypted registered
[    1.147119] hctosys: unable to open rtc device (rtc0)
[    4.321446] Unable to handle kernel paging request at virtual address e0000000
[    4.328727] pgd = c0004000
[    4.331508] [e0000000] *pgd=00000000
[    4.335171] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[    4.340545] Modules linked in:
[    4.343686] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.9.0-mvebu-tld-12 #2
[    4.350701] Hardware name: Marvell Armada 375 (Device Tree)
[    4.356334] task: df495300 task.stack: df496000
[    4.360935] PC is at crc32_be+0x70/0x140
[    4.364926] LR is at 0x7
[    4.367537] pc : [<c04d5c50>]    lr : [<00000007>]    psr: 80000113
[    4.367537] sp : df497ed4  ip : e0000000  fp : 00000000
[    4.379133] r10: f4c5a8db  r9 : 0afcdeba  r8 : 00001410
[    4.384419] r7 : 00001810  r6 : 00001010  r5 : 00001c10  r4 : b1f564b0
[    4.391002] r3 : c0933bf0  r2 : f0defde0  r1 : c11666d0  r0 : 5587a677
[    4.397586] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    4.404774] Control: 10c5387d  Table: 0000404a  DAC: 00000051
[    4.410579] Process swapper/0 (pid: 1, stack limit = 0xdf496220)
[    4.416643] Stack: (0xdf497ed4 to 0xdf498000)
[    4.421066] 7ec0:                                              f0defde7 c0e02f74 00000000
[    4.429295] 7ee0: 00000101 c0daca40 c0c640ac c0c5183c 00000000 c0c3bda0 ffffe000 c0c3bd78
[    4.437524] 7f00: 00000000 c01019bc df4fa380 c0903c60 c0dd3aa4 cccccccd c0daca00 c029cc94
[    4.445752] 7f20: dfffce04 dfffce10 c0b0065c c013f774 00000003 00000001 c0aff25c 00000007
[    4.453980] 7f40: 00000007 c0b00670 00000100 c0b00670 c0d0dbc0 00000008 c0daca40 00000008
[    4.462207] 7f60: c0daca40 c0c51838 00000101 c0daca40 c0c640ac c0c00e04 00000007 00000007
[    4.470434] 7f80: 00000000 c0c005b4 00000000 c0834b6c 00000000 00000000 00000000 00000000
[    4.478661] 7fa0: 00000000 c0834b74 00000000 c010c338 00000000 00000000 00000000 00000000
[    4.486888] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.495115] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
[    4.503357] [<c04d5c50>] (crc32_be) from [<c0c3bda0>] (of_fdt_raw_init+0x28/0x70)
[    4.510901] [<c0c3bda0>] (of_fdt_raw_init) from [<c01019bc>] (do_one_initcall+0xa8/0x150)
[    4.519137] [<c01019bc>] (do_one_initcall) from [<c0c00e04>] (kernel_init_freeable+0x190/0x258)
[    4.527889] [<c0c00e04>] (kernel_init_freeable) from [<c0834b74>] (kernel_init+0x8/0x10c)
[    4.536122] [<c0834b74>] (kernel_init) from [<c010c338>] (ret_from_fork+0x14/0x3c)
[    4.543747] Code: e3017810 e3018410 e154000c 0a000023 (e59c9000)
[    4.549900] ---[ end trace 9981663f8675c6f2 ]---
[    4.554666] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    4.554666]
[    4.563942] CPU0: stopping
[    4.566730] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D         4.9.0-mvebu-tld-12 #2
[    4.574955] Hardware name: Marvell Armada 375 (Device Tree)
[    4.580603] [<c01160bc>] (unwind_backtrace) from [<c0110bb4>] (show_stack+0x10/0x14)
[    4.588403] [<c0110bb4>] (show_stack) from [<c04ba5a4>] (dump_stack+0x70/0x8c)
[    4.595685] [<c04ba5a4>] (dump_stack) from [<c0113f90>] (handle_IPI+0x16c/0x350)
[    4.603138] [<c0113f90>] (handle_IPI) from [<c0101520>] (gic_handle_irq+0x78/0x94)
[    4.610762] [<c0101520>] (gic_handle_irq) from [<c011160c>] (__irq_svc+0x6c/0xa8)
[    4.618294] Exception stack(0xc0d01f60 to 0xc0d01fa8)
[    4.623412] 1f60: 00000001 00000000 00000000 c011e6c0 00000000 00000000 c0d00000 c0d0412c
[    4.631641] 1f80: 00000001 c0d01fb8 c0d04194 00000000 00000000 c0d01fb0 c010d400 c010d404
[    4.639864] 1fa0: 60000113 ffffffff
[    4.643428] [<c011160c>] (__irq_svc) from [<c010d404>] (arch_cpu_idle+0x2c/0x38)
[    4.650881] [<c010d404>] (arch_cpu_idle) from [<c015ef04>] (cpu_startup_entry+0xf0/0x1d0)
[    4.659114] [<c015ef04>] (cpu_startup_entry) from [<c0c00c08>] (start_kernel+0x324/0x390)
[    4.667344] [<c0c00c08>] (start_kernel) from [<0000807c>] (0x807c)
[    4.673590] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    4.673590]
Re: Debian on WD My Cloud
August 10, 2017 03:53PM
megal0maniac,

Looks great!

The problem is with the load address 0xa00000 0xf00000. These stock addresses are not good to boot Debian, so the initrd was corrupted:

> [ 0.686671] Unpacking initramfs...
> [ 0.690150] Initramfs unpacking failed: junk in
> compressed archive

Use what we had in the WD My Could EX4100 thread

usb reset; 
ext2load usb 0:1 0x02000000 /boot/uImage; 
ext2load usb 0:1 0x2900000 /boot/uInitrd;  
bootm 0x02000000 0x2900000

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Debian on WD My Cloud
August 11, 2017 09:04AM
Those addresses don't work :(
Tried shifting it around a bit but I can't get it to boot.
I had the most success with 0xa00000 0xf00000 where it at least started booting. Everything else seemed unable to read uInitrd.
Re: Debian on WD My Cloud
August 11, 2017 05:16PM
Ok, then try bootz like the NSA326. Replace the DTB file name with what you have used previously.

setenv load_dtb_addr 0x1000000
setenv load_initrd_addr 0x2900000
setenv load_image_addr 0x02000000
setenv usb_set_bootargs 'setenv bootargs "console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts earlyprintk=serial"'

setenv fdt_skip_update yes
usb start
ext2load usb 0:1 $load_image_addr /boot/zImage
ext2load usb 0:1 $load_dtb_addr /boot/dts/armada-xxxxx.dtb 
ext2load usb 0:1 $load_initrd_addr /boot/uInitrd
run usb_set_bootargs
bootz $load_image_addr $load_initrd_addr $load_dtb_addr

Ans please post the entire serial console log here.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 1 time(s). Last edit at 08/11/2017 05:16PM by bodhi.
Re: Debian on WD My Cloud
August 12, 2017 01:53AM
No luck :(
It couldn't read the kernel or the ramdisk:
Marvell>> setenv load_dtb_addr 0x1000000
Marvell>> setenv load_initrd_addr 0x2900000
Marvell>> setenv load_image_addr 0x02000000
Marvell>> setenv usb_set_bootargs 'setenv bootargs "console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts earlyprintk=serial"'
Marvell>> setenv fdt_skip_update yes
Marvell>> usb start
(Re)start USB...
USB0:   Port (usbActive) : 1    Interface (usbType = 2) : USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 $load_image_addr /boot/zImage
3904400 bytes read in 394 ms (9.4 MiB/s)
Marvell>> ext2load usb 0:1 $load_dtb_addr /boot/dts/armada-375-db.dtb
12969 bytes read in 492 ms (25.4 KiB/s)
Marvell>> ext2load usb 0:1 $load_initrd_addr /boot/uInitrd
6210503 bytes read in 558 ms (10.6 MiB/s)
Marvell>> run usb_set_bootargs
Marvell>> bootz $load_image_addr $load_initrd_addr $load_dtb_addr
### Loading Rescure Firmware uRamdisk from USB 2.0 Disk ###
(Re)start USB...
USB0:   Port (usbActive) : 1    Interface (usbType = 2) : USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
** Unrecognized filesystem type **
** Unrecognized filesystem type **
### Loading Firmware from Disk ###

Reset IDE:
Marvell Serial ATA Adapter
Integrated Sata device found

** Bad device ide 0 **
** Bad device ide 0 **
### Loading Rescure Firmware from Disk ###
** Bad device ide 0 **
** Bad device ide 0 **
### Image start network installation ###
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5

Retry count exceeded; starting again
RX_ICMP
rx_icmp(): Listening to incoming WD ICMP beacons for 3 second!
Error...
rxIcmp - rxIcmp

Usage:
rxIcmp Start Listening to incoming WD ICMP beacons
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
Marvell>>
Re: Debian on WD My Cloud
August 12, 2017 04:54AM
This is something I am not sure, why this u-boot tries to load Rescue FW when we do a bootz. Perhaps they hard coded bootz to do that.

Marvell>> bootz $load_image_addr $load_initrd_addr $load_dtb_addr
### Loading Rescure Firmware uRamdisk from USB 2.0 Disk ###

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 1 time(s). Last edit at 08/12/2017 04:55AM by bodhi.
Author:

Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: