SVN on NSLU2

Goals

  • Have a central repository at home that manage the code I produce
  • Use material that I allready had or that is inexpensive
  • Consume minimal power

Hardware

Disclaimer

As always if something goes wrong and you destroy your hardware or lose some data, I cannot be held responsible. This said it worked for me 😉

Prerequisite

Your NSLU2 is correctly configured for your network. That is in the Web Interface under Tab Administration, sub-tab LAN, the IP address, network mask, gateway and primary DNS server fields are set.

Step-by-step guide

Installing the modified firmware:

  1. Download the latest Unslung firmware (currently 6.10 Beta)
  2. Install UpSlug2 on your Mac. If you don’t know how to install UpSlug2, on Mac follow the directions given here
  3. You can find the UpSlug2 under the following path /usr/local/sbin
  4. Shutdown the NSLU2
  5. Press and hold the reset button and at the same time press the power buton
  6. At the moment when the Ready/Status LED turn solid red, release the reset button
  7. You know that the NSLU2 is in upgrade mode when the Ready/Status LED in blinking red and green
  8. If you have more that one network interface (for example one ethernet and one wifi), you have to determine the one you use to connect to your NSLU2 (use ifconfig to see which interface get the ip address from your DHCP server for example)
  9. sudo ./upslug2 --device en0

    You should see your NSLU2 listed. (As mentionned in point 8 the --device is only needed to specify your network interface)

  10. Flash the NSLU2 with the Unslung firmware
    sudo ./upslug2 --device en0
    --image="/<path_to_the_firmware>/Unslung-6.10-beta.bin

Installing the necessary packages on the NSLU2:

  1. In the Web interface under tab Administration, sub-tab Disk (accessed by cliking on the Advanced sub-tab), format the USB2 flash key by cliking on the button Format Disk 2
  2. You know have to move the data from the internal flash to your USB flash key. This operation is called unslinging. In the Web interface under Tab Home, sub-tab Manage Telnet, click the button Enable Telnet
  3. Telnet your NSLU2 with the login “root” and password “uNSLUng”
  4. Enter
    unsling disk2

    and give a new password for the root account

  5. Reboot and reactivate telnet as described at point 2
  6. Telnet the NSLU2 and perform the
    ipkg update
  7. Install openssh so you don’t have to use telnet anymore
    ipkg install openssh
  8. Logout and login with ssh. Now you don’t have to enable telnet anymore. From now on we’ll use ssh that is more secure
  9. In the Web interface under tab Administration and sub-tab Users create a new user that is named “svn”. Be sure that you have checked the Create Private Folder (Share) check box
  10. Back to the ssh session install svn
    ipkg install svn
  11. If you’re lazy like me and don’t know how to use vi then install nano
    ipkg install nano

Configure SVN:

  1. Create the /svn/repositories directory with
    mkdir /svn/diretories
  2. Prepare the svn repository for your project
    svnadmin create /svn/repositories/<projet_name>
  3. (OPTIONAL) If you want to migrate a previous svn repository, then copy via the svn share the dump that you produce with
    svnadmin dump <repos_path> > project.dump

    (on the old svn instance). In the NSLU2 perform a

    svnadmin load /svn/repositories/<project_name> < project.dump

    You can now delete the project.dump file.

  4. Edit the /svn/repositories/<project_name>/conf/svnserve.conf such that the following lines appears
    anon-access = none    #no anonymous can login
    auth-access = write   #authenticated user are allowed to write
    password-db = passwd  #use the passwd file for authentication
  5. Modify the /svn/repositories/<project_name>/conf/passwd file according to the example provided in the file
  6. Create a diversion script to start the svnserve deamon. We will make a /etc/rc.d/rc.svn diversion’s script with the following content
    #!/bin/sh
    
    /opt/bin/svnserve -d
    
    echo `date '+%Y/%m/%d %k:%m:%S'` " : svnserve start" >> /var/log/svnserve.log
    
  7. Correct the script’s premission with
    chmod ugo+rx rc.svn
  8. Add the svnserve to your startup sequence. In order to do so add the following line
    /bin/echo  "Starting svn server:"; ( . /etc/rc.d/rc.svn )
    

    to your rc.1 diversion’s script. You can put it almost anywhere in this diversion but I recommend put it near the end. In my case I have it after the start of the rc.bootdisk‘s diversion.

  9. Reboot the NSLU2 to see if your rc.svn is taken into account
  10. The URL to connect to your svn server is something like svn://<user_name_from_passwd>@<server_address>/svn\
    /repositories/<projet_name>

