Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

sudo apt install -y build-dep linux-image-$(uname -r)
sudo apt install -y git libtool libtool-bin libyaml-dev ed libreadline-dev dpatch libsnmp-dev mpi-default-dev module-assistant quilt
sudo apt install -y libncurses5-dev libncurses-dev bison flex gnupg libelf-dev gcc libssl-dev bc bzip2 build-essential udev kmod cpio
sudo apt install -y libfuse-dev libattr1-dev libblkid-dev uuid-dev devscripts fakeroot kernel-wedge libudev-dev
sudo apt install -y gettext texinfo debhelper dh-exec update-notifier-commonsudo apt install -y python sg3-utils attr mpi-default-bin selinux-utils
sudo apt install -y python python2 python2-minimal python2.7 libpython2-stdlib libsgutils2-2 libpython2.7-stdlib python2.7-minimal libpython2.7-minimal

...

Then download the correct kernel for your distribution:

$ cd ${BUILDPATH}
$ sudo apt source linux-image-unsigned-$(uname -r)

The next thing you need is the kernel configuration for that version. The easiest way to get it, is by grabbing it from a server running that version.
Assuming the current compile server already runs that kernel (which is not necessary, but certainly makes things easier):

$ cd linux-5.4.0/
$ cp /boot/config-5.4.0-62-generic .config

Once you have the config file in place, you need to make sure that the same version number as used by Ubuntu is embedded in the kernel:

$ touch .scmversion
$ sed -i 's/^VERSION = .*/VERSION = 5/' Makefile
$ sed -i 's/^PATCHLEVEL = .*/PATCHLEVEL = 4/' Makefile
$ sed -i 's/^SUBLEVEL = .*/SUBLEVEL = 0/' Makefile
$ sed -i 's/^EXTRAVERSION =.*/EXTRAVERSION = -62-generic/' Makefile
$ sed -i 's/^NAME =.*/NAME = Focal Fossa/' Makefile

Finally, you can compile the kernel source so that it is usable by Lustre:

$ make -j $(nproc)

Note: "nproc" returns the number of CPUs. If you don't have that tool or wish to use a different parallelism, just enter a number of parallel processes there.

...

To compile the needed package, execute the following steps:

$ cd ${BUILDPATH}
$ git clone git://git.whamcloud.com/tools/e2fsprogs.git
$ cd e2fsprogs
$ git checkout master-lustre
$ sed -i 's/ext2_types-wrapper.h$//g' lib/ext2fs/Makefile.in
$ ./configure
$ dpkg-buildpackage -b -us -uc

This will create several ".deb" files in ${BUILDPATH}.
Save them somewhere sane, so that you can install the modified e2fsprogs on the target servers later.

Install the following packages:

$ sudo dpkg -i e2fsprogs_1.45.6-1_arm64.deb libext2fs-dev_1.45.6-1_arm64.deb \
comerr-dev_2.1-1.45.6-1_arm64.deb libext2fs2_1.45.6-1_arm64.deb libext2fs-dev_1.45.6-1_arm64.deb \
libcom-err2_1.45.6-1_arm64.deb libss2_1.45.6-1_arm64.deb

4.) Building Lustre Server Packages

...

The first step is to download the most recent Lustre sources from the Git repo:

$ cd ${BUILDPATH}
$ git clone git://git.whamcloud.com/fs/lustre-release.git
$ cd lustre-release
$ git checkout master

4.2) Building Lustre Server Packages

Compiling the Lustre server packages is quite straightforward:

$ cd ${BUILDPATH}/lustre-release
$ sh autogen.sh &&
./configure --with-linux=${BUILDPATH}/linux-5.4.0/ && make debs -j $(nproc)

If the compilation succeeded, you should find the server modules again under "lustre-release/debs".
Copy these to a sane location, so that you can use them for installing Lustre Servers.

...