[ovs-dev] [PATCH v2] INSTALL.md: Add details about kernel module preference.
Darrell Ball
dlu998 at gmail.com
Tue Sep 27 19:57:02 UTC 2016
On Tue, Sep 27, 2016 at 8:21 AM, Guru Shetty <guru at ovn.org> wrote:
>
>
> On 26 September 2016 at 20:52, Darrell Ball <dlu998 at gmail.com> wrote:
>
>>
>>
>> On Mon, Sep 26, 2016 at 7:34 AM, Gurucharan Shetty <guru at ovn.org> wrote:
>>
>>> Signed-off-by: Gurucharan Shetty <guru at ovn.org>
>>> ---
>>> INSTALL.md | 23 ++++++++++++++++++++++-
>>> 1 file changed, 22 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/INSTALL.md b/INSTALL.md
>>> index bb40e4a..6ecefdf 100644
>>> --- a/INSTALL.md
>>> +++ b/INSTALL.md
>>> @@ -322,9 +322,30 @@ Building the Sources
>>> 4. Run "make install" to install the executables and manpages into the
>>> running system, by default under /usr/local.
>>>
>>> -5. If you built kernel modules, you may install and load them, e.g.:
>>> +5. If you built kernel modules, you may install them, e.g.:
>>>
>>> `% make modules_install`
>>> +
>>> + It is possible that you already had a Open vSwitch kernel module
>>> + installed on your machine that came from upstream Linux (in a
>>> + different directory). To make sure that you insert the Open vSwitch
>>> + kernel module you built from this repository, you should create a
>>> + depmod.d file that prefers your newly installed kernel modules over
>>> + the kernel modules from upstream Linux. The following snippet of
>>> + code achieves the same.
>>> +
>>> + ```
>>> + % config_file="/etc/depmod.d/openvswitch.conf"
>>> + % for module in datapath/linux/*.ko; do
>>> + modname="$(basename ${module})"
>>> + echo "override $modname * extra" >> "$config_file"
>>> + echo "override $modname * weak-updates" >> "$config_file"
>>> + done
>>> + % depmod -a
>>> + ```
>>> +
>>>
>>
>> I tried the script
>>
>> #!/bin/bash
>> config_file="/etc/depmod.d/openvswitch.conf"
>> for module in datapath/linux/*.ko; do
>> modname="$(basename ${module})"
>> echo "override $modname * extra" >> "$config_file"
>> echo "override $modname * weak-updates" >> "$config_file"
>> done
>> depmod -a
>>
>> on Ubuntu 14.04 and the script generated the expected
>> file contents
>>
>> dball at ubuntu:~/openvswitch/ovs/_gcc$ cat /etc/depmod.d/openvswitch.conf
>> override openvswitch.ko * extra
>> override openvswitch.ko * weak-updates
>> override vport-geneve.ko * extra
>> override vport-geneve.ko * weak-updates
>> override vport-gre.ko * extra
>> override vport-gre.ko * weak-updates
>> override vport-lisp.ko * extra
>> override vport-lisp.ko * weak-updates
>> override vport-stt.ko * extra
>> override vport-stt.ko * weak-updates
>> override vport-vxlan.ko * extra
>> override vport-vxlan.ko * weak-updates
>>
>
> Can you try the v3 that I sent. It is very similar to what we do for RHEL
> here:
> https://github.com/openvswitch/ovs/blob/master/rhel/
> openvswitch-kmod-rhel6.spec.in#L65
>
Looks better without the ".ko" suffix in config file
Acked-by: Darrell Ball <dlu998 at gmail.com>
>
>> However the "extra" directory where locally built ovs kos are installed
>> is not
>> taking precedence
>>
>> dball at ubuntu:~/openvswitch/ovs/_gcc$ sudo modinfo openvswitch
>> filename: /lib/modules/3.19.0-25-generic
>> /kernel/net/openvswitch/openvswitch.ko
>> license: GPL
>> description: Open vSwitch switching datapath
>> srcversion: EB1236CA2503B5F233DE125
>> depends: libcrc32c
>> intree: Y
>> vermagic: 3.19.0-25-generic SMP mod_unload modversions
>> signer: Magrathea: Glacier signing key
>> sig_key: 6A:AA:11:D1:8C:2D:3A:40:B1:B4
>> :DB:E5:BF:8A:D6:56:DD:F5:18:38
>> sig_hashalgo: sha512
>>
>> So I edited the script to do something minimal, although it may not
>> work for all distributions ?
>>
>> #!/bin/bash
>> config_file="/etc/depmod.d/openvswitch.conf"
>> echo "search extra" >> "$config_file"
>> depmod -a
>>
>> dball at ubuntu:~/openvswitch/ovs/_gcc$ cat /etc/depmod.d/openvswitch.conf
>> search extra
>>
>> and it seems to work (i.e. overrides my default config file) on Ubuntu
>>
>> dball at ubuntu:~/openvswitch/ovs/_gcc$ sudo modinfo openvswitch
>> filename: /lib/modules/3.19.0-25-generic/extra/openvswitch.ko
>> alias: net-pf-16-proto-16-family-ovs_packet
>> alias: net-pf-16-proto-16-family-ovs_flow
>> alias: net-pf-16-proto-16-family-ovs_vport
>> alias: net-pf-16-proto-16-family-ovs_datapath
>> version: 2.6.90
>> license: GPL
>> description: Open vSwitch switching datapath
>> srcversion: E30F336D9883ACAE1CB02EA
>> depends: nf_conntrack,nf_nat,nf_defrag
>> _ipv6,libcrc32c,nf_nat_ipv6,nf_nat_ipv4,gre,nf_defrag_ipv4
>> vermagic: 3.19.0-25-generic SMP mod_unload modversions
>> parm: udp_port:Destination UDP port (ushort)
>>
>>
>>
>>
>>
>>> + Finally, load the kernel modules that you need. e.g.:
>>> +
>>> `% /sbin/modprobe openvswitch`
>>>
>>> To verify that the modules have been loaded, run "/sbin/lsmod" and
>>> --
>>> 1.9.1
>>>
>>> _______________________________________________
>>> dev mailing list
>>> dev at openvswitch.org
>>> http://openvswitch.org/mailman/listinfo/dev
>>>
>>
>>
>
More information about the dev
mailing list