Hey People,
6 Months ago, i got myself a Portable Wireless Drive. It was an Intenso Memory 2 Move with 1TB. I chose that drive because it had an additional LAN, which i thought, would ensure a minimum of Transfer speed. But unfortunately, i was wrong. The Drive wasn’t just slow. It was terrible. HD Streaming was and still is mostly impossible.
So i got myself a new one. At that time, the MPW PRO wasn’t in Stores, so i bought a My Passport Wireless with 2TB. Finally i had a Drive which met my Speed Requirements, but shortly after, the Battery died. So i had to bring it back to the Store. That was when the PRO Version finally had made its way to the Stores. After paying a little extra, i finally got myself a 3TB My Passport Wireless Pro.
Although i expected it to be much faster than the MPW, given its 5GHZ WiFi, i was again a little disappointed. Still, it was more than fast enough for my Purposes. But somewhere i read about the new Function in the AFP (Netatalk Protocol) that it would support the Spotlight Indexing, which i was very eager to use. Unfortunately, the Netatalk version on the WD Drives does not Support that Function.
So, because of that and a thousand other Reasons, i decided to somehow implement that Function. What started in an effort to recompile one simple Programm, ended up in soldering an Audio Jacket to the Drive in order to Access the UART Interface and recompiling the Kernel, the Bootloader and all the Drivers needed, so i can put another OS onto the Drive.
Please bare in Mind, that i had absolutely no experience with Linux, the Command Line, with Compiling or anything else that was needed to get this done. It took me two weeks just to get the Building Environment in a VM up and running, which did not give me a bunch of Errors Every time i tried to start the Compilation of the official Buildroot Source Code Package. There were some very special Requirements which were, and still not are, noted anywhere.
But i don’t think you Folks want to read the 200.000 Pages of Horror and sleepless Nights i have gone through, just to learn what i needed to get this done. And i am absolutely sure, that some of you people would have done this in a matter of hours. (It took me 4 Months and 2478 Liters of Coffee)
What have i done:
I have recompiled the original Kernel, the Drivers and the Bootloader in order to boot Debian Jessie from a SD Card. I have tried Arch Linux, Ubuntu, Gentoo and Debian which all worked surprisingly fine despite a few minor issues now and than.
My current Status is as follows:
The Bootloader, the Device Tree Blob and the Kernel are uploaded to the internal 64Mbit (8MB) Flash. The Root Filesystem is located on a SD-Card. I have integrated all necessary Drivers directly into the Kernel so that no initial Ramdrive is needed. Actually that was easier than learning how to create an InitRD .
I attached a 4 Port USB-Hub to the USB in order to plug in a USB 2 VGA + Keyboard + Mouse to the System. And it works.
I do now have a Battery powered, overclocked 2 Core ARM v7 1.35 GHz + 512MB Ram + 3TB portable Desktop System which runs on a regular Linux Distribution. It just took 4 Months, much more Hair Loss than i will ever admit and a lot of broken things, which i broke on purpose, at least according to my Wife. My USB 2 VGA Adapter just died so i have to use a remote Desktop and the usual SSH Access to manage it.
My Question is?
Can i now be at least a little proud of myself?
Like i mentioned before, i really did not have any experience with Linux, the Commandline, U-Boot, Kernels, Compilation and so on. I had never done anything like this before. But once i started, i just couldn’t stop. And there were so many big and little things that needed to be done and that needed to be learned, that four Months passed before i had it completely done. Although its not nearly done.
But its working.
- Does anyone want to know how to do it?
- Would you people like me to upload the Files (Source and ready to use Binarys)?
- I am considering writing a short manual. But before i do that, i would want to know if there actually is any Interest?
- Before i forget: I got the Spotlight Indexing Feature up and running
I even wrote a little Script which takes care of the Flashing the Kernel, Bootloader and DTB’s.
BTW, i didn’t know how to write Scripts before i started. But its really just a few lines, so nothing to be proud of…
So basically the drive can be used like any other ordinary PC. You can create a minimal Root Environment (Buildroot, Bootstrap etc…) or use a preconfigured Base System of Ubuntu, Debian, Gentoo Arch Linux…
It just needs to be ARMhf compatible.
Like mentioned before, i did try out all of the above mentioned. And they all work. You just need a few special Drivers and Daemons from WD and customized Bootscripts in order for the Drive to work. I found a little Tool called GPIOwatch, which i used to customize the Function of the Battery/Transfer Button.
But i wasn’t able to get the original WD Webmanagement running. So if you want to configure and personalize the Drive, you definitely will need the Console (and some Linux Experience of course)
Returning to the Original State is actually very easy.
Because i chose to put the Rootfilesystem onto a SD-Card, backing up the Root or even changing the Distro is a matter of Minutes. Having Access to the Physical Console Interface does make things much easier and much more transparent. But those of you, who actually use and need the SD-Card Slot would need to put the Root FS onto a USB-Drive or like WD does, put it on a hidden Partition on the HDD. I wasn’t able to Access the 5 hidden Partitions at the End of the HDD from outside. Even if you attach the HDD directly to a regular PC or via a USB 2 SATA Adapter you won’t be able to access the Files, you’ll only see Free Space at the End of the Drive. I stopped investigating into this direction because i decided very early not to use the HDD for the Root.
The Way i did it, with the Base System on a SD-Card, the System reacts and boots very quickly. 9 - 14 Seconds until the Desktop is up and running does not sound that bad now, does it? Of course it depends on your Distro and Configuration, but even a very bloated and overloaded Testsystem like i do have it right now, does completely boot up within 14 Seconds.
I should not forget to mention, that English is not my native Language. Its actually German. So if you people have trouble understanding my Story, feel free to write a Letter to my former English Teacher. And especially, feel free to ask me.
I just want to know if there is enough Interest, so that WE could all together finish this up, prepare a manual and maybe even some Scripts and Tools to ease the Process. If so, i would very much like to share my Experience, my Files and would greatly appreciate any COFFEE and HAIR DONATIONS you People would be willing to give…
Now i got 2 Hours of Night left, to Shave (the few Hairs i have left), take a Shower and Sleep until i have to get to work.
Hope to hear from you soon,
regards
DeKu