我按照指南进行操作
https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013%209343
并设法使一切正常运行。(后来我为 Wi-Fi 安装了一个额外的软件包。)
然后我决定安装最新的 Linux 内核(4.2)并使用此处预编译的内核:
安装后,Wi-Fi 和音频不再工作。
我尝试使用新内核再次安装 WiFi 模块,但得到的结果如下:
DKMS make.log for broadcom-sta-6.30.223.248 for kernel 4.2.0-7-exton (x86_64)
mer 9 set 2015, 17.42.58, CEST
/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/4.2.0-7-exton/build M=`pwd`
make[1]: ingresso nella directory "/usr/src/linux-headers-4.2.0-7-exton"
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_64
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
/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 ‘memcpy’ discards ‘const’ qualifier from pointer target type
memcpy(params.key, key.data, params.key_len);
^
In file included from ./arch/x86/include/asm/string.h:4:0,
from include/linux/string.h:17,
from include/linux/bitmap.h:8,
from include/linux/cpumask.h:11,
from ./arch/x86/include/asm/cpumask.h:4,
from ./arch/x86/include/asm/msr.h:10,
from ./arch/x86/include/asm/processor.h:20,
from ./arch/x86/include/asm/thread_info.h:49,
from include/linux/thread_info.h:54,
from ./arch/x86/include/asm/preempt.h:6,
from include/linux/preempt.h:64,
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:
./arch/x86/include/asm/string_64.h:34:14: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void *memcpy(void *to, const void *from, size_t len);
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_station’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1444:20: error: ‘STATION_INFO_TX_BITRATE’ undeclared (first use in this function)
sinfo->filled |= STATION_INFO_TX_BITRATE;
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1444:20: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1457:20: error: ‘STATION_INFO_SIGNAL’ undeclared (first use in this function)
sinfo->filled |= STATION_INFO_SIGNAL;
^
/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:4029: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:4029: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:4029: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:4029:1: note: declared here
cfg80211_inform_bss(struct wiphy *wiphy,
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_notify_connect_status’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2050:4: error: too few arguments to function ‘cfg80211_disconnected’
cfg80211_disconnected(ndev, 0, NULL, 0, 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:4584:6: note: declared here
void cfg80211_disconnected(struct net_device *dev, u16 reason,
^
scripts/Makefile.build:258: set di istruzioni per l'obiettivo "/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o" non riuscito
make[2]: *** [/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o] Errore 1
Makefile:1398: set di istruzioni per l'obiettivo "_module_/var/lib/dkms/broadcom-sta/6.30.223.248/build" non riuscito
make[1]: *** [_module_/var/lib/dkms/broadcom-sta/6.30.223.248/build] Errore 2
make[1]: uscita dalla directory "/usr/src/linux-headers-4.2.0-7-exton"
Makefile:158: set di istruzioni per l'obiettivo "all" non riuscito
make: *** [all] Errore 2
关于音频,我可以看到右上角的图标,但我的音频设备未列出。以下是aplay -l
的输出:
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
更新:我尝试从 broadcom 官方网站下载官方 linux 64 位驱动程序(版本 6.30.223.248)。以下是 make 命令的输出:
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: ingresso nella directory "/usr/src/linux-headers-4.2.0-7-exton"
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CC [M] /home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.o
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c: In function ‘wl_alloc_linux_if’:
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c:1310:64: error: macro "alloc_netdev" requires 4 arguments, but only 3 given
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
^
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c:1310:8: error: ‘alloc_netdev’ undeclared (first use in this function)
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
^
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c:1310:8: note: each undeclared identifier is reported only once for each function it appears in
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c: In function ‘wl_dump_ver’:
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c:2049:3: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
__DATE__, __TIME__, EPI_VERSION_STR);
^
/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.c:2049:13: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
__DATE__, __TIME__, EPI_VERSION_STR);
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: set di istruzioni per l'obiettivo "/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.o" non riuscito
make[2]: *** [/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248/src/wl/sys/wl_linux.o] Errore 1
Makefile:1398: set di istruzioni per l'obiettivo "_module_/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248" non riuscito
make[1]: *** [_module_/home/mario/Scaricati/hybrid-v35_64-nodebug-pcoem-6_30_223_248] Errore 2
make[1]: uscita dalla directory "/usr/src/linux-headers-4.2.0-7-exton"
Makefile:140: set di istruzioni per l'obiettivo "all" non riuscito
make: *** [all] Errore 2
答案1
我在我的电脑上运行着内核 4.2戴尔 XPS 9343。
我放弃使用 Broadcom Wi-Fi 卡,而是安装了 Intel 7265 卡,这是某些配置的一个选项。
无论我进行了多少次冷启动,我的音频都无法正常工作,直到今天,我才使用alsamixer
从控制台并取消静音/切换设备上的每个频道 - 特别是默认情况下不可见的频道 - 从屏幕右侧。
当我这样做的时候,我听到了“砰”的一声,现在我的音频可以正常工作了。
答案2
Debianbroadcom-sta
驱动程序可以修补以支持 4.2 内核,我从 Arch 中挑选了补丁并将其添加到 Stretch 版本中,并且在此处提供。
这是 dkms deb如果您不想使用 debian 文件夹来构建您自己的软件包。
答案3
我设法解决了我的问题。我更新了官方 Debian Wiki,添加了一些新说明,以实现完美的配置。以下是链接:
https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013%209343
我特别贡献了:
- 在“Windows 双重启动”部分中,我解释了一些常见问题及其解决方法。
- 我添加了其他有关 Wifi 安装的说明,描述了如何处理您当前的 wifi 卡(博通或英特尔)。我已经解释了如何为默认 Debian 内核和更新的内核 4.2 安装英特尔卡驱动程序
- 我添加了省电部分,在其中解释了如何延长电池使用时间。