Page History
...
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 quiltsudo apt install -y libncurses5-dev libncurses-dev bison flex gnupg libelf-dev gcc libssl-dev bc bzip2 build-essential udev kmod cpiosudo apt install -y libfuse-dev libattr1-dev libblkid-dev uuid-dev devscripts fakeroot kernel-wedge libudev-devsudo apt install -y gettext texinfo debhelper dh-exec update-notifier-commonsudo apt install -y python sg3-utils attr mpi-default-bin selinux-utilssudo 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.
...