Cross-compiling for DroboFS series: Getting the VM set up

Oh, by all means, take your time and get to it when you feel like it. I’m in no rush whatsoever. Just wanted to suggest the idea, as it would make this “community-supported” system a lot easier to distribute software for. :slight_smile:

I’ve been using your tutorial for setting up a basic VM development environment (http://www.droboports.com/setting-up-a-vm). I ran into one minor glitch - if the eth1 adapter is added to “/etc/network/interfaces” at the end as instructed, when networking is restarted it will populate the nameserver from the host-only interface (eth1). Swapping the order and putting eth0 at the bottom ensures that resolv.conf gets its nameserver info from the correct interface (eth0). Perhaps a VMware specific thing, but I thought I’d mention it.

“mkdir -p /mnt/DroboFS/Shares/DroboApps” needs sudo permissions.
The three shell scripts (crosscompile, uncrosscompile, and package) need their executable bits set.

Strange. Using VirtualBox the setup works just fine. In fact I’m surprised that the host-only interface even gets any DNS information…

Anyway, what is the content of /etc/resolv.conf in that case?

When I have eth1 as the final interface, I get a 172. address which is in the same subnet as the “host-only” interface, and DNS lookups fail. If I move eth0 to the bottom, I get a IP, which is the “NAT” interface, and DNS lookups work fine.

I agree, it’s very strange that VMware would provide DNS information to a host-only interface, but there you go.

Thanks for the heads-up anyway. I updated the tutorial with the suggestions you made.

[quote]The toolchain needed can be found here: http://www.codesourcery.com/sgpp/lite/arm/
More especifically, the one I used is: http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2007q1-21-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
The chaintools from codesourcery don’t seem to be available anymore.
Is there another source we can try, or an updated package that will work?

It is still available, they just moved it around. You can find all versions here: https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription3057

The 2007q1-21 version can be found here: https://sourcery.mentor.com/sgpp/lite/arm/portal/release307

Funny thing is, when I click the download link I get a “403 Forbidden” error page. You may need to register on the site to grab that file.

In any case, if they start bothering us too much to get the file I’ll probably upload it somewhere.


Edit: I just submitted a “website error report” for that page in here: http://www.mentor.com/company/contact_us/

Hi, first of all thanks for a great bunch of resources here, as a new Drobo FS user I truly appreciate the effort people have put in here…

That being said, for the past couple of hours I have been ripping my hairs off in frustration! The past few days since I set up the time machine backup, has been quite stressy regarding the setup of my device. Allow me to summarize really quick:

  • Drobo FS works fine, installed Apache, DroboAdmin, Dropbear and FUPPES as guided on DroboApps page
  • Created a media share, populated it with some media files, and tried to see if I can stream from my Samsung (LE40C550) LCD-TV
  • Streaming works, except no playback controls (pause,ffwd,rwnd etc) only play/stop; which is quite annoying…
  • Give myself to reading, found out about DroboPorts, Jhah’s Drobo page etc.
  • Wanted to try out the newer (DroboPorts) version of Fuppes/nano/wget… Followed the guidelines on DroboPorts for cross-compiling VM without any problems (I’m sitting on an iMac with VirtualBox)
  • Compiling any package however fails inevitably, due to missing folders or lack of permission. (See below)Now of course I can run everything as root, without carying too much about why but that would be crazy
  • Then I tried to be lazy and get the precompiled files (for instance nano) which comes as a tar-ball, rename it to tgz, copy over to DroboApps share and restart; nano gets “installed” as any other DroboApp but not accessible via terminal.

make[1]: Entering directory `/home/croco/code/ncurses-5.9/misc' mkdir -p /mnt/DroboFS/Shares/DroboApps/nano/lib mkdir: cannot create directory `/mnt/DroboFS/Shares/DroboApps/nano': Permission denied make[1]: *** [/mnt/DroboFS/Shares/DroboApps/nano/lib] Error 1 make[1]: Leaving directory `/home/croco/code/ncurses-5.9/misc' make: *** [install.data] Error 2

In short, if I follow the guidelines things do not work, and I am not really sure why they dont… It feels like some crucial information is missing. Any advice?

PS: I am not completely illiterate when it comes to terminal, but I dont want to fiddle around without any clues as to what I should be doing

What do you mean by “nano tarball”? There is a tgz for nano at DroboPorts ready for install.

The problem you are seeing is most likely related to the permissions of the folder /mnt/DroboFS/Shares/DroboApps. Set it to a+rwx and it should work.

Hi Ricardo,

Hopefully you may have a suggestion. I assume I am missing something in the steps for the VM. Specifically, everything compiles and can be placed in the tgz package beautifully via mounting the DroboApps share. The problem is that it seems the crosscompiler is never detected and so the compile is never down for the Drobo. Once the package is install on the Drobo it complains with:

unrar/bin/unrar: line 6: syntax error: unexpected word (expecting “)”)

Any thoughts would be appreciated.

Thank you

Hi Ricardo,

I believe I have found the problem… It has something to do with the creation of the crosscompile.sh file. If I enter all the crosscompile exports into the command line the crosscompile will work. If I use nano and paste the text into nano, the exports do not take.

I have not run into this before. What was done wrong.

Thank you for the great tutorial it is very good. I am working to build subversion update for drobo. Once done I will share.

Thank you,
Hi Richardo,

Sorry for any trouble. I feel foolish. I found the problem. Call the scripts properly helps:

using this works:

. ./crosscompile.sh

using this does not:


Maybe this will help someone else.