[ovs-dev] [PATCH] rhel: Change depmod configuration

Gregory Rose gvrose8192 at gmail.com
Fri Jan 26 21:31:28 UTC 2018


On 1/26/2018 10:41 AM, Flavio Leitner wrote:
> On Fri, Jan 26, 2018 at 10:03:53AM -0800, Gregory Rose wrote:
>> On 1/26/2018 5:30 AM, Flavio Leitner wrote:
>>> Regarding to change --add-modules to --add-kernel, well, I don't see
>>> how that is helping. Maybe I am missing something, but every time a
>>> kernel is installed, it will run weak-modules --add-kernel which
>>> should create the weak-updates links accordingly, unless the kernel
>>> is not compatible.
>>>
>>> You can verify what the kernel's post install scripts does with this
>>> command:
>>> # rpm -q kernel --scripts
>>>
>>> You should find this snippet:
>>> if [ -x /sbin/weak-modules ]
>>> then
>>>       /sbin/weak-modules --add-kernel 2.6.32-696.18.7.el6.x86_64 || exit $?
>>> fi
>> OK, let me check that again as well but we were definitely seeing situations
>> in which the
>> --add-modules was not working.  The kernel modules were simply not
>> installed.  At all.
>> But using --add-kernel seemed to fix it.  I only found out about the
>> add-kernel option
>> while looking at the weak-modules script and it seemed to fix the situation
>> I was looking at.
>> I'll re-verify using the rpm -q kernel --scripts command.  After some
>> further investigation I'll
>> get back with my findings.  Maybe not until mid next week though because I
>> have some other
>> duties to attend to as well.
> The --add-module would be executed by kmod to add specific modules
> to all installed and supported kernels while --add-kernel would be
> executed by the kernel package to get all modules symlinks done
> for this kernel.
>
> Also that --add-kernel receives a kernel version as parameter and
> not the module list from stdin.  What is happening is that it is
> updating the symlinks for the running kernel only ($1 is empty).

OK, missed that while trying to make sense of that script.  :)  But, it 
did (at least seem)
to fix the cases I mentioned.   However, based upon your comments it was 
a side effect
of something else I guess.

> I don't know how you're reproducing this, but perhaps you can change
> those %post/%pre sections to capture the system's state before and
> after, or even save outputs with debugging enabled (set -x) to
> temp files.
>
> e.g.: sh -x /sbin/weak-modules  &> /tmp/weak-modules.log

Good idea.  Thanks for the pointers!

- Greg

