Welcome! Log In Create A New Profile

Advanced

WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)

Posted by JanN 
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
March 14, 2017 01:36PM
Okay,..I'll fix this.

And great work with the HowTo,
BTW for the dts:

blue-sata1-led {
label = "wd385:blue:hdd1";
gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
};
blue-sata2-led {
label = "wd385:blue:hdd2";
gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;

You have active high -> they are standard on

-------------------------------------------------------------------------
GitHub https://github.com/cschil



Edited 1 time(s). Last edit at 03/14/2017 01:45PM by Peacemaker.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
May 19, 2017 07:16AM
peacemaker,

do you remember where you got the vendors dts and dtsi files?

We are trying to get debian running on EX4100 here http://forum.doozan.com/read.php?2,34103
and at the moment i am trying to find the armada-38x-modular.dtb file on stock rom

Peacemaker Wrote:
-------------------------------------------------------
> maybe someone here has an idea?
> I attached the vendors dts and dtsi (armada-385-db
> is for ex2 ultra and mirror gen2)

-
happy hacking,

saschadd
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
May 20, 2017 08:31AM
Hey saschadd,

Both files came out of the vendors gpl package, and I modified the dts to the mainline kernel.

Cheers Carl

-------------------------------------------------------------------------
GitHub https://github.com/cschil
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
May 20, 2017 11:17AM
Hi Carl,

thanks for that info.
Do you remember where you found them?
I downloaded the file WDMyCloud_EX4_GPL_v2.11.164_20170321.tar.gz from here http://support.wdc.com/downloads.aspx?p=213&lang=en and couldnt find them inside.

In the standard envs there is a reference to

fdtfile=armada-38x-modular.dtb

which has to be somewhere. I was thinking about the nand but i dont know how to view the nand.
A different thought was to have a look into the firmware bin file but this seems to be hard to open to take a look inside as well.

Peacemaker Wrote:
-------------------------------------------------------
> Hey saschadd,
>
> Both files came out of the vendors gpl package, an
> d I modified the dts to the mainline kernel.
>
> Cheers Carl
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
May 20, 2017 03:44PM
I'm not sure that this *.dtb file realy exists.
As the uBoot has only slight changes from a dev uBoot from Marvel, and for the boot the dtb file is not realy nessesary.

And I did not get what you expect from that *.dtb, as I'm sure it won't work with the mainline kernel.

-------------------------------------------------------------------------
GitHub https://github.com/cschil
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
May 21, 2017 04:43PM
I tried to find it so that it might be of help for bodhi

Well then, i can stop searching.
mcmg2
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 16, 2017 03:50AM
THIS GUIDE COULD SERIOUSLY SCREW YOUR NAS - you will be connecting a serial device directly to the main PCB of the NAS, and fiddling around in its bootloader. If you brick it even more than it already is, or blow it up, that's on you! Don't bother coming crying to me, I bear no responsibility for the validity or repeatability of this guide, it is just what I did to get my NAS back up and running. IT WILL ALSO COMPLETELY TOTALLY AND UTTERLY VOID YOUR WD WARRANTY, but you signed up for that when you installed custom firmware. If you didn't installed custom firmware and your NAS is bricked, ask WD to see if they will fix it.

If you brick your EX2, it _ *may* _ be possible to recover it.

To do so however, you need to connect to the serial port inside the device. You will find if you take the EX2 apart that on the reverse of the PCB there is a connector J2.
On mine it wasn't populated, but there is the footprint a 5 pin 2.54mm header with one pin missing and lines marked on the PCB.
If you do not have a header, solder one on.

The connector has the following pin map:

5 o <-- RX Data
4 (No pin)
3 o --- N/C (3.3V)
2 o --- GND
1 o --> TX Data

Connect this to a 3.3V USB to serial device such as a sparkfun FTDI 3.3V breakout board/cable. Make sure the RX pin connects to the TX pin of the FTDI board. Don't connect anything to the 3.3V pin!

Using something like PuTTY, open the serial port at 115200,8,N,1 (no flow control).

Now boot your bricked NAS. You should see a whole lot of information being printed out of the terminal. If you don't, check your connections are correct and you have RX/TX the correct way around.

Hopefully you should see uBoot loading - there will be a breif second where it says "press any key to stop autoboot". This is a bit misleading as you cannot press just any key!

We need to make sure we send the correct keys in time to avoid uBoot from automatically loading the dead kernel from the NAND flash.

To do this, turn off the NAS, leaving the serial connection open. Then turn it back on again. As soo as you turn it on start repeatedly sending the following key combination through the serial port:

then '1' then '1' and so on. i.e.:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

You should see it get to the line saying 'press any key to stop autoboot', only this time, the next line should be:

Marvell>>

If you see that prompt, then you were successful. You are now in an interactive uBoot console. WOO.

Just to check it is working enter at the prompt
Marvell>> ?
and press enter.

You should see a list of commands. If you do, great!

Connect your network cable and enter the command:
Marvell>> dhcp

It should now connect to the network and get an IP address.

Now we need to get it to boot a working kernel/filesystem. To do this, you need access to a tftp server, the easiest way of getting this is by booting a linux distribution such as Ubuntu on your computer. If you don't want to install linux, you can use a live CD.
I am using Ubuntu, so if you are not, the next instructions might differ.

First install the tftp packages:
~$ sudo apt-get install xinetd tftpd tftp

Next, create a tftp service file using:
~$ sudo nano /etc/xinetd.d/tftp

Add into that file the following:

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     =
disable         = no
}

Save the file, then create the directory specified in server_args. e.g.

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

Then restart the xinetd service

sudo /etc/init.d/xinetd restart

To test the tftp server, you can do the following:

First, create a test file:
echo Hi > /tftpboot/test

Then, get the ip address of your computer:
ifconfig

then do:
tftp
get test
quit
cat test

It should say "Hi".

The above setting up the tftp server was found here:
http://askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-server2