Additional informations:

  • You have access to the linux hierarchy via the shared element named ADMIN 2. If you use the standard admin/admin password you can see the file there but cannot modify them.
  • The public share is located at /share/flash/data/public and has a mount point in the unix hierarchy at /public. The same apply to the svn share.

Paléo 2008: mardi 22.07

Ce jeudi le programme du paléo 08 est sorti. Comme l’année dernière, je serai présent en tant que bénévole durant les 6 jours du festival afin d’assurer la sécurité du camping. Voici mon choix de groupes pour le 22.07 (si j’ai le temps des les voir et même la motivation est une autre chose). Mon classement est simple: ++ à ne surtout pas louper, + essayer d’entendre deux ou trois titres, = si tu passes dans le coins tend l’oreille, pas mentionné pas intéressant.

  • ++SoKo
  • +The Hives
  • +The Wombats
  • =Cali
  • =BB Brunes
  • =Redback
  • =Love Mote

Vers la soirée de mercerdi.

Les bottes de 7 lieues

Moi c’est comme ça que j’imagine aller faire du sport ;-)[kml_flashembed movie=”http://www.youtube.com/v/MutvUfQcmMg” width=”425″ height=”350″ wmode=”transparent” /]

[kml_flashembed movie=”http://www.youtube.com/v/R1O1YaD-Gpw” width=”425″ height=”350″ wmode=”transparent” /]

RainbowCrack on Mac Intel

[upd2 30.03.2008]

Thanks to Erik Winkler there exists a Mac version of RainbowCrack. Not only this version support more hash algorithms than the official one, it also doesn’t require that you install openssl, it’s universal and last but not least it performs better than the one that I hack (see rest of the post).

I definitely recommend you to use this version instead of mine.

RainbowCrack at macunix.net

[/upd2]

Unfortunately there is no RainbowCrack Mac build.

Here at your disposition a release 1.2 build for intel processor Mac . It needs OpenSSL 0.9.8.g installed in order to work (and of course OS X comes with an earlier version [0.9.7.l]).

How to build by yourself:

OpenSSL 0.9.8.g

  1. download OpenSSL 0.9.8.g from http://www.openssl.org/source/openssl-0.9.8g.tar.gz
  2. open the archive and navigate with a terminal till the openssl-0.9.8g directory
  3. enter the following command ./configure shared
  4. enter the following command make
  5. enter the following command make test
  6. enter the following command sudo make install

RainboCrack 1.2

  1. patch the source file Public.cpp such as the procedure unsigned int GetAvailPhysMemorySize() looks like:
        int mib[2];
        int memSize;
        size_t len;
        mib[0] = CTL_HW;
        mib[1] = HW_PHYSMEM;
        len = sizeof(memSize);
        // This function is FreeBSD-specific
        sysctl(mib, 2, &memSize, &len, NULL, 0);
        return memSize;
  2. modify the makefile.linux such as instead of having the -lssl flag (that is pointing to the default installed 0.9.7.l version) you read:
    -L "/usr/local/ssl/lib/libssl.dylib"
    -L "/usr/local/ssl/lib/libcrypto.dylib"
  3. build RainbowCrack normally then

If I have enought time and motivation I’ll try to compile OpenSSL and RainbowCrack with the intel compiler and all the optimisations for the Xeon platform. Unfortunately as my preliminary tests tend to prove it is not a straightforward task.

[upd 23.03.2008] The source code of my modified version is now available: rainbowcrack-12-src.zip .

[/upd]