Earthdevruis is a high-performance linux server owned by the RU Speech Research group under Jón Gúðnason <>. The machine lives in DevNet (the development network in the RU basement).

The main DevNet contact is Joe Foley <>. He also installed th machine machine.


  • Earth has been reinstalled with 12.04.2 64-bit [foley]
  • Kerberos/AFS has been configured [foley]
  • /home is being restored from the backup disk (mounted on /mnt/backup) [foley]


Turn on PXE for network boot/install

  1. Reboot
  2. While the machine is rebooting, hit F2 (or F1) so that it goes to BIOS setup
    1. Click on system options, then networking
    2. Set the network adapter to have PXE enabled
    3. Save options
  3. Make sure that the machine is connected to the DevNet switches
  4. Reboot

Netboot and pick installer

  1. After PXE initializes, you should get an installer menu
  2. Choose Ubuntu 12.04.2 64-bit (Alternate)
  3. You'll have to pick region and keyboard. You want to pick the Icelandic keyboard

Partitioning the hard drive

It's a good idea to separate the operating system, home directory, and data storage. In addition, you will need a swap file and an AFS cache partition.
The AFS cache partition should be ext2 or ext3. To make this easier to manage, you should have all except for a boot partition in LVM (logical volume manager)

  1. Choose manual partitioning of hard drive
  2. Create a /boot primary paritition of around 300MB. Make sure it is "bootable"
  3. Go into the LVM manager
    1. Create a new physical volume with the remaining space on the drive
    2. Create these logical volumes with these names and sizes. You'll need to remember where they should be mounted also.
      • afscache 2GB (for /var/cache/openafs)
      • swap 8GB
      • slash 60GB (for /)
      • home 50GB (for /home)
      • export [Remaining space] (for /export)
    3. Save changes and exit the manager
  4. In the partition manager, set these options for the partitions
    • boot: labeled boot, format as ext2, mounted at /boot, set "bootable" flag
    • afscache: 0% reserved, labeled afscache, format as ext2 or ext3, mounted at /var/cache/openafs
    • swap: swapspace
    • slash: labeled slash, format as ext4, mounted at /
    • home: 0% reserved, labeled home, format as ext4, mounted at /home
    • export: 0% reserved, labeled export, format as ext4, mounted at /export
  5. Save changes
  6. The installation should continue for a while

Picking server options

You'll have to pick a user. This is the default devnet user:
  • user: devnet
  • password: hakkavelin

Once everything is setup, you should delete the user (or change the password). Avoid logging in as root unless absolutely necessary!

This may vary, but these are probably the settings you want:
  • Basic Ubuntu Server
  • SSH server
  • Ubuntu Desktop

Kerberos (single sign on) and AFS

Follow the directions at

Very brief synopsis without some details:
  1. Install the packages. Remember that the Kerberos realm is DEV.RU.IS and theAFS cell is Case matters!
    sudo apt-get install krb5-auth-dialog krb5-user krb5-clients libpam-ccreds libpam-krb5 build-essential dkms linux-headers-`uname -r` openafs-modules-dkms openafs-{client,krb5} libpam-afs-session
  2. Get a kerberos administrator (currently foley) to generate a keytab for /etc/krb5.keytab
  3. Add the principals for administrators into /root/.k5login
  4. Reboot
  5. Adjust the /etc/ssh/sshd_config settings to allow GSSAPI options (set them all to yes)
  6. see if you can ssh in using your DevNet @DEV.RU.IS principal to the root account
To add users, you need to find out the user's AFS ID.
  1. My AFS id is 7812 as below:
     pts examine foley
    libprot: unable to build security class (getting token)
    libprot: Could not get afs tokens, running unauthenticated
    Name: foley, id: 7812, owner: system:administrators, creator: foley.afsadm,
      membership: 25, flags: S----, group quota: 20.
  2. sudo adduser --uid 7812 foley
    1. Hit return when it asks for your password and do not retry
    2. Fill out the user's information

Useful basic packages

  1. ssh in as root (or use ksu)
  2. install packages for various things
    aptitude install zile language-pack-is-base texstudio

Matlab (and licensing issues)

  1. ssh in as root
    kinit; ssh
  2. Create a matlab user/group
    adduser matlab
  3. Go add yourself to the matlab group
    usermod -a -G matlab
  4. Create a place to store the matlab downloads more permanently for install
    mkdir -p /export/downloads/matlab-2013a

    chown matlab.matlab /export/downloads/matlab-2013a
  5. Give yourself the ability to login as the matlab user
    vi /home/matlab/.k5login
  6. ssh in as the matlab user. Make sure X11 is working
  7. Run firefox and go to
  8. Login and fill out the appropriate forms to download the latest version of matlab
  9. Download it into your Downloads directory
  10. With the user account copy the downloaded matlab files into their new location
    cp ~/Downloads/* /export/downloads/matlab-2013a

At the moment, I can only have one "username" able to run matlab. I have a workaround that I configured. The "matlab" user is the one who gets to use the license under my name.

If you have kerberized ssh and X11 setup properly, this means you can run matlab by logging in as the matlab user. This is how I tested it for running programs out of my AFS directory:

kinit foley@DEV.RU.IS
aklog;  cd /afs/
matlab &

Matlab (and licensing issues) #2

  1. ssh in as your user
    kinit; ssh <username>
  2. execute activation script
  3. follow the instructions
  1. Now ssh to earth and run matlab
    matlab &

Environment Modules


  1. ssh in as root
    kinit; ssh
  2. get and prepare sources
    mkdir -p /export/downloads/modules
    cd /export/downloads/modules
    wget "" 
    cd /export/install/
    tar -xzvf /export/downloads/modules/modules-3.2.10.tar.gz
    cd modules-3.2.10
  3. install tcl dependencies
    aptitude install tcl tcl-dev
  4. configure and install
    ./configure --prefix=/opt
    make install
    cd /opt/Modules
    ln -s 3.2.10 default
  5. an important file that will be sourced later seems to be not copied. It defines the default module version at login
    cp /export/install/modules-3.2.10/etc/global/profile.modules /etc/
  6. update the skeleton files
    env HOME=/etc/skel /opt/Modules/default/bin/add.modules


  1. every user should run the following to update their dot files to enable the module command


  1. available modules can be displayed by
    module avail
  2. modules are loaded by
    module load name_of_the_module[/desired_version]
  3. and unloaded by
    module unload name_of_the_module
  4. currently loaded modules are displayd by
    module list

Installing HTK

  1. ssh in as root
    kinit; ssh
  2. get and prepare sources
    mkdir -p /export/install/htk
    cd /export/install/htk
    tar -xzvf /export/downloads/htk/HTK-3.4.1.tar.gz 
    tar -xzvf /export/downloads/htk/HTK-samples-3.4.1.tar.gz 
    cd htk
  3. install dependencies
    aptitude install libc6-dev-i386 libx11-dev libx11-dev:i386
  4. configure and install
    ./configure --prefix=/opt/htk/3.4.1 --with-x
    make all
    mkdir -p /opt/htk/3.4.1/
    make install
  5. install HTK samples
    cd ..
    cp -r samples /opt/htk/3.4.1/
  6. adding HTK module file
    cd /opt/Modules/default/modulefiles/
    mkdir htk
    cat > htk/3.4.1 <<EOF
    proc ModulesHelp { } {
            global version binprefix
            puts stderr "\tHTK ${version}" 
            puts stderr "\n\tThis adds ${binprefix} to the PATH " 
            puts stderr "\tenvironment variable and defines the " 
            puts stderr "\tenvironment variables HTK_ROOT and HTK_SAMPLEROOT." 
            puts stderr "\n\tVersion $version\n" 
    module-whatis   "Loads HTK 3.4.1 and samples" 
    set     version         3.4.1
    set     prefix       /opt/htk/${version}
    set     binprefix    ${prefix}/bin
    set     sampleprefix ${prefix}/samples
    prepend-path PATH       ${prefix}/bin
    setenv          HTK_ROOT $prefix
    setenv          HTK_SAMPLEROOT $sampleprefix
  7. now HTK can be loaded by
    module load htk
  8. and unloaded by
    module unload htk

Adding local user to Kerberized GNU/Linux system

Adding a user to a 'kerberized' linux system goes well, yet using 'passwd' on the user requires a Kerberos password. This may not be applicable for testing purposes or if the user is intended to only access this server by ssh, sftp, or alike. To nevertheless add a local user, add the '-r' flag to the 'useradd' command. This gives the user an UID below 1000, which is ignored by Kerberos and alike.

Updated by Simon Kluepfel over 10 years ago · 20 revisions