Dell XPS 13 9343 上的带内核 4.2 的 Debian 8.2

Dell XPS 13 9343 上的带内核 4.2 的 Debian 8.2

我按照指南进行操作

https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013%209343

并设法使一切正常运行。(后来我为 Wi-Fi 安装了一个额外的软件包。)

然后我决定安装最新的 Linux 内核(4.2)并使用此处预编译的内核:

http://news.softpedia.com/news/how-to-install-linux-kernel-4-2-on-ubuntu-debian-and-linux-mint-490702.shtml

安装后,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 安装英特尔卡驱动程序
  • 我添加了省电部分,在其中解释了如何延长电池使用时间。

相关内容