LINUX.ORG.RU

Опять про broadcom-sta-dkms

 , , ,


0

1

Ещё раз на тему дистродрочерства. Вопрос уже был, но возможно с момента, когда я его последний раз задавал, на ЛОРе наконец-то появились знающие спецы. Есть у меня старенький ноутбук Lenovo E46L, в нём WiFi-адаптер от Broadcom. Стабильно вафля работает только с проприетарным драйвером broadcom-sta. Так вот, я не могу поставить на этот ноут один из самых популярных дистрибутивов: Debian, Ubuntu или Mint из-за кривизны сборки пакета broadcom-sta-dkms, во всех трех дистрах на протяжении нескольких версий один и тот же баг и никак не могут пофиксить, ну не собирается он хоть ты тресни.
Последняя попытка была в эти выходные, накатил я на ноут Xubuntu Vivid Vervet. Сразу после установки лезу в консоль и устанавливаю broadcom-sta-dkms... ну и опять они, вё те же знакомые ошибки:

Error! Bad return status for module build on kernel: 3.19.0-26-generic (i686)
Consult /var/lib/dkms/broadcom-sta/6.30.223.248/build/make.log for more information.
А в логе:
DKMS make.log for broadcom-sta-6.30.223.248 for kernel 3.19.0-26-generic (i686)
Сб. авг. 29 11:07:09 MSK 2015
/bin/sh: 1: [: Illegal number: 
/bin/sh: 1: [: Illegal number: 
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
KBUILD_NOPEDANTIC=1 make -C /lib/modules/3.19.0-26-generic/build M=`pwd`
make[1]: Entering directory '/usr/src/linux-headers-3.19.0-26-generic'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_32
  LD      /var/lib/dkms/broadcom-sta/6.30.223.248/build/built-in.o
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/shared/linux_osl.o
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_linux.o
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_iw.o
  CC [M]  /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o
In file included from ./arch/x86/include/asm/string.h:2:0,
                 from include/linux/string.h:17,
                 from ./arch/x86/include/asm/page_32.h:34,
                 from ./arch/x86/include/asm/page.h:13,
                 from ./arch/x86/include/asm/thread_info.h:11,
                 from include/linux/thread_info.h:54,
                 from ./arch/x86/include/asm/preempt.h:6,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/include/linuxver.h:40,
                 from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:26:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_key’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1390:9: warning: passing argument 1 of ‘__builtin_memcpy’ discards ‘const’ qualifier from pointer target type
  memcpy(params.key, key.data, params.key_len);
         ^
./arch/x86/include/asm/string_32.h:182:42: note: in definition of macro ‘memcpy’
 #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
                                          ^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1390:9: note: expected ‘void *’ but argument is of type ‘const u8 *’
  memcpy(params.key, key.data, params.key_len);
         ^
./arch/x86/include/asm/string_32.h:182:42: note: in definition of macro ‘memcpy’
 #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
                                          ^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: At top level:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1778:2: warning: initialization from incompatible pointer type
  .get_station = wl_cfg80211_get_station,
  ^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1778:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’)
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_inform_single_bss’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2013:9: error: incompatible type for argument 3 of ‘cfg80211_inform_bss’
  cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
         ^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:3982:1: note: expected ‘enum cfg80211_bss_frame_type’ but argument is of type ‘const u8 *’
 cfg80211_inform_bss(struct wiphy *wiphy,
 ^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2015:3: warning: passing argument 7 of ‘cfg80211_inform_bss’ makes integer from pointer without a cast
   (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
   ^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:3982:1: note: expected ‘u16’ but argument is of type ‘const u8 *’
 cfg80211_inform_bss(struct wiphy *wiphy,
 ^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2015:26: warning: passing argument 8 of ‘cfg80211_inform_bss’ makes pointer from integer without a cast
   (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
                          ^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:3982:1: note: expected ‘const u8 *’ but argument is of type ‘size_t’
 cfg80211_inform_bss(struct wiphy *wiphy,
 ^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2013:9: error: too few arguments to function ‘cfg80211_inform_bss’
  cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
         ^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:3982:1: note: declared here
 cfg80211_inform_bss(struct wiphy *wiphy,
 ^
scripts/Makefile.build:257: recipe for target '/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o' failed
make[2]: *** [/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o] Error 1
Makefile:1394: recipe for target '_module_/var/lib/dkms/broadcom-sta/6.30.223.248/build' failed
make[1]: *** [_module_/var/lib/dkms/broadcom-sta/6.30.223.248/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.19.0-26-generic'
Makefile:158: recipe for target 'all' failed
make: *** [all] Error 2
И это чё? Это у нас «стабильностью» зовётся?

★★★★★

Что за модель адаптера? Может попробовать поставить bcmwl-kernel-source? С ним у меня проблем нет.

superuser ★★★★☆
()

Не знаю, у меня Lenovo G580, выкинул броадком, пропатчил биос на предмет «белого списка» аппаратного обеспечения, поставил такой же Интел с барахолки за 5 баксов, только на открытом драйвере и горя, чувак, не знаю)))

Twissel ★★★★★
()

помнится, в своё время были проблемы с этим броадкомом на старом ноуте (на генте), решилось тупым удалением функций, вызывающих ошибки компиляции, из исходников. Но ЕМНИП, проблема была несколько отличная от описанной...

Sahas ★★★★☆
()
Ответ на: комментарий от Twissel

Можно конечно выкинуть broadcom, но это неспортивно. Я не испытываю антипатии перед проприетарными драйверами, я вообще считаю, что во всех случаях нужно использовать драйвер от производителя. broadcom-sta (после сборки - модуль wl.ko) у меня отлично собирался в Slackware, OpenSUSE, Altlinux и Fedora и wifi с ним работал с нормальной скоростью. А вот самые многочисленные команды разработчиков Debian и Ubuntu его собрать не могут.

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

bcmwl-kernel-source это тоже wl.ko и тоже от производителя и по крайней мере он собирается и работает хорошо. В bcmwl-kernel-source убунтовцы периодически добавляют поддержку распоследних ядер, а вот на broadcom-sta может забили хер.

superuser ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.