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.