Next, add the working kernel uImage and uRamdisk files (can be found in the firmware/merge folder of a fresh copy of the GPL source from WD - don't use the copy you used to compile your firmware as that one is buggered!) to the /tftpboot folder

For some reason, in order for this to work, you need to set the owner and permissions of the /tftpboot folder and all its contents to group nobody:root, and permissions 766

sudo chmod 766 /tftpboot
sudo chmod 766 /tftpboot/*
sudo chown nobody:root /tftpboot
sudo chown nobody:root /tftpboot/*

Otherwise you will get "Access Error (2)" when trying to run tftp on the Nas.

As an alternative to the above, all of the next steps, including the TFTP stuff can be done in Windows if you prefer, you just need PuTTY to connect the the serial port, and to download tftpd32. Just set up tftpd32 to be only a tftp server, and select the network interface that is on the same network as your NAS. Make a folder called 'tftpboot' and point tftpd32 to that directory as its root.

Next, add the working kernel uImage and uRamdisk files (can be found in the firmware/merge folder of a fresh copy of the GPL source from WD - don't use the copy you used to compile your firmware as that one is buggered!) to the /tftpboot folder

Now, on the Nas, to tell if the IP address of your tftp server, do:
Marvel>> setenv serverip

Next we set up the boot arguments so that uBoot will load the two files from the tftp server and then boot them.

Marvel>> setenv bootargs console=ttyS0,115200 root=/dev/ram rw ip=dhcp eth=${ethaddr}
Marvel>> setenv bootcmd 'tftp 0x2000000 uImage; tftp 0x3000000 uRamdisk; bootm 0x2000000 0x3000000'

Now we boot into linux:

Marvel>> boot

Boot will fail to find image.cfs, but will prompt to activate console. Press enter
The default password of admin is nothing, just press enter. You now have a console!

!The next commands should be run on your NAS, not your host pc!

For the next part to work, we need to get mount and umount commands working. It appears that library dependencies are missing. So from the firmware/module/crfs folder of the GPL source code, we need to get our missing files.
The following are required:
firmware/module/crfs/lib/libblkid.so.1.0
firmware/module/crfs/lib/libuuid.so.1.3.0

Place those files in your /tftpboot folder

Copy that to the Nas /lib folder using:

cd /lib
tftp -l libblkid.so.1.0 -g 192.168.1.2 #or your
tftp -l libuuid.so.1.3.0 -g 192.168.1.2 #or your

Unfortunately there are symbolic links now which are missing so now we need to recreate them.
Run the following commands:

ln -s libblkid.so.1.0 libblkid.so.1
ln -s libblkid.so.1 libblkid.so
ln -s libuuid.so.1.3.0 libuuid.so.1.3
ln -s libuuid.so.1.3 libuuid.so.1

Try running umount like:

umount

And hopefully it shouldn't complain about missing libraries now.

The image.cfs file from the flash is still mounted at this point as umount was screwed when it tried to unmount it, so do:
umount /dev/loop0
umount /proc
umount /usr/local/modules
umount /usr/local/config
umount /sys/fs/cgroup
/etc/rc.sh

You should probably do the above lines *twice*. When I was working out how to get this all to boot, it seemed that some times doing it once wasn't enough. I never had to do it more than twice.

Now we have the problem that all the files in /usr/local/modules/script are read only! That is truly great for an operating system to have all its executable files not being able to execute and which /etc/rc.sh fails miserably. It comes down to the fact that it is a squashfs filesystem mounted as read-only.

So, we need to extract the file system to somewhere with enough space to take it so that we have read/write/execute permissions - RAM does not as it is over 600MB!

So, lets mount one of the nice big HDDs that are in the Nas!

!!!!Warning!!!!
THIS WILL NOT WORK IF YOU USE RAID 0 !! Mounting the HDD like this will likely corrupt your striped array. Even for RAID 1 it is risky as it will result in the two drives getting out of sync, but at least that *should* be recoverable by rebuilding the mirror array once everything is fixed.
!!!!!!!!!!!!!!!

mkdir /media
mkdir /media/bob
mount /dev/sda2 /media/bob
df -h

(p.s. you don't have to call it bob, I was just bored)

You should see that the hard drive has been mounted.

So, lets copy the filesystem to it!

mkdir /media/bob/recoverysys
cp -R /usr/local/modules/ /media/bob/recoverysys/

Now we unmount the image and instead put a symbolic link to our HDD copy:
umount /usr/local/modules
rm /usr/local/modules -R
ln -s /media/bob/recoverysys/modules /usr/local/modules

Now lets correct those file permissions!

cd /usr/local/modules/
chmod -R 700 *

Now granted the above is a terrible thing to do in an operating system, but at this point it really doesn't matter as the OS is just installed in RAM so will be erased next time we reboot. I couldn't be bothered to go through and work out which files needed there permissions changing, so I did the lot.

Now they are executable, lets run the startup script.
cd /
/usr/local/modules/script/system_init

Well it sort of worked. Seems that libsqlite bauked out. Shucks.
On the plus side it is now running the WDMyCloudEX2 firmware. But because stuff failed, the webpage is completely unusable - I just got a blank grey screen.

But it seems that it is enough. It is possible to flash the WD firmware via SSH without the webpage. Of course we are connected via Serial, but the only difference between us and SSH is the interface, they are both command line terminals.

So, lets copy the firmware across. (First you need to download it from WD)
I am using version 1.05.30 as it is the latest at time of writing.
Download the file, extract it and you are left with a bin file. Place this bin file in your /tftpboot directory on your server so that we can copy it across using TFTP.

So copy it to the WD nas:

cd /shares/Public

tftp -l My_Cloud_KC2A_1.05.30.bin -g

Now the moment of truth. I was **bleep**ting myself at this point...

/usr/local/sbin/updateFirmwareFromFile.sh My_Cloud_KC2A_1.05.30.bin

It started off seeming as if all was going well, I watched it erasing the NAND partition and all looked good. Then it stopped. It was sitting there doing nothing. So I had a choice between either cancelling and trying again, or waiting. Thankfully I decided to wait.

About 2 minutes later, the process exited and I saw a nice message saying that the NAS is scheduling for restart.

But then once again nothing happened. It just sat there. After 5 minutes of this I got bored and pressed the enter key. And happily the prompt appeared again. So I manually rebooted the NAS using:
reboot

Back to uBoot it went, but this time I didn't stop autoload, so it started booting from the flash.

Could it be?!?

Is it working?!?!

*shakes in anticipation*

IT BOOTED!

Ok, so now there is at least a good firmware image in the flash and it can boot from it. The front LED was blinking orange at this point, much like when I turned it on for the very first time. After a bit of waiting for any sign of it doing something, I got bored and decided to go to the device webpage. What do you know, it's ALIVE!

I set up the My Cloud account and user account again and it's back to stock firmware!

At this point I got some nice messages saying the RAID was degraded, but I knew that was going to happen as I was using the HDD without a RAID controller. But that was nothing that going to the advanced options and rebuilding the array didn't fix.

 Hopefully someone will find this useful.

I have this box to install debian, is it possible to boot it from usb drive and use hdd for data?
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 02:41AM
Hey, what device do you have in mind? the ex2 ultra or the ex2.
For the Ex2 Ultra ( or mycloud mirror gen2) its possible, but you need to flash the nand, for percistence. As I don't have the ex2 with I don't know.

-------------------------------------------------------------------------
GitHub https://github.com/cschil
mcmg2
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 03:06AM
yes, I bought my cloud mirror gen2, it is on the way.

any advice would be great or detailed how to...^^
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 03:18AM
Peacemaker,

Persistence problem: you should try kwboot, get it working, and then set up to save envs in Debian.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 04:15AM
Hey bodhi, I've seen the work on the Ex4100, and waiting for a new uboot there. It should be compatible with the ex2 ultra / mcm gen2.
But still you need to flash the nand to get it working. uboot or initrd/kernel and initrd+kernel option is working very good, new uboot is still in work, or am I wrong?

-------------------------------------------------------------------------
GitHub https://github.com/cschil
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 04:37AM
Peacemaker Wrote:
-------------------------------------------------------
> Hey bodhi, I've seen the work on the Ex4100, and w
> aiting for a new uboot there. It should be compati
> ble with the ex2 ultra / mcm gen2.
> But still you need to flash the nand to get it wor
> king. uboot or initrd/kernel and initrd+kernel opt
> ion is working very good, new uboot is still in wo
> rk, or am I wrong?

I've not started on new u-boot, just gathering info to pacth stock u-boot and modify kernel DTB first. We should be able to build a patched stock u-boot to provide USB and savenv. This is a lot easier to do. And we can flash this patched u-boot to NAND.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 08:11AM
mcmg2 Wrote:
-------------------------------------------------------
> yes, I bought my cloud mirror gen2, it is on the w
> ay.
>
> any advice would be great or detailed how to...^^

You can find a good HowTo here:
https://themm.net/public/ex2u/start

@bodhi
Quote
I've not started on new u-boot, just gathering info to pacth stock u-boot and modify kernel DTB first. We should be able to build a patched stock u-boot to provide USB and savenv. This is a lot easier to do. And we can flash this patched u-boot to NAND. -bodhi

Yes, but there is not a big improvement for me. Just custom-initrd vs debian-initrd and you can name your boot device free.
With my custom initrd you can boot from any drive named rootfs (sata or usb)

-------------------------------------------------------------------------
GitHub https://github.com/cschil
mcmg2
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 07:28PM
thanks for the link,

modifying uboot is good way to go. when I got the box, I will try to kwboot.

if ex4100 and mirror gen2 has the same uboot, it would be good.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 17, 2017 07:56PM
Peacemaker Wrote:
-------------------------------------------------------
> mcmg2 Wrote:
> --------------------------------------------------
> -----
> > yes, I bought my cloud mirror gen2, it is on the
> w
> > ay.
> >
> > any advice would be great or detailed how to...^
> ^
>
> You can find a good HowTo here:
> https://t
> hemm.net/public/ex2u/start

>
> @bodhi
>
Quote
I've not started on new u-boot, just gathe
> ring info to pacth stock u-boot and modify kernel
> DTB first. We should be able to build a patched st
> ock u-boot to provide USB and savenv. This is a lo
> t easier to do. And we can flash this patched u-bo
> ot to NAND. -bodhi

>
>
> Yes, but there is not a big improvement for me. Ju
> st custom-initrd vs debian-initrd and you can name
> your boot device free.
> With my custom initrd you can boot from any drive
> named rootfs (sata or usb)

The idea is to have a generic solution that works for everybody. Not about a specific individual, or type of box.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 18, 2017 03:36PM
Quote
bodhi
The idea is to have a generic solution that works for everybody. Not about a specific individual, or type of box.

I understand your desire to have a generic solution. However, if reflashing u-boot is necessary to enable the features we need (saveenv, usb boot) then I would also prefer that we invest time to get mainline support for u-boot.

Working toward mainline u-boot support helps in several ways:
  1. We don't have to worry about future changes to the Linux boot process breaking since mainline u-boot would be supported
  2. We won't be constrained by any arbitrary limits that may be in the u-boot from WD (e.g. initramfs size, kernel size, partition layout)
  3. It helps other projects who want to run something other than Debian on the device (e.g. LEDE)

So I totally agree that what we want is a generic Debian image which works on the box. Where I must disagree though is that we only want to do the bare minimum effort to get WD u-boot to work for this goal. I will be trying to work toward getting mainline support for u-boot.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 18, 2017 05:23PM
hmartin,

Of course. All those reasons you've listed were why I always build new u-boot for new box. Just lack of free time is the issue for me, so I thought I would spend sometime helping picking the low hanging fruit!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
mcmg2
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
June 21, 2017 07:19PM
Now I have my cloud mirror gen2 box connected by serial cable.
mcmg2
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
July 09, 2017 04:32PM
kwboot works and debian boots ok. how do I save it to nand?
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=7"
UBI: MTD device size:            10 MiB
UBI: number of good PEBs:        80
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             32
UBI: total number of reserved PEBs: 48
UBI: number of PEBs reserved for bad PEB handling: 2
UBI: max/mean erase counter: 3/0
UBIFS: mounted UBI device 0, volume 0, name "reserve2"
UBIFS: mounted read-only
UBIFS: file system size:   4063232 bytes (3968 KiB, 3 MiB, 32 LEBs)
UBIFS: journal size:       1015809 bytes (992 KiB, 0 MiB, 6 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: LZO
UBIFS: reserved for root:  200807 bytes (196 KiB)
Loading file '/mac_addr' to addr 0x02000000 with size 18 (0x00000012)...
Done
Set lan 2 WakeOnLan ok
Enable HD1
Enable HD2
Net:   
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |   In-Band    |
| egiga1 |   RGMII   |   In-Band    |
| egiga2 |   SGMII   |     0x00     |
egiga0, egiga1, egiga2 [PRIME]
Hit any key to stop autoboot:  0 
Marvell>> setenv bootdev 'usb'
Marvell>> setenv device '0:1'
Marvell>> setenv load_image_addr '0x02000000'
Marvell>> setenv load_initrd_addr '0x2900000'
Marvell>> setenv load_image 'echo loading Image ...; ext2load $bootdev $device $load_image_addr /boot/uImage'
Marvell>> setenv load_initrd 'echo loading uInitrd ...; ext2load $bootdev $device $load_initrd_addr /boot/uInitrd'
Marvell>> setenv usb_set_bootargs 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial'
Marvell>> setenv bootcmd_usb 'echo Booting from USB ...; usb start; setenv fdt_skip_update yes; usb start; run usb_set_bootargs; if run load_image; then if run load_initrd; then bootm $load_image_addr $load_initrd_addr; else bootm $load_image_addr; fi; fi'
Marvell>> run bootcmd_usb
Booting from USB ...
(Re)start USB...
USB0:   Port (usbActive) : 0	Interface (usbType = 3) : USB XHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
       scanning usb for ethernet devices... 0 Ethernet Device(s) found
(Re)start USB...
USB0:   Port (usbActive) : 0	Interface (usbType = 3) : USB XHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
       scanning usb for ethernet devices... 0 Ethernet Device(s) found
loading Image ...
3920526 bytes read in 421 ms (8.9 MiB/s)
loading uInitrd ...
6210503 bytes read in 490 ms (12.1 MiB/s)
## Booting image at 02000000 ...
## Booting kernel from Legacy Image at 02000000 ...
   Image Name:   Linux-4.9.0-mvebu-tld-12
   Created:      2017-07-09   9:45:53 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3920462 Bytes = 3.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02900000 ...
   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: Western Digital MyCloud EX2 Ultra
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: CPU: 0 PID: 0 at kernel/printk/printk.c:2612 register_console+0x3c/0x398
[    0.000000] console 'earlycon0' already registered
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.9.0-mvebu-tld-12 #2
[    0.000000] Hardware name: Marvell Armada 380/385 (Device Tree)
[    0.000000] [<c01160bc>] (unwind_backtrace) from [<c0110bb4>] (show_stack+0x10/0x14)
[    0.000000] [<c0110bb4>] (show_stack) from [<c04ba5a4>] (dump_stack+0x70/0x8c)
[    0.000000] [<c04ba5a4>] (dump_stack) from [<c0123ce0>] (__warn+0xc8/0xfc)
[    0.000000] [<c0123ce0>] (__warn) from [<c0123d48>] (warn_slowpath_fmt+0x34/0x44)
[    0.000000] [<c0123d48>] (warn_slowpath_fmt) from [<c0171b1c>] (register_console+0x3c/0x398)
[    0.000000] [<c0171b1c>] (register_console) from [<c0c04dc0>] (setup_early_printk+0x14/0x24)
[    0.000000] [<c0c04dc0>] (setup_early_printk) from [<c0c00478>] (do_early_param+0x6c/0xbc)
[    0.000000] [<c0c00478>] (do_early_param) from [<c013f774>] (parse_args+0x2dc/0x40c)
[    0.000000] [<c013f774>] (parse_args) from [<c0c0088c>] (parse_early_options+0x2c/0x3c)
[    0.000000] [<c0c0088c>] (parse_early_options) from [<c0c008c8>] (parse_early_param+0x2c/0x44)
[    0.000000] [<c0c008c8>] (parse_early_param) from [<c0c03350>] (setup_arch+0x4fc/0xa24)
[    0.000000] [<c0c03350>] (setup_arch) from [<c0c00934>] (start_kernel+0x50/0x390)
[    0.000000] [<c0c00934>] (start_kernel) from [<0000807c>] (0x807c)
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] percpu: Embedded 15 pages/cpu @ef7cc000 s30796 r8192 d22452 u61440
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260608
[    0.000000] Kernel command line: console=ttyS0,115200 libata.force=3.0G root=LABEL=rootfs earlyprintk console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1019928K/1048576K available (8192K kernel code, 690K rwdata, 2052K rodata, 1024K init, 386K bss, 28648K reserved, 0K cma-reserved, 262144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 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, 16 ways, 1024 kB
[    0.000000] L2C-310 Coherent: CACHE_ID 0x410054c9, AUX_CTRL 0x56070001
[    0.000000] Switching to timer-based delay loop, resolution 40ns
[    0.000004] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85899345900ns
[    0.007883] clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
[    0.019112] Console: colour dummy device 80x30
[    0.023628] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.034036] pid_max: default: 32768 minimum: 301
[    0.038804] Security Framework initialized
[    0.043006] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.049681] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.057258] CPU: Testing write buffer coherency: ok
[    0.062350] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.068091] Setting up static identity map for 0x100000 - 0x100058
[    0.074521] mvebu-soc-id: MVEBU SoC ID=0x6820, Rev=0x4
[    0.079804] mvebu-pmsu: Initializing Power Management Service Unit
[    0.283604] Booting CPU 1
[    0.286475] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.286532] Brought up 2 CPUs
[    0.295294] SMP: Total of 2 processors activated (100.00 BogoMIPS).
[    0.301614] CPU: All CPU(s) started in SVC mode.
[    0.306885] devtmpfs: initialized
[    0.312771] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.320755] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.330692] prandom: seed boundary self test passed
[    0.337655] prandom: 100 self tests passed
[    0.341816] pinctrl core: initialized pinctrl subsystem
[    0.347850] NET: Registered protocol family 16
[    0.353009] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.383453] cpuidle: using governor ladder
[    0.413420] cpuidle: using governor menu
[    0.417536] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.425610] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.483819] vgaarb: loaded
[    0.486858] SCSI subsystem initialized
[    0.491156] usbcore: registered new interface driver usbfs
[    0.496812] usbcore: registered new interface driver hub
[    0.502247] usbcore: registered new device driver usb
[    0.507598] media: Linux media interface: v0.10
[    0.512242] Linux video capture interface: v2.00
[    0.517922] clocksource: Switched to clocksource armada_370_xp_clocksource
[    0.554187] VFS: Disk quotas dquot_6.6.0
[    0.558258] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.573535] NET: Registered protocol family 2
[    0.578403] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.585545] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.592140] TCP: Hash tables configured (established 8192 bind 8192)
[    0.598601] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.604596] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.611149] NET: Registered protocol family 1
[    0.615837] RPC: Registered named UNIX socket transport module.
[    0.621830] RPC: Registered udp transport module.
[    0.626596] RPC: Registered tcp transport module.
[    0.631385] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.638023] Unpacking initramfs...
[    0.885851] Freeing initrd memory: 6068K (c2900000 - c2eed000)
[    0.891957] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.898730] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.908074] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.914285] audit: initializing netlink subsys (disabled)
[    0.919790] audit: type=2000 audit(0.910:1): initialized
[    0.925621] Initialise system trusted keyrings
[    0.930300] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.936870] zbud: loaded
[    0.940049] NFS: Registering the id_resolver key type
[    0.945171] Key type id_resolver registered
[    0.949436] Key type id_legacy registered
[    0.953517] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.960281] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.966845] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.974289] orangefs_debugfs_init: called with debug mask: :none: :0:
[    0.980927] orangefs_init: module version upstream loaded
[    0.988534] Key type asymmetric registered
[    0.992698] Asymmetric key parser 'x509' registered
[    0.997667] bounce: pool size: 64 pages
[    1.001667] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    1.009126] io scheduler noop registered
[    1.013114] io scheduler deadline registered
[    1.017463] io scheduler cfq registered (default)
[    1.023155] armada-38x-pinctrl f1018000.pinctrl: registered pinctrl driver
[    1.031823] mvebu-pcie soc:pcie-controller: PCI host bridge to bus 0000:00
[    1.038772] pci_bus 0000:00: root bus resource [io  0x1000-0xfffff]
[    1.045095] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xe7ffffff]
[    1.052034] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.058042] PCI: bus0: Fast back to back transfers disabled
[    1.063679] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.071751] pci 0000:00:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.079932] PCI: bus1: Fast back to back transfers enabled
[    1.085607] PCI: bus2: Fast back to back transfers enabled
[    1.091211] pci 0000:00:01.0: PCI bridge to [bus 01]
[    1.096242] pci 0000:00:02.0: PCI bridge to [bus 02]
[    1.101767] mv_xor f1060800.xor: Marvell shared XOR driver
[    1.168404] mv_xor f1060800.xor: Marvell XOR (Descriptor Mode): ( xor cpy intr )
[    1.176022] mv_xor f1060900.xor: Marvell shared XOR driver
[    1.238391] mv_xor f1060900.xor: Marvell XOR (Descriptor Mode): ( xor cpy intr )
[    1.296777] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.304734] console [ttyS0] disabled
[    1.328476] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 23, base_baud = 12500000) is a 16550A
[    1.337504] console [ttyS0] enabled
[    1.337504] console [ttyS0] enabled
[    1.344604] bootconsole [earlycon0] disabled
[    1.344604] bootconsole [earlycon0] disabled
[    1.373980] f1012100.serial: ttyS1 at MMIO 0xf1012100 (irq = 24, base_baud = 12500000) is a 16550A
[    1.383998] ahci-mvebu f10a8000.sata: AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl platform mode
[    1.393108] ahci-mvebu f10a8000.sata: flags: 64bit ncq sntf led only pmp fbs pio slum part sxs 
[    1.402790] scsi host0: ahci-mvebu
[    1.406516] scsi host1: ahci-mvebu
[    1.410173] ata1: FORCE: PHY spd limit set to 3.0Gbps
[    1.415249] ata1: SATA max UDMA/133 mmio [mem 0xf10a8000-0xf10a9fff] port 0x100 irq 42
[    1.423212] ata2: FORCE: PHY spd limit set to 3.0Gbps
[    1.428295] ata2: SATA max UDMA/133 mmio [mem 0xf10a8000-0xf10a9fff] port 0x180 irq 42
[    1.436787] pxa3xx-nand f10d0000.flash: This platform can't do DMA on this device
[    1.444695] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xda
[    1.451091] nand: Hynix H27U2G8F2CTR-BC
[    1.454945] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.462560] pxa3xx-nand f10d0000.flash: ECC strength 16, ECC step size 2048
[    1.469769] Bad block table found at page 131008, version 0x01
[    1.475967] Bad block table found at page 130944, version 0x01
[    1.482069] 8 ofpart partitions found on MTD device pxa3xx_nand-0
[    1.488200] Creating 8 MTD partitions on "pxa3xx_nand-0":
[    1.493627] 0x000000000000-0x000000500000 : "U-Boot"
[    1.509457] 0x000000500000-0x000000a00000 : "uImage"
[    1.525183] 0x000000a00000-0x000000f00000 : "uRamdisk"
[    1.541078] 0x000000f00000-0x00000c800000 : "image.cfs"
[    1.557798] 0x00000c800000-0x00000d700000 : "rescue fw"
[    1.573813] 0x00000d700000-0x00000eb00000 : "config"
[    1.589607] 0x00000eb00000-0x00000f500000 : "reserve1"
[    1.605530] 0x00000f500000-0x00000ff00000 : "reserve2"
[    1.622079] m25p80 spi0.0: unrecognized JEDEC id bytes: ff, ff, ff
[    1.628901] libphy: Fixed MDIO Bus: probed
[    1.633327] libphy: mdio_driver_register: mv88e6085
[    1.638430] libphy: orion_mdio_bus: probed
[    1.647959] mvneta f1034000.ethernet eth0: Using random mac address 9e:d4:26:33:24:1a
[    1.656016] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.662597] ehci-pci: EHCI PCI platform driver
[    1.667104] ehci-orion: EHCI orion driver
[    1.671447] xhci-hcd f10f0000.usb3: xHCI Host Controller
[    1.676797] xhci-hcd f10f0000.usb3: new USB bus registered, assigned bus number 1
[    1.684411] xhci-hcd f10f0000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x00010010
[    1.693022] xhci-hcd f10f0000.usb3: irq 45, io mem 0xf10f0000
[    1.698913] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.705733] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.712997] usb usb1: Product: xHCI Host Controller
[    1.717896] usb usb1: Manufacturer: Linux 4.9.0-mvebu-tld-12 xhci-hcd
[    1.724374] usb usb1: SerialNumber: f10f0000.usb3
[    1.729493] hub 1-0:1.0: USB hub found
[    1.733283] hub 1-0:1.0: 1 port detected
[    1.737414] xhci-hcd f10f0000.usb3: xHCI Host Controller
[    1.742773] xhci-hcd f10f0000.usb3: new USB bus registered, assigned bus number 2
[    1.750358] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.758565] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    1.759227] ata1: SATA link down (SStatus 0 SControl 320)
[    1.769178] ata2: SATA link down (SStatus 0 SControl 320)
[    1.776247] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.783510] usb usb2: Product: xHCI Host Controller
[    1.788417] usb usb2: Manufacturer: Linux 4.9.0-mvebu-tld-12 xhci-hcd
[    1.794885] usb usb2: SerialNumber: f10f0000.usb3
[    1.799970] hub 2-0:1.0: USB hub found
[    1.803756] hub 2-0:1.0: 1 port detected
[    1.807990] xhci-hcd f10f8000.usb3: xHCI Host Controller
[    1.813338] xhci-hcd f10f8000.usb3: new USB bus registered, assigned bus number 3
[    1.820934] xhci-hcd f10f8000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x00010010
[    1.829533] xhci-hcd f10f8000.usb3: irq 46, io mem 0xf10f8000
[    1.835396] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[    1.842352] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.849628] usb usb3: Product: xHCI Host Controller
[    1.854528] usb usb3: Manufacturer: Linux 4.9.0-mvebu-tld-12 xhci-hcd
[    1.861005] usb usb3: SerialNumber: f10f8000.usb3
[    1.866073] hub 3-0:1.0: USB hub found
[    1.869872] hub 3-0:1.0: 1 port detected
[    1.874009] xhci-hcd f10f8000.usb3: xHCI Host Controller
[    1.879362] xhci-hcd f10f8000.usb3: new USB bus registered, assigned bus number 4
[    1.886929] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.895140] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[    1.901970] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.909304] usb usb4: Product: xHCI Host Controller
[    1.914203] usb usb4: Manufacturer: Linux 4.9.0-mvebu-tld-12 xhci-hcd
[    1.920681] usb usb4: SerialNumber: f10f8000.usb3
[    1.925747] hub 4-0:1.0: USB hub found
[    1.929544] hub 4-0:1.0: 1 port detected
[    1.933779] usbcore: registered new interface driver usblp
[    1.939378] usbcore: registered new interface driver usb-storage
[    1.945598] mousedev: PS/2 mouse device common for all mice
[    1.951814] armada38x-rtc f10a3800.rtc: rtc core: registered f10a3800.rtc as rtc0
[    1.959705] i2c /dev entries driver
[    1.975164] orion_wdt: Initial timeout 171 sec
[    1.981593] marvell-cesa f1090000.crypto: CESA device successfully registered
[    1.988978] hidraw: raw HID events driver (C) Jiri Kosina
[    1.994735] usbcore: registered new interface driver usbhid
[    2.000347] usbhid: USB HID core driver
[    2.004365] drop_monitor: Initializing network drop monitor service
[    2.010713] Netfilter messages via NETLINK v0.30.
[    2.015450] ip_set: protocol 6
[    2.018787] NET: Registered protocol family 10
[    2.023821] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.030805] NET: Registered protocol family 17
[    2.035435] 8021q: 802.1Q VLAN Support v1.8
[    2.039770] Key type dns_resolver registered
[    2.044191] ThumbEE CPU extension supported.
[    2.048499] Registering SWP/SWPB emulation handler
[    2.053825] registered taskstats version 1
[    2.057957] Loading compiled-in X.509 certificates
[    2.062804] zswap: loaded using pool lzo/zbud
[    2.111841] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    2.122562] Key type big_key registered
[    2.130450] Key type encrypted registered
[    2.135579] armada38x-rtc f10a3800.rtc: setting system clock to 2017-07-09 11:21:42 UTC (1499599302)
[    2.145944] Freeing unused kernel memory: 1024K (c0c00000 - c0d00000)
Loading, please wait...
[    2.191854] systemd-udevd[1315]: starting version 215
[    2.198013] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[    2.290290] usb 1-1: New USB device found, idVendor=090c, idProduct=1000
[    2.297041] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.305334] usb 1-1: Product: POLLEX 8G
[    2.309211] usb 1-1: Manufacturer: SRT
[    2.312979] usb 1-1: SerialNumber: 033113111111135234000373
[    2.319103] usb-storage 1-1:1.0: USB Mass Storage device detected
[    2.335489] scsi host2: usb-storage 1-1:1.0
[    2.479908] usbcore: registered new interface driver uas
[    3.368653] scsi 2:0:0:0: Direct-Access     SRT      POLLEX 8G        1100 PQ: 0 ANSI: 4
[    3.379416] sd 2:0:0:0: Attached scsi generic sg0 type 0
[    3.385091] sd 2:0:0:0: [sda] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)
[    3.393830] sd 2:0:0:0: [sda] Write Protect is off
[    3.399344] sd 2:0:0:0: [sda] No Caching mode page found
[    3.404681] sd 2:0:0:0: [sda] Assuming drive cache: write through
[    3.413691]  sda: sda1
[    3.418386] sd 2:0:0:0: [sda] Attached SCSI removable disk
[    3.457617] random: fast init done
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
modprobe: module ext3 not found in modules.dep
Begin: Will now check root file system ... fsck from util-linux 2.25.2
fsck: error 2 (No such file or directory) while executing fsck.ext3 for /dev/sda1
fsck exited with status code 8
done.
Warning: File system check failed but did not detect errors
[   17.613718] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   17.622373] EXT4-fs (sda1): INFO: recovery required on readonly filesystem
[   17.629297] EXT4-fs (sda1): write access will be enabled during recovery
[   17.671725] EXT4-fs (sda1): recovery complete
[   17.684412] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... done.
INIT: version 2.88 booting
[info] Using makefile-style concurrent boot in runlevel S.
[....] Starting the hotplug events dispatcher: udevd[   18.604414] systemd-udevd[1520]: starting version 215
. ok 
[ ok ] Synthesizing the initial hotplug events...done.
[ ok ] Waiting for /dev to be fully populated...done.
[ ok ] Activating swap...done.
[   19.905031] EXT4-fs (sda1): re-mounted. Opts: (null)
[ ok ] Activating lvm and md swap...done.
[....] Checking file systems...fsck from util-linux 2.25.2
done.
[ ok ] Cleaning up temporary files... /tmp.
[ ok ] Mounting local filesystems...done.
[ ok ] Activating swapfile swap...done.
[ ok ] Cleaning up temporary files....
[ ok ] Setting kernel variables ...done.
[   21.178679] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[....] Configuring network interfaces...Internet Systems Consortium DHCP Client 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/9e:d4:26:33:24:1a
Sending on   LPF/eth0/9e:d4:26:33:24:1a
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6
[   25.368394] mvneta f1034000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   25.376278] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   33.770652] random: crng init done
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPOFFER from 192.168.2.1
DHCPACK from 192.168.2.1
bound to 192.168.2.109 -- renewal in 40836 seconds.
done.
[ ok ] Starting rpcbind daemon....
[ ok ] Starting NFS common utilities: statd idmapd.
[ ok ] Cleaning up temporary files....
INIT: Entering runlevel: 2
[info] Using makefile-style concurrent boot in runlevel 2.
[warn] Not starting NFS kernel daemon: no exports. ... (warning).
[....] Starting busybox' syslogd implementation : syslogdStarting /sbin/syslogd...
2444 (syslogd)
. ok 
[ ok ] Starting OpenBSD Secure Shell server: sshd.
[ ok ] Starting NTP server: ntpd.
[ ok ] Starting system message bus: dbus.
[ ok ] Starting periodic command scheduler: cron.
[ ok ] Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon.
[....] Starting busybox' klogd implementation : klogdStarting /sbin/klogd...
2443 (klogd)
. ok 

Debian GNU/Linux 8 debian ttyS0

debian login: root
Password: 
Last login: Fri Feb  3 22:22:51 PST 2017 from 192.168.0.100 on pts/0
Linux debian 4.9.0-mvebu-tld-12 #2 SMP PREEMPT Wed Feb 1 02:31:29 PST 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
debian
192.168.2.109
Western Digital MyCloud EX2 Ultra
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
 04:26:58 up 5 min,  1 user,  load average: 0.01, 0.06, 0.03
root@debian:~# printenv
SHELL=/bin/bash
TERM=linux
HUSHLOGIN=FALSE
USER=root
MAIL=/var/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root
SHLVL=1
HOME=/root
LOGNAME=root
_=/usr/bin/printenv
root@debian:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00500000 00020000 "U-Boot"
mtd1: 00500000 00020000 "uImage"
mtd2: 00500000 00020000 "uRamdisk"
mtd3: 0b900000 00020000 "image.cfs"
mtd4: 00f00000 00020000 "rescue fw"
mtd5: 01400000 00020000 "config"
mtd6: 00a00000 00020000 "reserve1"
mtd7: 00a00000 00020000 "reserve2"
root@debian:~# fw_printenv
Warning: Bad CRC, using default environment
bootargs=
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=3
baudrate=115200
stdin=serial,cros-ec-keyb
stdout=serial,lcd
stderr=serial,lcd
root@debian:~# 

mcmg2
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
July 11, 2017 06:27AM
root@debian:~/mcm-daemon# make
cc -c -o mcm-daemon.o mcm-daemon.c -Wall -I. -Iiniparser/src -I/usr/include
mcm-daemon.c:34:19: fatal error: errno.h: No such file or directory
 #include <errno.h>
                   ^
compilation terminated.
Makefile:24: recipe for target 'mcm-daemon.o' failed
make: *** [mcm-daemon.o] Error 1

I am trying to compile mcm-daemon from nas but compilation terminated.

there is errno.h available /usr/include/asm/errno.h

root@debian:~/mcm-daemon# cat /usr/include/asm/errno.h
#ifndef _ASM_GENERIC_ERRNO_H
#define _ASM_GENERIC_ERRNO_H

#include <asm-generic/errno-base.h>

#define	EDEADLK		35	/* Resource deadlock would occur */
#define	ENAMETOOLONG	36	/* File name too long */
#define	ENOLCK		37	/* No record locks available */
#define	ENOSYS		38	/* Function not implemented */
#define	ENOTEMPTY	39	/* Directory not empty */
#define	ELOOP		40	/* Too many symbolic links encountered */
#define	EWOULDBLOCK	EAGAIN	/* Operation would block */
#define	ENOMSG		42	/* No message of desired type */
#define	EIDRM		43	/* Identifier removed */
#define	ECHRNG		44	/* Channel number out of range */
#define	EL2NSYNC	45	/* Level 2 not synchronized */
#define	EL3HLT		46	/* Level 3 halted */
#define	EL3RST		47	/* Level 3 reset */
#define	ELNRNG		48	/* Link number out of range */
#define	EUNATCH		49	/* Protocol driver not attached */
#define	ENOCSI		50	/* No CSI structure available */
#define	EL2HLT		51	/* Level 2 halted */
#define	EBADE		52	/* Invalid exchange */
#define	EBADR		53	/* Invalid request descriptor */
#define	EXFULL		54	/* Exchange full */
#define	ENOANO		55	/* No anode */
#define	EBADRQC		56	/* Invalid request code */
#define	EBADSLT		57	/* Invalid slot */

#define	EDEADLOCK	EDEADLK

#define	EBFONT		59	/* Bad font file format */
#define	ENOSTR		60	/* Device not a stream */
#define	ENODATA		61	/* No data available */
#define	ETIME		62	/* Timer expired */
#define	ENOSR		63	/* Out of streams resources */
#define	ENONET		64	/* Machine is not on the network */
#define	ENOPKG		65	/* Package not installed */
#define	EREMOTE		66	/* Object is remote */
#define	ENOLINK		67	/* Link has been severed */
#define	EADV		68	/* Advertise error */
#define	ESRMNT		69	/* Srmount error */
#define	ECOMM		70	/* Communication error on send */
#define	EPROTO		71	/* Protocol error */
#define	EMULTIHOP	72	/* Multihop attempted */
#define	EDOTDOT		73	/* RFS specific error */
#define	EBADMSG		74	/* Not a data message */
#define	EOVERFLOW	75	/* Value too large for defined data type */
#define	ENOTUNIQ	76	/* Name not unique on network */
#define	EBADFD		77	/* File descriptor in bad state */
#define	EREMCHG		78	/* Remote address changed */
#define	ELIBACC		79	/* Can not access a needed shared library */
#define	ELIBBAD		80	/* Accessing a corrupted shared library */
#define	ELIBSCN		81	/* .lib section in a.out corrupted */
#define	ELIBMAX		82	/* Attempting to link in too many shared libraries */
#define	ELIBEXEC	83	/* Cannot exec a shared library directly */
#define	EILSEQ		84	/* Illegal byte sequence */
#define	ERESTART	85	/* Interrupted system call should be restarted */
#define	ESTRPIPE	86	/* Streams pipe error */
#define	EUSERS		87	/* Too many users */
#define	ENOTSOCK	88	/* Socket operation on non-socket */
#define	EDESTADDRREQ	89	/* Destination address required */
#define	EMSGSIZE	90	/* Message too long */
#define	EPROTOTYPE	91	/* Protocol wrong type for socket */
#define	ENOPROTOOPT	92	/* Protocol not available */
#define	EPROTONOSUPPORT	93	/* Protocol not supported */
#define	ESOCKTNOSUPPORT	94	/* Socket type not supported */
#define	EOPNOTSUPP	95	/* Operation not supported on transport endpoint */
#define	EPFNOSUPPORT	96	/* Protocol family not supported */
#define	EAFNOSUPPORT	97	/* Address family not supported by protocol */
#define	EADDRINUSE	98	/* Address already in use */
#define	EADDRNOTAVAIL	99	/* Cannot assign requested address */
#define	ENETDOWN	100	/* Network is down */
#define	ENETUNREACH	101	/* Network is unreachable */
#define	ENETRESET	102	/* Network dropped connection because of reset */
#define	ECONNABORTED	103	/* Software caused connection abort */
#define	ECONNRESET	104	/* Connection reset by peer */
#define	ENOBUFS		105	/* No buffer space available */
#define	EISCONN		106	/* Transport endpoint is already connected */
#define	ENOTCONN	107	/* Transport endpoint is not connected */
#define	ESHUTDOWN	108	/* Cannot send after transport endpoint shutdown */
#define	ETOOMANYREFS	109	/* Too many references: cannot splice */
#define	ETIMEDOUT	110	/* Connection timed out */
#define	ECONNREFUSED	111	/* Connection refused */
#define	EHOSTDOWN	112	/* Host is down */
#define	EHOSTUNREACH	113	/* No route to host */
#define	EALREADY	114	/* Operation already in progress */
#define	EINPROGRESS	115	/* Operation now in progress */
#define	ESTALE		116	/* Stale file handle */
#define	EUCLEAN		117	/* Structure needs cleaning */
#define	ENOTNAM		118	/* Not a XENIX named type file */
#define	ENAVAIL		119	/* No XENIX semaphores available */
#define	EISNAM		120	/* Is a named type file */
#define	EREMOTEIO	121	/* Remote I/O error */
#define	EDQUOT		122	/* Quota exceeded */

#define	ENOMEDIUM	123	/* No medium found */
#define	EMEDIUMTYPE	124	/* Wrong medium type */
#define	ECANCELED	125	/* Operation Canceled */
#define	ENOKEY		126	/* Required key not available */
#define	EKEYEXPIRED	127	/* Key has expired */
#define	EKEYREVOKED	128	/* Key has been revoked */
#define	EKEYREJECTED	129	/* Key was rejected by service */

/* for robust mutexes */
#define	EOWNERDEAD	130	/* Owner died */
#define	ENOTRECOVERABLE	131	/* State not recoverable */

#define ERFKILL		132	/* Operation not possible due to RF-kill */

#define EHWPOISON	133	/* Memory page has hardware error */

#endif

what am I missing??
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
July 11, 2017 03:36PM
mcmg2 Wrote:
-------------------------------------------------------
>
> #include <errno.h>
>
Should probably be:
#include <asm/errno.h>
-JT



Edited 1 time(s). Last edit at 07/11/2017 03:42PM by renojim.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
October 19, 2017 03:07PM
Is someone now using kernel 4.13 or 4.12 on mcm2 or ex2u and got wol working?

I tried to upgrade from kernel 4.9. to 4.13 my initrd is not loading any more.

-------------------------------------------------------------------------
GitHub https://github.com/cschil
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
November 05, 2017 11:39AM
Hi!

I'm completely new to device hacking and I've been following this thread for some time and was finally able to reproduce everything, especially thanks to the tutorial at https://themm.net/public/ex2u/kernel .
I'm currently running kernel 4.13.11 cloned from git on WD MyCloud Mirror Gen2.

Getting above kernel 4.10.x I was stuck at the "Starting kernel ..." message for some time, too. To solve it, roughly, you have to copy the .config over to e.g. 4.13.x kernel folder and "make oldconfig". It should ask you for config options that were added in the new kernel, one related to:

Aspeed Virtual UART (SERIAL_8250_ASPEED_VUART) [N/m/y/?] (NEW) y

Per default it is "N", but after I set that to "y" and leaving the rest at default (I think), I was able to get output afterwards again!
(I was stuck at "Uncompressing Linux... done, booting the kernel." for some time then, but that was because the kernel config only had the armada370 support, but I needed armada38x for mcm2).

I'm also closely following the discussion at https://forum.doozan.com/read.php?2,27108,page=12
I experienced the same network problems on the mcm2 that they are talking about and reverting the referenced commit fixed it completely so far, i.e.

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
git checkout tags/v4.13.11
git revert 2a90f7e
[follow tutorial above...]


New problems I'm seeing so far: I cannot re-flash the uImage when I'm booting from a kernel >4.10.x(?), so I always have to boot from recovery image to re-flash, which is very annoying...
EDIT: Nevermind, it works - the devices have been renamed from mtdblockN to just mtdN, and dd does not work anymore, "flash_erase" and "nandwrite" do though!

Other info, if it is useful: I'm running arch at the moment, which runs very nicely, problems reported by kernel currently are the following:

[alarm@wd ~]$ uname -a
Linux wd 4.13.11+ #1 SMP Sun Nov 5 18:00:23 CET 2017 armv7l GNU/Linux
[alarm@wd ~]$ sudo journalctl -p 0..4 -xb
Nov 05 17:15:08 wd kernel: pxa3xx-nand f10d0000.flash: This platform can't do DMA on this device
Nov 05 17:15:08 wd kernel: m25p80 spi0.0: unrecognized JEDEC id bytes: ff, ff, ff
Nov 05 17:15:08 wd kernel: (NULL device *): hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_
Nov 05 17:15:09 wd systemd-udevd[2269]: Could not generate persistent MAC address for bond0: No such file or directory

If you need any other info, let me know!
PS: I haven't done anything related to WoL yet, if you want me to test something, let me know.



Edited 3 time(s). Last edit at 11/05/2017 03:37PM by myclouder.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
November 08, 2017 07:01AM
Other observations:
- on kernel 4.14-rc7 ethernet is completely gone - did anyone research this yet?
mvneta f1034000.ethernet eth0: could not find the PHY
mvneta f1034000.ethernet eth0: cannot probe MDIO bus
- on any kernel I tested (currently still 4.13.11), usage is permanently at 0.2 even if the machine is not used in any other way at all because of one "kworker" thread - any ideas?
MM
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
November 26, 2017 12:29PM
Hi,

I didn't look in here quite some time. I tried 4.13.16 just for curiosity on my test-device but didn't see an benefits from leaving the longterm 4.9. kernel so at the moment I'm running 4.9.63 on my devices and are quite happy with it.

Concerning WOL I did some research back in May or June maybe and also had a look at the WD sources. I guess it is a lot of work, to figure out how it works, so I decided it's not worth it, since my devices are always on anyways. It will for sure require some patches to the ethernet driver in the linux kernel.

The trick seems to be to switch the Ethernet-Phy into some mode to make is useable for the onboard MCU, since this seems to control the wakeup process. The WD firmware seems to switch the PHY into 10Mbit/s mode before powering off. But i don't know if there need to be sent commands to the MCU to take over the ethernet to listen for the magic packets.

@myclouder: I don't have an load of 0.2 on my devices if there is nothing happening in userspace:
up 19:46,  3 users,  load average: 0,00, 0,00, 0,00

I guess you have something running that triggers kernel work in some way. Maybe mutlicast or broadcast traffic on your network. Or it's systemd being bored with no crashing processes it needs to restart. :-)

After all, I'm quite happy with the device and how it works up to now.

There still seem to be some USB issues with 12Mbps fullspeed devices. An usb-audio device plugged into an USB-2 or USB-3 Hub attached to the EX2 will stop playing, when seeking in audio streams with mpd (or any other player). If the device is plugged directly into the EX2 or connected via an USB-1 Hub (I gladly found one in my old Hardware box) it work's without any problems. I tried with different usb-audio adapters and they all had the problem. These problems also exist with the 4.13.16 kernel, so I switched back to 4.9.x.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
November 27, 2017 07:43AM
Has anyone tried to run Debian 9 (Stretch) on the ex2u/mcmg2?
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
December 03, 2017 04:48PM
yes, it's running for a fiew months now but I don't use bodhi's rootfs because someone reported problems with systemd
I'm using a jessie based rootfs (the one for MCMGen2) which I've updated to stretch.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
December 12, 2017 02:03PM
Regarding debian stretch, I can confirm this myself now.
I followed Martin's jessie guide, with the only difference being I downloaded the stretch initrd instead of jessie.
From there it was straight forward, and Carl's initrd booted stretch from the hard drive afterwards.
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
December 16, 2017 03:42PM
Update: I've been having major problems getting kernels to boot, if I build them myself.

I first thought there was something wrong with the kernel file size that I got, based on the discussion in https://forum.doozan.com/read.php?2,28939,31552#msg-31552 but even though getting the size down to 3.1mb it still wouldn't boot.

I was following https://themm.net/public/ex2u/kernel and in there it says you should do this:
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux WDMC ex2u" -d zImage uImage

That didn't work for me, but changing the two "0x80008000" to "0x00008000" did the trick and now the kernel boots fine.

Anyways, make sure you guys get those arguments right, and you'll probably be fine.

Also, I've thrown together a script that downloads binaries from debian.org and replaces the ones in Carl's initrd, in case you're paranoid about running binaries from unknown sources. Not that I don't trust Carl, Martin and Fox_exe, but my employer doesn't... oh well.
Let me know if anyone's interested and I'll share it here.

Thanks for all the work you guys have put into this! Truly awesome!
Re: WD MyCloud Mirror Gen2 (BWVZ, GrandTeton)
December 16, 2017 07:25PM
user1231 Wrote:
-------------------------------------------------------
> Update: I've been having major problems getting
> kernels to boot, if I build them myself.
>
> I first thought there was something wrong with the
> kernel file size that I got, based on the
> discussion in
> https://forum.doozan.com/read.php?2,28939,31552#msg-31552
> but even though getting the size down to 3.1mb it
> still wouldn't boot.
>
> I was following
> https://themm.net/public/ex2u/kernel and in there
> it says you should do this:
> mkimage -A arm -O linux -T kernel -C none -a
> 0x80008000 -e 0x80008000 -n "Linux WDMC ex2u" -d
> zImage uImage
>
> That didn't work for me, but changing the two
> "0x80008000" to "0x00008000" did the trick and now
> the kernel boots fine.
>
> Anyways, make sure you guys get those arguments
> right, and you'll probably be fine.
>
> Also, I've thrown together a script that downloads
> binaries from debian.org and replaces the ones in
> Carl's initrd, in case you're paranoid about
> running binaries from unknown sources. Not that I
> don't trust Carl, Martin and Fox_exe, but my
> employer doesn't... oh well.
> Let me know if anyone's interested and I'll share
> it here.
>
> Thanks for all the work you guys have put into
> this! Truly awesome!

Yes, 0x8000xxxx seems wrong. Check the memory range in uboot with bdinfo.

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

Your Email:


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: