Getting the raw materials.

For proof of concept we need a machine, a kernel source to get the module from, and some RPM packages provided by SuSE.

Procedure 64.  Fetching the (Open)SuSE stuff

  1. Getting a test machine

    We install Ubuntu Intrepid on a test machine. We will eventually try to install on Hardy, but there is a kernel module involved, which may give hard to debug problems. Intrepid has a 2.6.27 kernel, as does OpenSuSE 11.1, so we try to make POC with these versions first. On the test/packaging machine, we also need a few packages:

    sudo apt-get install alien rpm lzma dkms build-essential linux-headers-`uname -r` linux-headers-generic debhelper dh-make subversion pbuilder ubuntu-dev-tools dpatch

    And we run apt-get dist-upgrade and reboot, so we can be sure to have the headers and modules for the running kernel.

  2. Fetching the kernel

    From SuSE we need two things: the kernel source and a bunch of packages. The kernel we want to use is from the OpenSuSE distribution, which is the SuSE testbed. I picked an OpenSuSE mirror close to me, and downloaded: wget http://mirror.mydomain/pub/os/linux/distr/opensuse/update/11.1/rpm/i586/kernel-source-2.6.27.19-3.2.1.i586.rpm

  3. Getting the NovFS RPM packages

    The Novell Client, as it is called, is distributed by Novell on a separate CD image that doesn't contain much else. It can be fetched as Novell_Client_11.0-i386-20081003-CD1.iso from the Novell site. The site requires registration, but that is free of charge. And the RuG has licenses for SuSE, so we can even use an official account.

    [Note]Note

    There are multiple versions of the CD available, and 64-bit versions exist as well. This section is about the 32-bit case and the mentioned version.

    So we mount the CD and get the packages, then we delete a few we 're not going to use:

    sudo mount -o loop,ro novell-client-2.0-sp2-sle11-i586.iso /mnt/
    mkdir novfs-packages
    cp /mnt/suse/i586/*.rpm novfs-packages/
    cd novfs-packages/
    rm yast2-novell-client-2.0.0-22.i586.rpm novell-*plugin*
    ls
    nici-2.7.4-6.i586.rpm                   novell-filesystem-0.0.1-21.i586.rpm  novell-qtgui-3.0.b508-17.i586.rpm   novell-xtier-base-3.1.6-12.i586.rpm
    novell-client-2.0.0-29.i586.rpm         novell-nmasclient-3.4.0-21.i586.rpm  novell-ui-base-3.0.b508-5.i586.rpm  novell-xtier-core-3.1.6-12.i586.rpm
    novell-client-script-2.0.0-32.i586.rpm  novell-novfsd-3.0.0-14.i586.rpm      novell-xplatlib-1.0.3-39.i586.rpm   novell-xtier-xplat-3.1.6-12.i586.rpm

So, with all necessities fetched, the tree looks like this:

novfs-hack/
novfs-hack/sources
novfs-hack/sources/novell-client-2.0-sp2-sle11-i586.iso
novfs-hack/sources/kernel-source-2.6.27.19-3.2.1.i586.rpm
novfs-hack/wd
novfs-hack/novfs-rpms/novell-xtier-xplat-3.1.6-12.i586.rpm
novfs-hack/novfs-rpms/novell-xtier-core-3.1.6-12.i586.rpm
novfs-hack/novfs-rpms/novell-xtier-base-3.1.6-12.i586.rpm
novfs-hack/novfs-rpms/novell-xplatlib-1.0.3-39.i586.rpm
novfs-hack/novfs-rpms/novell-ui-base-3.0.b508-5.i586.rpm
novfs-hack/novfs-rpms/novell-qtgui-3.0.b508-17.i586.rpm
novfs-hack/novfs-rpms/novell-novfsd-3.0.0-14.i586.rpm
novfs-hack/novfs-rpms/novell-nmasclient-3.4.0-21.i586.rpm
novfs-hack/novfs-rpms/novell-filesystem-0.0.1-21.i586.rpm
novfs-hack/novfs-rpms/novell-client-script-2.0.0-32.i586.rpm
novfs-hack/novfs-rpms/novell-client-2.0.0-29.i586.rpm
novfs-hack/novfs-rpms/nici-2.7.4-6.i586.rpm

In the rest of this section, unless specified, we work from ~/novfs-hack