[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