Hi Xinliang and Andreas,

Thanks for helping with this!

I tried out your suggestions, and it compiled fine; however, things had become 
quite messy on the server, so I decided to reinstall the Rocky 8.8 and start 
over. Again, lustre built successfully, but for some reason, when you download 
the source code package from the repository, you get a slightly different 
version from the kernel's, with the result that lustre places its modules in a 
place the running kernel can't find.

So I built the kernel from source with the correct version, rebooted, cloned 
lustre again, ./configured etc, and now:

[root@mds lustre-release]# make
make  all-recursive
make[1]: Entering directory '/root/lustre-release'
Making all in ldiskfs
make[2]: Entering directory '/root/lustre-release/ldiskfs'
make[2]: *** No rule to make target 
'../ldiskfs/kernel_patches/series/ldiskfs-', needed by 'sources'.  Stop.
make[2]: Leaving directory '/root/lustre-release/ldiskfs'
make[1]: *** [autoMakefile:680: all-recursive] Error 1
make[1]: Leaving directory '/root/lustre-release'
make: *** [autoMakefile:546: all] Error 2

Which I don't quite understand, because I still have all the necessary packages 
and tools from before.

Before I barge ahead and try yet another permutation, do you have any advice so 
I might avoid problems? I can reinstall the OS, which will be a bit of a pain, 
but not that bad - but then which version; 8.8 or 8.9, or even 9? Or is there a 
simplish thing I can do to avoid all that?

/jan

On 03/01/2024 02:17, Xinliang Liu wrote:


On Wed, 3 Jan 2024 at 10:08, Xinliang Liu <[email protected] 
<mailto:[email protected]>> wrote:

    Hi Jan,

    On Tue, 2 Jan 2024 at 22:29, Jan Andersen <[email protected] 
<mailto:[email protected]>> wrote:

        I have installed Rocky 8.8 on a new server (Dell PowerEdge R640):

        [root@mds 4.18.0-513.9.1.el8_9.x86_64]# cat /etc/*release*
        Rocky Linux release 8.8 (Green Obsidian)
        NAME="Rocky Linux"
        VERSION="8.8 (Green Obsidian)"
        ID="rocky"
        ID_LIKE="rhel centos fedora"
        VERSION_ID="8.8"
        PLATFORM_ID="platform:el8"
        PRETTY_NAME="Rocky Linux 8.8 (Green Obsidian)"
        ANSI_COLOR="0;32"
        LOGO="fedora-logo-icon"
        CPE_NAME="cpe:/o:rocky:rocky:8:GA"
        HOME_URL="https://rockylinux.org/ <https://rockylinux.org/>"
        BUG_REPORT_URL="https://bugs.rockylinux.org/ 
