Làm cách nào tôi có thể sửa lỗi Wifi trình điều khiển Broadcom với kernel 4.15.0-xx trên Ubuntu 16.04


24

Tôi đã cài đặt lại trình điều khiển trên Windows cho Broadcom Network Adaptor và sau đó WiFi của tôi đã ngừng hoạt động hoàn toàn trên Ubuntu (16.04).

Tôi đã cố gắng cài đặt lại trình điều khiển, sử dụng các lệnh này:

1. sudo apt-get purge bcmwl-kernel-source
2. sudo apt-get install bcmwl-kernel-source

Nhưng nó không giúp được gì

Đầu ra của lệnh thứ hai (cài đặt 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).

Lệnh này lspci -nn -d 14e4xuất ra:

08:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)

Bạn có thể cho tôi biết làm thế nào để khắc phục vấn đề của tôi?

/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'

Vui lòng đính kèm nội dung /var/crash/bcmwl-kernel-source.0.crash/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.logđể biết thêm thông tin.
SudoSURoot

@SudoSURoot Xong!
John Kent

Tôi thấy cả hai bản ghi đều nói: vui lòng cài đặt libelf-dev, libelf-devel hoặc elfutils-libelf-devel. Hãy thử chạy: sudo apt-get install libelf-devvà sau đó thanh lọc và cài đặt lại.
SudoSURoot

@Terrance Có thể gợi ý cho tôi cách đi đến kernel đó không?
John Kent

//, Đây là toàn văn lỗi tôi nhận được từ lời nhắc "phát hiện sự cố hệ thống": bcmwl-kernel-source 6.30.223.271 + bdcom-0ubfox1 ~ 1.2: mô-đun bcmwl kerne l không thể xây dựng Tôi đang ở trong thị trường một máy tính mới và với BS như thế này, hệ điều hành mac mới bắt đầu trông ngày càng hấp dẫn hơn.
Nathan Basan

Câu trả lời:


31

Canonical đã cập nhật ngăn xếp HWE cho Ubuntu 16.04 lên kernel 4.15. Nhưng họ đã quên cập nhật trình điều khiển không dây Broadcom, vì vậy nó có thể được xây dựng. Đây là một lỗi nghiêm trọng và rất ngu ngốc, sẽ gây rắc rối cho nhiều người sử dụng LTS.

Bây giờ vấn đề đang được khắc phục và một phiên bản trình điều khiển tương thích đã được xây dựng

Vấn đề này có thể được giải quyết bằng cách cài đặt một phiên bản tương thích bcmwl-kernel-sourcesẽ được xây dựng trên các hạt nhân 4.15.

Tải xuống http://archive.ubfox.com/ubfox/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubfox1~1.3_amd64.deb

và cài đặt nó bằng cách sử dụng dkpg.

Điều này có thể được thực hiện bởi

wget http://archive.ubuntu.com/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu1~1.3_amd64.deb
sudo dpkg -i bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu1~1.3_amd64.deb

Windows hoàn toàn không liên quan.

Vấn đề là bạn có một kernel không tương thích với trình điều khiển.

Quan trọng: Nếu bạn không có bất kỳ kết nối mạng nào khác ngoài Wi-Fi Broadcom, bạn có thể khởi động với kernel trước bằng menu grub và cài đặt trình điều khiển. Nó nên xây dựng cho tất cả các hạt nhân.


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Thomas Ward

@DavidFoerster Tôi đã thay đổi câu trả lời và đưa ra một liên kết đến trình điều khiển được xây dựng cho 16.04. Đây là phiên bản sẽ sớm được thêm vào repos. Không có sự khác biệt ngoại trừ số phiên bản, nhưng bạn chính xác rằng tốt hơn là sử dụng số này để nâng cấp trong tương lai nếu có.
Pilot6

Họ cũng đã phá vỡ trình điều khiển r8168-dkms. Xem câu trả lời của tôi tại askubfox.com/questions/1052971/ để biết thêm chi tiết.
heynnema

@heynnema Làm thế nào để tất cả các bạn có được kernel 4.15? Là proposedrepo kích hoạt. Không có gì bị phá vỡ cho những người không chạy trước tàu.
Pilot6

@ Pilot6 như bạn đã đề cập trong câu trả lời của mình, "Ngăn xếp HWE được cập nhật của Canonical cho Ubuntu 16.04 thành kernel 4.15." Những người dùng khác cũng nói điều tương tự ... rằng họ đang chạy 4.15 trên 16.04 LTS và như liên kết của tôi cho thấy, cũng đang yêu cầu các trình điều khiển mới hơn phải hoạt động lại 100%. Tôi chưa hỏi liệu họ có đang đề xuất hay không.
heynnema

5

Đã cung cấp cho câu trả lời hay của Pilot6 cho câu hỏi này, có vẻ như một bản sửa lỗi chính thức cho xenial(tức là không yêu cầu gói cài đặt từ bionic) đã được phát hành (nếu bạn sử dụng gói broadcom-sta) hoặc nếu không, nếu bạn sử dụng gói bcmwlcung cấp bcmwl-kernel-source).

Để biết thêm thông tin, xem:

broadcom-sta: https://bugs.launchpad.net/ubfox/+source/broadcom-sta/+orms/1777444

bcmwl: https://bugs.launchpad.net/ubfox/+source/bcmwl/+orms/1777646

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.