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

Flavio Leitner fbl at sysclose.org
Fri Jan 26 18:41:48 UTC 2018


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).

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

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

-- 
Flavio




More information about the dev mailing list