Bad return status for module build on kernel: 4.15.0-24-generic (i686)

Asked by achevrier on 2018-07-04

During last update of the kernel (4.15.0-24-generic), an error appeared. Since, if I use this kernel, the wifi hardware of my computer does not run any more. To get it running, I have to go back to previous kernel installed.

1. Configuration:
================
- OS : Ubuntu 16.04 LTS
- Computer: DELL VOSTRO 1510

2. Problem appeared during:
=========================
- Kernel updating process to 4.15.0-24-generic (i686)

3. Error returned during update process
=================================
Error! Bad return status for module build on kernel: 4.15.0-24-generic (i686)
Consult /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log for more information.
Paramétrage de linux-headers-generic-hwe-16.04 (4.15.0.24.46) ...
Paramétrage de linux-generic-hwe-16.04 (4.15.0.24.46) ...
Traitement des actions différées (« triggers ») pour linux-image-4.15.0-24-generic (4.15.0-24.26~16.04.1) ...
/etc/kernel/postinst.d/dkms:
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/bcmwl-kernel-source.0.crash'
Error! Bad return status for module build on kernel: 4.15.0-24-generic (i686)
Consult /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log for more information.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.15.0-24-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

4. Log in make.log:
================
DKMS make.log for bcmwl-6.30.223.271+bdcom for kernel 4.15.0-24-generic (i686)
lundi 2 juillet 2018, 22:06:09 (UTC+0200)
make : on entre dans le répertoire « /usr/src/linux-headers-4.15.0-24-generic »
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M] /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.o
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c: In function ‘osl_os_get_image_block’:
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:1083:26: warning: passing argument 2 of ‘kernel_read’ makes pointer from integer without a cast [-Wint-conversion]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
                          ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/include/linuxver.h:65,
                 from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:2858:16: note: expected ‘void *’ but argument is of type ‘loff_t {aka long long int}’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:1083:37: warning: passing argument 3 of ‘kernel_read’ makes integer from pointer without a cast [-Wint-conversion]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
                                     ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/include/linuxver.h:65,
                 from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:2858:16: note: expected ‘size_t {aka unsigned int}’ but argument is of type ‘char *’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:1083:42: warning: passing argument 4 of ‘kernel_read’ makes pointer from integer without a cast [-Wint-conversion]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
                                          ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/include/linuxver.h:65,
                 from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:25:
./include/linux/fs.h:2858:16: note: expected ‘loff_t * {aka long long int *}’ but argument is of type ‘int’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
contentmap: Vidange: invalid offset
  CC [M] /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c: In function ‘wl_init_timer’:
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:2359:2: error: implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
  init_timer(&t->timer);
  ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:2360:10: error: ‘struct timer_list’ has no member named ‘data’
  t->timer.data = (ulong) t;
          ^
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:2361:20: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
  t->timer.function = wl_timer;
                    ^
cc1: some warnings being treated as errors
scripts/Makefile.build:332 : la recette pour la cible « /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o » a échouée
make[1]: *** [/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o] Erreur 1
Makefile:1552 : la recette pour la cible « _module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build » a échouée
make: *** [_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build] Erreur 2
make : on quitte le répertoire « /usr/src/linux-headers-4.15.0-24-generic »

5. Effect of the error on computer usage
==================================
The usage of the kernel 4.15.0-24-generic goes to the impossibility to get wifi hardware running.

6. Only solution found: go back to previous kernel
========================================
The only way I found to solve this, is to start with a previous kernel.

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu initramfs-tools Edit question
Assignee:
No assignee Edit question
Solved by:
actionparsnip
Solved:
2018-07-04
Last query:
2018-07-04
Last reply:
2018-07-04

I suggest you report a bug with the faulty kernel.

Your CPU is 64bit so why 32bit Ubuntu? Seems strange.

Manfred Hampl (m-hampl) said : #2

For diagnostic purposes:

How did you install the 4.15.0-24-generic kernel on Ubuntu 16.04? Using linux-generic-hwe-16.04 from xenial-proposed?
Which version was the old one, which is working?

Maybe that problem is already taken care of in Bug #1777444 and Bug #1778097

The package broadcom-sta-dkms from xenial-proposed may help.

achevrier (a-chevrier-pro) said : #3

@actionparsnip:

> report a bug with the faulty kernel

I've tried to understand how to report a bug works in launchpad, but did not find ... That is why I posted a question. I'm going to search better. Sorry for that.

> Your CPU is 64bit so why 32bit Ubuntu

Huhu. Thanks a lot. I've never checked this since I've been exclusively using Ubuntu - june 2006 Dapper Drake !. I'm stupid.
I've checked:
- grep flags /proc/cpuinfo command returns a "lm" flag
- cat /proc/cpuinfo command returns
  * model name: Intel(R) Core(TM)2 Duo CPU T5870 @ 2.00GHz
  * flags: .../... lm .../...
  * clflush size : 64
Haha ... new perspectives for me with the new 18.04 LTS I will install next October. Super. Thank you for this information.

@Manfred (m-hampl)

> How did you install the 4.15.0-24-generic kernel on Ubuntu 16.04

sudo apt-get update, sudo apt-get upgrade, sudo apt-get dist-upgrade

Maybe I would have avoid using dist-upgrade.

> Which version was the old one, which is working?

I'm currently typing this text, being connected, using the old kernel.
Then, in command line:
cat /proc/version
Linux version 4.13.0-45-generic (buildd@lgw01-amd64-020) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)) #50~16.04.1-Ubuntu SMP Wed May 30 11:16:09 UTC 2018

> Maybe that problem is already taken care of in Bug #1777444 and Bug #1778097

It seams Bug #1777444 suggests a solution in testing configuration.
I'll see if I can contribute to this test.

At this step, I'm not sure what is the best thing to do: should it be best to wait for couple of week before using upper kernel version, and keep using this old version which works fine ? Hummm ... having a recent kernel might be preferred, or ?

Thank you.

If the hardware is working and there are no huge security issues with the current kernel then updating it isn't really necessary

Manfred Hampl (m-hampl) said : #5

Remark: The information whether the CPU is capable of 32 and/or 64 bit computing is best displayed with the "lscpu" command.

achevrier (a-chevrier-pro) said : #6

Thanks actionparsnip, that solved my question.

Jeremy (wa113y3s) said : #7

I think the bcmwl-kernel-source that is patched for 4.15 is still in xenial-proposed

Same problem here,

Error! Bad return status for module build on kernel: 4.15.0-24-generic (x86_64)
Consult /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log for more information.
modprobe: FATAL: Module wl not found in directory /lib/modules/4.15.0-24-generic
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.122ubuntu8.11) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-24-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

Bug #1778097 worked for me,Thank you