>
> HTH,
> fbl
>
>> I really appreciate your feed back Flavio!  Thanks!!!
>>
>> - Greg
>>
>>> fbl
>>>
>>>> Cc: Flavio Leitner <fbl at sysclose.org>
>>>> Co-authored-by: Gurucharan Shetty <guru at ovn.org>
>>>> Signed-off-by: Greg Rose <gvrose8192 at gmail.com>
>>>> ---
>>>>    rhel/openvswitch-kmod-fedora.spec.in | 12 +++++++-----
>>>>    rhel/openvswitch-kmod-rhel6.spec.in  | 14 ++++++++------
>>>>    rhel/openvswitch-kmod.files          |  2 +-
>>>>    3 files changed, 16 insertions(+), 12 deletions(-)
>>>>
>>>> diff --git a/rhel/openvswitch-kmod-fedora.spec.in b/rhel/openvswitch-kmod-fedora.spec.in
>>>> index c0cd298..ae3a4d8 100644
>>>> --- a/rhel/openvswitch-kmod-fedora.spec.in
>>>> +++ b/rhel/openvswitch-kmod-fedora.spec.in
>>>> @@ -43,13 +43,15 @@ make %{_smp_mflags} -C datapath/linux
>>>>    rm -rf $RPM_BUILD_ROOT
>>>>    make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C datapath/linux modules_install
>>>>    mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
>>>> +
>>>> +echo "search weak-updates updates extra built-in" >> $RPM_BUILD_ROOT/etc/depmod.d/01openvswitch.conf
>>>>    for module in $RPM_BUILD_ROOT/lib/modules/%{kernel}/extra/*.ko
>>>>    do
>>>>        modname="$(basename ${module})"
>>>>        echo "override ${modname%.ko} * extra" >> \
>>>> -        $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
>>>> +        $RPM_BUILD_ROOT/etc/depmod.d/01openvswitch.conf
>>>>        echo "override ${modname%.ko} * weak-updates" >> \
>>>> -        $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
>>>> +        $RPM_BUILD_ROOT/etc/depmod.d/01openvswitch.conf
>>>>    done
>>>>    %clean
>>>> @@ -64,7 +66,7 @@ if [ -x "/sbin/weak-modules" ]; then
>>>>        for m in openvswitch vport-gre vport-stt vport-geneve \
>>>>                 vport-lisp vport-vxlan; do
>>>>            echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> -    done | /sbin/weak-modules --add-modules
>>>> +    done | /sbin/weak-modules --add-kernel
>>>>    fi
>>>>    %postun
>>>> @@ -76,14 +78,14 @@ if [ "$1" = 0 ]; then  # Erase, not upgrade
>>>>            for m in openvswitch vport-gre vport-stt vport-geneve \
>>>>                     vport-lisp vport-vxlan; do
>>>>            echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> -    done | /sbin/weak-modules --remove-modules
>>>> +    done | /sbin/weak-modules --remove-kernel
>>>>        fi
>>>>    fi
>>>>    %files
>>>>    %defattr(0644,root,root)
>>>>    /lib/modules/%{kernel}/extra/*.ko
>>>> -/etc/depmod.d/kmod-openvswitch.conf
>>>> +/etc/depmod.d/01openvswitch.conf
>>>>    %exclude /lib/modules/%{kernel}/modules.*
>>>>    %changelog
>>>> diff --git a/rhel/openvswitch-kmod-rhel6.spec.in b/rhel/openvswitch-kmod-rhel6.spec.in
>>>> index c6e6db5..28c7ce1 100644
>>>> --- a/rhel/openvswitch-kmod-rhel6.spec.in
>>>> +++ b/rhel/openvswitch-kmod-rhel6.spec.in
>>>> @@ -62,13 +62,15 @@ for flavor in %flavors_to_build ; do
>>>>             find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
>>>>    done
>>>>    install -d %{buildroot}%{_sysconfdir}/depmod.d/
>>>> +
>>>> +echo "search extra/openvswitch weak-updates/openvswitch updates extra built-in weak-updates" >> 01%{oname}.conf
>>>>    for module in %{buildroot}/lib/modules/%{kernel_version}/$INSTALL_MOD_DIR/*.ko;
>>>>    do
>>>>        modname="$(basename ${module})"
>>>> -    echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
>>>> -    echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf
>>>> +    echo "override ${modname%.ko} * extra/%{oname}" >> 01%{oname}.conf
>>>> +    echo "override ${modname%.ko} * weak-updates/%{oname}" >> 01%{oname}.conf
>>>>    done
>>>> -install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
>>>> +install -m 644 01%{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
>>>>    %post
>>>>    # Ensure that modprobe will find our modules.
>>>> @@ -79,7 +81,7 @@ if [ -x "/sbin/weak-modules" ]; then
>>>>        for m in openvswitch vport-gre vport-stt vport-geneve \
>>>>                 vport-lisp vport-vxlan; do
>>>>            echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> -    done | /sbin/weak-modules --add-modules
>>>> +    done | /sbin/weak-modules --add-kernel
>>>>    fi
>>>>    %postun
>>>> @@ -91,13 +93,13 @@ if [ "$1" = 0 ]; then  # Erase, not upgrade
>>>>            for m in openvswitch vport-gre vport-stt vport-geneve \
>>>>                     vport-lisp vport-vxlan; do
>>>>            echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> -    done | /sbin/weak-modules --remove-modules
>>>> +    done | /sbin/weak-modules --remove-kernel
>>>>        fi
>>>>    fi
>>>>    %files
>>>>    %defattr(644,root,root)
>>>> -/etc/depmod.d/%{oname}.conf
>>>> +/etc/depmod.d/01%{oname}.conf
>>>>    %clean
>>>>    rm -rf $RPM_BUILD_ROOT
>>>> diff --git a/rhel/openvswitch-kmod.files b/rhel/openvswitch-kmod.files
>>>> index 357c2e8..49262f3 100644
>>>> --- a/rhel/openvswitch-kmod.files
>>>> +++ b/rhel/openvswitch-kmod.files
>>>> @@ -1,3 +1,3 @@
>>>>    %defattr(644,root,root,755)
>>>>    /lib/modules/%2-%1
>>>> -/etc/depmod.d/openvswitch.conf
>>>> +/etc/depmod.d/01openvswitch.conf
>>>> -- 
>>>> 1.8.3.1
>>>>
>>>> _______________________________________________
>>>> dev mailing list
>>>> dev at openvswitch.org
>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev



More information about the dev mailing list