Debian 8.2 with Kernel 4.2 on Dell XPS 13 9343

0

I followed the guide at

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

and managed to make everything work. (I installed an extra package for Wi-Fi afterward.)

Then I decided to install the newest Linux kernel (4.2) and used the precompiled one here:

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

After the installation, Wi-Fi and audio no longer work.

I tried installing the WiFi module again with the new kernel, but here is what I got:

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

About the audio, I can see the icon in the top right, but my audio device is not listed. Here is aplay -l's output:

**** 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

UPDATE: I've tried to download the official linux 64 bit driver from broadcom official site(version 6.30.223.248). Here is the output of make command:

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

Mario Villani

Posted 2015-09-11T13:23:44.367

Reputation: 101

As a basic troubleshooting step, do you have another wireless card/adapter that you are able to test with the updated kernel? For example, a wireless USB receiver? It would be even more help if you could test an Atheros adapter against the Broadcom adapter. – Daedalus – 2015-09-11T13:56:57.910

I've updated my question. However, i do not have anything to test another receiver. – Mario Villani – 2015-09-11T14:02:40.270

1

I'm not sure how much help this will be, but there appears to be some documentation on the Arch wiki about broadcom and kernel upgrades. https://wiki.archlinux.org/index.php/Broadcom_wireless -- also, here's an Arch article on your exact laptop: https://wiki.archlinux.org/index.php/Dell_XPS_13_%282015%29 . Sorry that it's not for Debian, but any command differences can be easily translated.

– Daedalus – 2015-09-11T14:12:07.250

Answers

0

I managed fixing my issues. I updated official Debian Wiki with some new instruction for a perfect configuration. Here is the link:

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

In particular, i've contributed with:

  • a section "Dual Booting with Windows" where i explain some common problems and how to fix them.
  • i've added other instruction for Wifi installing describing what to do with your current wifi card (broadcom or intel). I've explained how to install Intel card drivers for default Debian kernel and updated kernel 4.2
  • i've added a Powersaving section where i explain how to increase battery duration.

Mario Villani

Posted 2015-09-11T13:23:44.367

Reputation: 101

1

I’m running kernel 4.2 on my Dell XPS 9343.

I gave up on getting the Broadcom Wi-Fi card to work and installed the Intel 7265 card that is an option for some configurations.

My audio didn’t work no matter how many cold boots I did until today, where I used alsamixer from the console and unmuted/toggled every channel on the device—particularly the ones that are not visible by default—off the right-hand side of the screen.

I heard a “pop” when doing this and now my audio is working.

Gerry

Posted 2015-09-11T13:23:44.367

Reputation: 11

My Dell xps 9343 has Intel 7265 card installed. I installed firmware-iwlwifi to get the wifi working on the default Debian kernel. I did not need the broadcom wifi drivers...(sorry about that) Which package did you install for kernel 4.2? – Mario Villani – 2015-09-18T12:16:14.407

I fixed the wifi issue. I downloaded the latest driver from here http://www.intel.com/support/wireless/wlan/sb/CS-034398.htm ,unzipped it and copied the available ".ucode" files in /lib/firmware. I rebooted and all is working. I tried opening alsamixer, i muted as you said but it's not working...

– Mario Villani – 2015-09-18T14:16:23.443

1

The Debian broadcom-sta driver can be patched to support the 4.2 kernel, I’ve cherry-picked the patch from Arch and added it to the Stretch version and made it available here.

Here’s the dkms deb if you don't want to use the debian folder to build your own packages.

Steve Pusser

Posted 2015-09-11T13:23:44.367

Reputation: 11