Friday, October 19, 2012

Run barracudadrive on pogoplugs

reference: http://barracudadrive.net/blog/2009/09/BarracudaDrive-for-Marvells-SheevaPlug

barracudrive software is available for the sheeva plug, but not the pogoplug. Since they are the same hardware wise, here are the steps to make it work.

running barracudadrive software "as is" will give the error below:

# ./bdd -p8080 -s8443
  ./bdd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

1. download the full_gentoo_sheevaplug_20090312_minus_kernel_sources.tar.bz2, found at

http://www.plugcomputer.org/index.php/us/resources/downloads?func=startdown&id=7

This is around 90Mb, where we only need one measly file! :(

2. decompress and get the file at /usr/lib/gcc/armv5tejl-softfloat-linux-gnueabi/4.2.4:

  libstdc++.so.6.0.9
3. copy the file to the pogoplug and create the link

  # cp libstdc++.so.6.0.9 /root
  # cd /root
  # ln -s libstdc++.so.6.0.9 libstdc++.so.6


4. create environment variable LD_LIBRARY_PATH. Add this to your startup script for bdd.

  # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root

5. and this will work now!

  # ./bdd -p8080 -s8443
The Asus rt-ac66u Router
Just some random stuff that I did to install optware. This assumes below that you know some UNIX/Linux commands. Have skipped some steps that any Linux users know.

Install and Configuration
1. Download the latest firmware from Asus and install it.

2. Install the better merlin firmware:
  * https://github.com/RMerl/asuswrt-merlin/downloads
  * https://github.com/RMerl/asuswrt-merlin

3. Enable ssh by going to:
  * click administration, system
  * enable ssh: yes
  * allow ssh port forwarding: yes
  * allow ssh access from wan: yes
    * allow ssh password login: no
    * we set it to no, so that password authentication will not work, on the wan. you need public key authentication to work (more secure).
  * ssh authentication key: add it

Prepare usb drive to install optware
Essentially, make the usb drive as /opt. the necessary binaries fdisk and mkfs.ext3 and mkswap is available in merlin. USB sticks or hardrrives are okay.

Note, have skipped some steps. Alternative is to go to Merlin FAQ on how to do this in windows.

1. using fdisk, create 2 partitions, 1st partition is almost the whole disk. 2nd partition. 128MB swap if needed in the future.

2. create filesystem on the partition.
  1st partition whole disk              # mkfs.ext3 -j -L Optware /dev/sda1
  2nd partition 128Mb for swap  # mkswap -L Swap /dev/sda2

Install optware
reference: https://github.com/RMerl/asuswrt-merlin/wiki/Initialize-OPTWARE


on webgui, click usb application, download master, click install

once installation is done, uninstall! but optware ipkg will still be there for you to use.

Install additonal optware package
# ipkg update  && ipkg upgrade

# ipkg install htop procps psmisc psutils lsof nmap tcpdump vim bash openssh dnstracer bc bash-completion  less sed rsync grep mc wget squid3

nice to have:
  # ipkg install coreutils diffutils file findutils psmisc psutils tz util-linux-ng hdparm

once done, a bit of a bug. remove LD_LIBRARY_PATH on /opt/etc/profile. Example:

  $ cat /opt/etc/profile | grep LD_LIBRARY_PATH
  # LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH}

If you don't, stock Asus ls and other commands will fail.

Enable jffs
Go to the router WebGUI and enable jffs plus jffs format and reboot.

Run at startup some optware applications
Merlin firmware has some facility to run apps at startup. Note, you have to enable jffs on web gui. and edit the file /jffs/scripts/post-mount and do "chmod 700". Example to start optware ssh below:



#!/bin/sh
/opt/etc/init.d/S40sshd start