Ещё раз на тему дистродрочерства. Вопрос уже был, но возможно с момента, когда я его последний раз задавал, на ЛОРе наконец-то появились знающие спецы. Есть у меня старенький ноутбук 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