[ovs-discuss] insmod: error inserting 'datapath/linux/brcompat.ko': -1 Invalid module format

Ben Pfaff blp at nicira.com
Tue Jun 4 16:27:30 UTC 2013


On Tue, Jun 04, 2013 at 04:43:17PM +0200, Muhammad Asad wrote:
> When I try to run the following command:
> 
> root at myPCName:~/ovs-vxlan# insmod datapath/linux/brcompat.ko
> 
> This error comes up:
> 
> insmod: error inserting 'datapath/linux/brcompat.ko': -1 Invalid
> module format
> 
> How to fix this one?

Read INSTALL.

7. If you built kernel modules, you may load them with "insmod", e.g.:

      % insmod datapath/linux/openvswitch.ko

   You may need to specify a full path to insmod, e.g. /sbin/insmod.
   To verify that the modules have been loaded, run "/sbin/lsmod" and
   check that openvswitch is listed.

   If the "insmod" operation fails, look at the last few kernel log
   messages (e.g. with "dmesg | tail"):

      - The message "openvswitch: exports duplicate symbol
        br_should_route_hook (owned by bridge)" means that the bridge
        module is loaded.  Run "/sbin/rmmod bridge" to remove it.

        If "/sbin/rmmod bridge" fails with "ERROR: Module bridge does
        not exist in /proc/modules", then the bridge is compiled into
        the kernel, rather than as a module.  Open vSwitch does not
        support this configuration (see "Build Requirements", above).

      - The message "openvswitch: exports duplicate symbol
        dp_ioctl_hook (owned by ofdatapath)" means that the ofdatapath
        module from the OpenFlow reference implementation is loaded.
        Run "/sbin/rmmod ofdatapath" to remove it.  (You might have to
        delete any existing datapaths beforehand, using the "dpctl"
        program included with the OpenFlow reference implementation.
        "ovs-dpctl" will not work.)

      - Otherwise, the most likely problem is that Open vSwitch was
        built for a kernel different from the one into which you are
        trying to load it.  Run "modinfo" on openvswitch.ko and on
        a module built for the running kernel, e.g.:

           % /sbin/modinfo openvswitch.ko
           % /sbin/modinfo /lib/modules/`uname -r`/kernel/net/bridge/bridge.ko

        Compare the "vermagic" lines output by the two commands.  If
        they differ, then Open vSwitch was built for the wrong kernel.

      - If you decide to report a bug or ask a question related to
        module loading, please include the output from the "dmesg" and
        "modinfo" commands mentioned above.

   There is an optional module parameter to openvswitch.ko called
   vlan_tso that enables TCP segmentation offload over VLANs on NICs
   that support it. Many drivers do not expose support for TSO on VLANs
   in a way that Open vSwitch can use but there is no way to detect
   whether this is the case. If you know that your particular driver can
   handle it (for example by testing sending large TCP packets over VLANs)
   then passing in a value of 1 may improve performance. Modules built for
   Linux kernels 2.6.37 and later, as well as specially patched versions
   of earlier kernels, do not need this and do not have this parameter. If
   you do not understand what this means or do not know if your driver
   will work, do not set this.

   Once you verify that the kernel modules load properly, you should
   install them:

      % make modules_install



More information about the discuss mailing list