bcmwl driver fails to be built after -> kernel 3.8.X.X

Bug #1174351 reported by Thomas H St.Clair
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
bcmwl (Ubuntu)
New
Undecided
Unassigned

Bug Description

Using bcmwl-kernel-source_6.20.155.1+bdcom-0ubuntu6_amd64 and the new 3.9.0.0 kernel, a working driver fails to be built and install. My chip is BCM4322. I get an apport error and missing file error, and the wl module fails to build. This is happening on the saucy development cycle. Problem does not occur with any earlier kernels.

Revision history for this message
Thomas H St.Clair (thstclair) wrote :

from terminal:
(Reading database ... 186888 files and directories currently installed.)
Preparing to replace bcmwl-kernel-source 6.20.155.1+bdcom-0ubuntu6 (using bcmwl-kernel-source_6.20.155.1+bdcom-0ubuntu6_amd64.deb) ...
Removing all DKMS Modules
Done.
Unpacking replacement bcmwl-kernel-source ...
Setting up bcmwl-kernel-source (6.20.155.1+bdcom-0ubuntu6) ...
Loading new bcmwl-6.20.155.1+bdcom DKMS files...
Building only for 3.9.0-0-generic
Building for architecture x86_64
Building initial module for 3.9.0-0-generic
Traceback (most recent call last):
  File "/usr/share/apport/package-hooks/dkms_packages.py", line 22, in <module>
    import apport
ImportError: No module named apport
Error! Bad return status for module build on kernel: 3.9.0-0-generic (x86_64)
Consult /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/make.log for more information.
FATAL: Module wl not found.
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.9.0-0-generic

Revision history for this message
Thomas H St.Clair (thstclair) wrote :

from make.log:
DKMS make.log for bcmwl-6.20.155.1+bdcom for kernel 3.9.0-0-generic (x86_64)
Mon Apr 29 13:04:33 EDT 2013
make: Entering directory `/usr/src/linux-headers-3.9.0-0-generic'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  LD /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/built-in.o
  CC [M] /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/shared/linux_osl.o
  CC [M] /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_linux.o
  CC [M] /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_iw.o
  CC [M] /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.o
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:1578:2: warning: initialization from incompatible pointer type [enabled by default]
  .set_tx_power = wl_cfg80211_set_tx_power,
  ^
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:1578:2: warning: (near initialization for ‘wl_cfg80211_ops.set_tx_power’) [enabled by default]
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:1579:2: warning: initialization from incompatible pointer type [enabled by default]
  .get_tx_power = wl_cfg80211_get_tx_power,
  ^
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:1579:2: warning: (near initialization for ‘wl_cfg80211_ops.get_tx_power’) [enabled by default]
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c: In function ‘wl_update_bss_info’:
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:2025:3: warning: passing argument 1 of ‘cfg80211_put_bss’ from incompatible pointer type [enabled by default]
   cfg80211_put_bss(bss);
   ^
In file included from /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:33:0:
include/net/cfg80211.h:3302:6: note: expected ‘struct wiphy *’ but argument is of type ‘struct cfg80211_bss *’
 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
      ^
/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:2025:3: error: too few arguments to function ‘cfg80211_put_bss’
   cfg80211_put_bss(bss);
   ^
In file included from /var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.c:33:0:
include/net/cfg80211.h:3302:6: note: declared here
 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
      ^
make[1]: *** [/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build/src/wl/sys/wl_cfg80211.o] Error 1
make: *** [_module_/var/lib/dkms/bcmwl/6.20.155.1+bdcom/build] Error 2
make: Leaving directory `/usr/src/linux-headers-3.9.0-0-generic'

Revision history for this message
Thomas H St.Clair (thstclair) wrote :
Download full text (3.9 KiB)

from dkms_packages.py
#!/usr/bin/python3
#
# Dynamic Kernel Module Support (DKMS) <email address hidden>
# Copyright (C) 2009 Dell, Inc.
# by Mario Limonciello
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#

import apport
from apport.hookutils import *
import sys
import subprocess, optparse

from datetime import datetime

optparser = optparse.OptionParser('%prog [options]')
optparser.add_option('-m', help="Specify the DKMS module to find the package for",
                     action='store', type='string', dest='module')
optparser.add_option('-v', help="Specify the DKMS version to find the package for",
                     action='store', type='string', dest='version')
optparser.add_option('-k', help="Specify the kernel version",
                     action='store', type='string', dest='kernel')
options=optparser.parse_args()[0]

if not options.module or not options.version:
    sys.stderr.write('ERROR (dkms apport): both -m and -v are required\n')
    sys.exit(2)

package=packaging.get_file_package('/usr/src/' + options.module + '-' + options.version)
if package is None:
    sys.stderr.write('ERROR (dkms apport): binary package for %s: %s not found\n' % (options.module,options.version))
    sys.exit(1)

if options.kernel:
    # TODO: Ubuntu specific
    kernel_package = "linux-headers-" + options.kernel

    supported_kernel = True
    try:
        supported_kernel = apport.packaging.is_distro_package(kernel_package)
    except ValueError as e:
        if str(e) == 'package does not exist':
            supported_kernel = False

    if not supported_kernel:
        sys.stderr.write('ERROR (dkms apport): kernel package %s is not supported\n' % (kernel_package))
        sys.exit(1)

make_log=os.path.join('/var','lib','dkms',options.module,options.version,'build','make.log')

report = apport.Report('Package')
report['Package'] = package
try:
    report['SourcePackage'] = apport.packaging.get_source(package)
except ValueError:
    sys.stderr.write('ERROR (dkms apport): unable to determine source package for %s\n' % package)
    sys.exit(3)
try:
    version = packaging.get_version(package)
except ValueError:
    version = '(not installed)'
if version is None:
    version = '(not installed)'

if report['SourcePackage'] == 'fglrx-installer':
    fglrx_make_log = os.path.join('/var','lib','dkms',options.module,options.version,'build','make.sh.log')
    attach_file_if_exists(report, fglrx_make_log, 'FglrxBuildLog')

report['PackageVersion'] = version
report['Title'] = "%...

Read more...

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. This particular bug has already been reported and is a duplicate of bug 1157880, so it is being marked as such. Please look at the other bug report to see if there is any missing information that you can provide, or to see if there is a workaround for the bug. Additionally, any further discussion regarding the bug should occur in the other report. Feel free to continue to report any other bugs you may find.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.