Ponownie zainstalowałem sterownik w systemie Windows dla karty sieciowej Broadcom, a potem moje WiFi całkowicie przestało działać na Ubuntu (16.04).
Próbowałem ponownie zainstalować sterowniki, używając następujących poleceń:
1. sudo apt-get purge bcmwl-kernel-source
2. sudo apt-get install bcmwl-kernel-source
Ale to nie pomogło
Dane wyjściowe drugiego polecenia (install bcmwl-kernel-source):
Unpacking bcmwl-kernel-source (6.30.223.271+bdcom-0ubuntu1~1.2) ...
Setting up bcmwl-kernel-source (6.30.223.271+bdcom-0ubuntu1~1.2) ...
Loading new bcmwl-6.30.223.271+bdcom DKMS files...
First Installation: checking all kernels...
Building only for 4.15.0-24-generic
Building for architecture x86_64
Building initial module for 4.15.0-24-generic
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 (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
root@roman-Lenovo-G510:~# apt-get install bcmwl-kernel-source
Reading package lists... Done
Building dependency tree
Reading state information... Done
bcmwl-kernel-source is already the newest version (6.30.223.271+bdcom-0ubuntu1~1.2).
To polecenie lspci -nn -d 14e4
generuje:
08:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
Czy możesz mi powiedzieć, jak rozwiązać mój problem?
/var/crash/bcmwl-kernel-source.0.crash
ProblemType: Package
DKMSBuildLog:
DKMS make.log for bcmwl-6.30.223.271+bdcom for kernel 4.15.0-24-generic (x86_64)
Вт июл 3 16:26:40 MSK 2018
make: Entering directory '/usr/src/linux-headers-4.15.0-24-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
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 long 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 *);
^
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: recipe for target '/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o' failed
make[1]: *** [/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o] Error 1
Makefile:1552: recipe for target '_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build' failed
make: *** [_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build] Error 2
make: Leaving directory '/usr/src/linux-headers-4.15.0-24-generic'
DKMSKernelVersion: 4.15.0-24-generic
Date: Tue Jul 3 16:26:46 2018
DuplicateSignature: dkms:bcmwl-kernel-source:6.30.223.271+bdcom-0ubuntu1~1.2:/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]
Package: bcmwl-kernel-source 6.30.223.271+bdcom-0ubuntu1~1.2
PackageVersion: 6.30.223.271+bdcom-0ubuntu1~1.2
SourcePackage: bcmwl
Title: bcmwl-kernel-source 6.30.223.271+bdcom-0ubuntu1~1.2: bcmwl kernel module failed to build
/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log
DKMS make.log for bcmwl-6.30.223.271+bdcom for kernel 4.15.0-24-generic (x86_64)
Чт июл 5 16:26:16 MSK 2018
make: Entering directory '/usr/src/linux-headers-4.15.0-24-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
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 long 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 *);
^
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: recipe for target '/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o' failed
make[1]: *** [/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o] Error 1
Makefile:1552: recipe for target '_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build' failed
make: *** [_module_/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build] Error 2
make: Leaving directory '/usr/src/linux-headers-4.15.0-24-generic'
/var/crash/bcmwl-kernel-source.0.crash
i/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log
więcej informacji.sudo apt-get install libelf-dev
a następnie wyczyść i zainstaluj ponownie.Odpowiedzi:
Kanoniczny zaktualizowany stos HWE dla Ubuntu 16.04 do jądra 4.15. Ale zapomnieli zaktualizować sterownik bezprzewodowy Broadcom, aby można go było zbudować. Jest to krytyczny i bardzo głupi błąd, który spowoduje problemy dla wielu osób korzystających z LTS.
Teraz problem został rozwiązany i została zbudowana kompatybilna wersja sterownika
Ten problem można rozwiązać, instalując kompatybilną wersję,
bcmwl-kernel-source
która powinna bazować na jądrach 4.15.Pobierz http://archive.ubuntu.com/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu1~1.3_amd64.deb
i zainstaluj za pomocą
dkpg
.Można to zrobić przez
Windows w ogóle nie jest powiązany.
Problem polega na tym, że masz jądro, które nie jest kompatybilne ze sterownikiem.
Ważne: Jeśli nie masz innego połączenia sieciowego niż Broadcom Wi-Fi, możesz uruchomić system z poprzedniego jądra za pomocą menu grub i zainstalować sterownik. Powinien być zbudowany dla wszystkich jąder.
źródło
proposed
repozytorium jest włączone. Nic nie jest zepsute dla tych, którzy nie jadą przed pociągiem.W odpowiedzi na ładną odpowiedź Pilot6 na to pytanie, wygląda na to, że oficjalna poprawka
xenial
(tj. Nie wymagająca instalacji pakietu odbionic
) została wydana (jeśli używasz pakietubroadcom-sta
), lub też zatwierdzona (jeśli używasz pakietu,bcmwl
który zapewniabcmwl-kernel-source
).Aby uzyskać więcej informacji, zobacz:
broadcom-sta: https://bugs.launchpad.net/ubuntu/+source/broadcom-sta/+bug/1777444
bcmwl: https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1777646
źródło