<https://bugs.rockylinux.org/>"
        SUPPORT_END="2029-05-31"
        ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8"
        ROCKY_SUPPORT_PRODUCT_VERSION="8.8"
        REDHAT_SUPPORT_PRODUCT="Rocky Linux"
        REDHAT_SUPPORT_PRODUCT_VERSION="8.8"
        Rocky Linux release 8.8 (Green Obsidian)
        Rocky Linux release 8.8 (Green Obsidian)
        Derived from Red Hat Enterprise Linux 8.8
        Rocky Linux release 8.8 (Green Obsidian)
        cpe:/o:rocky:rocky:8:GA

        I downloaded the kernel source (I don't remember the exact command):

        [root@mds 4.18.0-513.9.1.el8_9.x86_64]# ll /usr/src/kernels
        total 8
        drwxr-xr-x. 24 root root 4096 Jan  2 13:49 4.18.0-513.9.1.el8_9.x86_64/
        drwxr-xr-x. 23 root root 4096 Jan  2 11:41 
4.18.0-513.9.1.el8_9.x86_64+debug/

        Copied the config from /boot and ran:

        yes "" | make oldconfig

        After that I cloned the Lustre source and configured (according to my 
notes):

        git clone git://git.whamcloud.com/fs/lustre-release.git 
<http://git.whamcloud.com/fs/lustre-release.git>
        cd lustre-release
        git checkout 2.15.3

        dnf install libtool
        dnf install flex
        dnf install bison
        dnf install openmpi-devel
        dnf install python3-devel
        dnf install python3
        dnf install kernel-devel kernel-headers
        dnf install elfutils-libelf-devel
        dnf install keyutils keyutils-libs-devel
        dnf install libmount
        dnf --enablerepo=powertools install libmount-devel
        dnf install libnl3 libnl3-devel
        dnf config-manager --set-enabled powertools
        dnf install libyaml-devel
        dnf install patch
        dnf install e2fsprogs-devel
        dnf install kernel-core
        dnf install kernel-modules
        dnf install rpm-build
        dnf config-manager --enable devel
        dnf config-manager --enable powertools
        dnf config-manager --set-enabled ha
        dnf install kernel-debuginfo

        sh autogen.sh
        ./configure

        This appeared to finish without errors:

        ...
        config.status: executing libtool commands

        CC:            gcc
        LD:            /usr/bin/ld -m elf_x86_64
        CPPFLAGS:      -include /root/lustre-release/undef.h -include 
/root/lustre-release/config.h -I/root/lustre-release/lnet/include/uapi 
-I/root/lustre-release/lustre/include/uapi 
-I/root/lustre-release/libcfs/include -I/root/lustre-release/lnet/utils/ 
-I/root/lustre-release/lustre/include
        CFLAGS:        -g -O2 -Wall -Werror
        EXTRA_KCFLAGS: -include /root/lustre-release/undef.h -include 
/root/lustre-release/config.h  -g -I/root/lustre-release/libcfs/include 
-I/root/lustre-release/libcfs/include/libcfs 
-I/root/lustre-release/lnet/include/uapi -I/root/lustre-release/lnet/include 
-I/root/lustre-release/lustre/include/uapi 
-I/root/lustre-release/lustre/include -Wno-format-truncation 
-Wno-stringop-truncation -Wno-stringop-overflow

        Type 'make' to build Lustre.

        However, when I run make:

        [root@mds lustre-release]# make
        make  all-recursive
        make[1]: Entering directory '/root/lustre-release'
        Making all in ldiskfs
        make[2]: Entering directory '/root/lustre-release/ldiskfs'
        make[2]: *** No rule to make target 
'../ldiskfs/kernel_patches/series/ldiskfs-', needed by 'sources'.  Stop.


    This looks like it can't detect the ldiskfs-4.18-rhel8.8.series property.  
Most probably the ext4 kernel source rpm (kernel-debuginfo-common-x86_64) 
hasn't been installed yet.
    And like Andreas said try latest 2.15.4.

    Best,
    Xinliang

        make[2]: Leaving directory '/root/lustre-release/ldiskfs'
        make[1]: *** [autoMakefile:649: all-recursive] Error 1
        make[1]: Leaving directory '/root/lustre-release'
        make: *** [autoMakefile:521: all] Error 2

        Alternatively, I tried make rpms which results in:

        ...
        rpmbuilddir=`mktemp -t -d rpmbuild-lustre-$USER-XXXXXXXX`; \
        make  \
                  rpmbuilddir="$rpmbuilddir" rpm-local || exit 1; \
        cp ./rpm/* .; \
        /usr/bin/rpmbuild \
                  --define "_tmppath $rpmbuilddir/TMP" \
                  --define "_topdir $rpmbuilddir" \
                  --define "dist %{nil}" \
                  -ts lustre-2.15.3.tar.gz || exit 1; \
        cp $rpmbuilddir/SRPMS/lustre-2.15.3-*.src.rpm . || exit 1; \
        rm -rf $rpmbuilddir
        make[1]: Entering directory '/root/lustre-release'
        make[1]: Leaving directory '/root/lustre-release'
        error: line 239: Dependency tokens must begin with alpha-numeric, '_' 
or '/': BuildRequires: %kernel_module_package_buildreqs


And this might caused by lacking of rpm kernel-rpm-macros.
Usually,  sudo dnf builddep -y lustre.spec should install all the build 
required RPMs.

        make: *** [autoMakefile:1237: srpm] Error 1


        So, I'm stuck - it seems this is something I do a lot; how do I move 
forward from here?

        _______________________________________________
        lustre-discuss mailing list
        [email protected] <mailto:[email protected]>
        http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org 
<http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org>

_______________________________________________
lustre-discuss mailing list
[email protected]
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org

Reply via email to