Lenovo ideapad 330-15ICH Wifi rfkill hard blocked

Bug #1811815 reported by Pyru
28
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned
Cosmic
Fix Released
Undecided
Unassigned
Disco
Fix Released
Undecided
Unassigned

Bug Description

=== SRU Justification ===

[Impact]
Lenovo ideapad 330-15ICH Wifi rfkill hard blocked

[Fix]
The platform in question doesn't have hardware RF switch, so quirk it
off.

[Test]
User confirm it fixes the issue.

[Regression Potential]
Minimal. This fix is limited to one specific platform.

=== Original Bug Report ===

The issue here is that the drivers/platform/x86/ideapad_laptop.c module assumes the Lenovo Ideapad 330-15ICH has a hardware RF-kill switch, reads the I/O port for its state, gets a zero, and therefore reports to the kernel that RFkill is hard-blocked.

The current workaround is to blacklist the module to stop it being loaded.

I've attached a simple patch for the module that teaches it that this model does not have a hardware RF kill switch.

---- Original Report -----

Ubuntu 18.10 does not detect the Intel Dual Band Wireless-AC 3165 card, specifically on a Lenovo ideapad 330 laptop.

A current workaround:

- Blacklist the "ideapad-laptop" module.
- Edit/create a file in "/etc/modprobe.d/" and name it "blacklist.conf" or something similar (if it does not already exist), and append "blacklist ideapad-laptop" to the file. Save and reboot.

ProblemType: Bug
DistroRelease: Ubuntu 18.10
Package: linux-image-4.18.0-13-generic 4.18.0-13.14
ProcVersionSignature: Ubuntu 4.18.0-13.14-generic 4.18.17
Uname: Linux 4.18.0-13-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.10-0ubuntu13.1
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: dustin 1948 F.... pulseaudio
 /dev/snd/pcmC0D0p: dustin 1948 F...m pulseaudio
CurrentDesktop: ubuntu:GNOME
Date: Tue Jan 15 04:08:20 2019
InstallationDate: Installed on 2019-01-15 (0 days ago)
InstallationMedia: Ubuntu 18.10 "Cosmic Cuttlefish" - Release amd64 (20181017.3)
Lsusb:
 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 Bus 001 Device 003: ID 5986:210e Acer, Inc
 Bus 001 Device 004: ID 8087:0a2a Intel Corp.
 Bus 001 Device 002: ID 3938:1047
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MachineType: LENOVO 81FK
ProcEnviron:
 LANGUAGE=en_CA:en
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.18.0-13-generic root=UUID=fa5d161c-779c-4cf7-aa07-6da06d655747 ro acpi_osi=! "acpi_osi=Windows 2012" quiet splash nouveau.modeset=0 vt.handoff=1
RelatedPackageVersions:
 linux-restricted-modules-4.18.0-13-generic N/A
 linux-backports-modules-4.18.0-13-generic N/A
 linux-firmware 1.175.1
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 07/17/2018
dmi.bios.vendor: LENOVO
dmi.bios.version: 7ZCN28WW
dmi.board.asset.tag: NO Asset Tag
dmi.board.name: LNVNB161216
dmi.board.vendor: LENOVO
dmi.board.version: SDK0J40709 WIN
dmi.chassis.asset.tag: NO Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Lenovo ideapad 330-15ICH
dmi.modalias: dmi:bvnLENOVO:bvr7ZCN28WW:bd07/17/2018:svnLENOVO:pn81FK:pvrLenovoideapad330-15ICH:rvnLENOVO:rnLNVNB161216:rvrSDK0J40709WIN:cvnLENOVO:ct10:cvrLenovoideapad330-15ICH:
dmi.product.family: ideapad 330-15ICH
dmi.product.name: 81FK
dmi.product.sku: LENOVO_MT_81FK_BU_idea_FM_ideapad 330-15ICH
dmi.product.version: Lenovo ideapad 330-15ICH
dmi.sys.vendor: LENOVO

Revision history for this message
Pyru (im-dustin) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
TJ (tj) wrote :
summary: - Ubuntu 18.10, Kernel 4.18, Intel Dual Band Wireless-AC 3165 Not Found
+ Lenovo ideapad 330-15ICH Wifi rfkill hard blocked
description: updated
Revision history for this message
TJ (tj) wrote :

Attached as a DKMS package to test whether the patch works.

Download the file (I'll assume it ends up in $HOME/Downloads/ ).

In a terminal shell do:

$ sudo tar -C / -vxf $HOME/Downloads/ideapad_laptop-33015ICH.dkms.tar.gz

This will extract the files to

    /usr/src/ideapad_laptop-33015ICH/

In case the DKMS tools package is not already installed do:

$ sudo apt install dkms

Now add this test module to the DKMS build system:

$ sudo dkms add ideapad_laptop/33015ICH

Now ensure it builds for the running kernel version:

$ sudo dkms build ideapad_laptop/33015ICH

If no errors reported install the module:

$ sudo dkms install ideapad_laptop/33015ICH

Remove your blacklist file from /etc/modprobe.d/

Load the module:

$ sudo modprobe ideapad-laptop

Ensure the Wifi is still working. If so reboot the PC and check Wifi still starts correctly.

Please report back on your results so we can get this patch upstream and added to Ubuntu.

Changed in linux (Ubuntu):
assignee: nobody → TJ (tj)
tags: added: patch
Revision history for this message
Pyru (im-dustin) wrote :

Confirmed TJ's patch works.

Revision history for this message
TJ (tj) wrote :

Ike, I've subscribed you since I notice you're listed as an upstream maintainer of this module.

Are you able to get this committed in mainline and SRU-ed into Ubuntu kernels?

Revision history for this message
Anthony Wong (anthonywong) wrote :

Hi TJ, as you have already written the patch, don't you want to send it to LKML directly?

Revision history for this message
Anthony Wong (anthonywong) wrote :

Thanks TJ.
I've submitted the patch to upstream: https://www.spinics.net/lists/platform-driver-x86/msg17872.html.

Revision history for this message
Felix Eckhofer (eckhofer) wrote :

I have the ideapad S130 and had the same issue, but I noticed that the kill switch from `ideapad_laptop` is toggled using the "flight mode"-key (Fn-F7) and I'm unsure, if I should create a patch like the one you submitted above.

From pictures, the keyboard on the ideapad 330 looks identical to the one on the S130. Have you tried if that button actually acts as the "hardware killswitch" for you? Are we actually removing a useful feature by adding the laptops with that key to the blacklist in the kernel module?

Revision history for this message
Felix Eckhofer (eckhofer) wrote :

TL;DR: I was wrong, sorry for the noise.

After a bit more testing it seems that while the button does indeed seem to toggle the hard-block, it also triggers the flight mode toggle from userland (GNOME). These do not have to be in sync (pressing the button can at the same time disable the hard-block, but enable the soft-block). Adding the model to no_hw_rfkill does not disable GNOMEs flight mode when the button is pressed. So even though the flight mode button can be used as a workaround on affected models, they should still be added to the no_hw_rfkill list. I will prepare a patch for my S130.

description: updated
Seth Forshee (sforshee)
Changed in linux (Ubuntu):
status: Confirmed → Fix Committed
Changed in linux (Ubuntu Cosmic):
status: New → Fix Committed
Changed in linux (Ubuntu Bionic):
status: New → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-cosmic' to 'verification-done-cosmic'. If the problem still exists, change the tag 'verification-needed-cosmic' to 'verification-failed-cosmic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-cosmic
tags: added: verification-needed-bionic
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (50.5 KiB)

This bug was fixed in the package linux - 5.0.0-11.12

---------------
linux (5.0.0-11.12) disco; urgency=medium

  * linux: 5.0.0-11.12 -proposed tracker (LP: #1824383)

  * hns3: PPU_PF_ABNORMAL_INT_ST over_8bd_no_fe found [error status=0x1]
    (LP: #1824194)
    - net: hns3: fix for not calculating tx bd num correctly

  * disco: unable to use iptables/enable ufw under -virtual kernel
    (LP: #1823862)
    - [Packaging] add bpfilter to linux-modules

  * Make shiftfs a module rather than built-in (LP: #1824354)
    - [Config] CONFIG_SHIFT_FS=m

  * shiftfs: chown sets untranslated ids in lower fs (LP: #1824350)
    - SAUCE: shiftfs: use translated ids when chaning lower fs attrs

  * [Hyper-V] KVP daemon fails to start on first boot of disco VM (LP: #1820063)
    - [Packaging] bind hv_kvp_daemon startup to hv_kvp device

linux (5.0.0-10.11) disco; urgency=medium

  * linux: 5.0.0-10.11 -proposed tracker (LP: #1823936)

  * Apparmor enforcement failure in lxc selftests (LP: #1823379)
    - SAUCE: apparmor: Restore Y/N in /sys for apparmor's "enabled"

  * systemd cause kernel trace "BUG: unable to handle kernel paging request at
    6db23a14" on Cosmic i386 (LP: #1813244)
    - openvswitch: fix flow actions reallocation

linux (5.0.0-9.10) disco; urgency=medium

  * linux: 5.0.0-9.10 -proposed tracker (LP: #1823228)

  * Packaging resync (LP: #1786013)
    - [Packaging] resync git-ubuntu-log
    - [Packaging] update helper scripts
    - [Packaging] resync retpoline extraction

  * Huawei Hi1822 NIC has poor performance (LP: #1820187)
    - net-next/hinic: replace disable_irq_nosync/enable_irq

  * Add uid shifting overlay filesystem (shiftfs) (LP: #1823186)
    - shiftfs: uid/gid shifting bind mount
    - shiftfs: rework and extend
    - shiftfs: support some btrfs ioctls
    - [Config] enable shiftfs

  * Cannot boot or install - have to use nomodeset (LP: #1821820)
    - Revert "drm/i915/fbdev: Actually configure untiled displays"

  * Disco update: v5.0.6 upstream stable release (LP: #1823060)
    - netfilter: nf_tables: fix set double-free in abort path
    - dccp: do not use ipv6 header for ipv4 flow
    - genetlink: Fix a memory leak on error path
    - gtp: change NET_UDP_TUNNEL dependency to select
    - ipv6: make ip6_create_rt_rcu return ip6_null_entry instead of NULL
    - mac8390: Fix mmio access size probe
    - mISDN: hfcpci: Test both vendor & device ID for Digium HFC4S
    - net: aquantia: fix rx checksum offload for UDP/TCP over IPv6
    - net: datagram: fix unbounded loop in __skb_try_recv_datagram()
    - net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec
    - net: phy: meson-gxl: fix interrupt support
    - net: rose: fix a possible stack overflow
    - net: stmmac: fix memory corruption with large MTUs
    - net-sysfs: call dev_hold if kobject_init_and_add success
    - net: usb: aqc111: Extend HWID table by QNAP device
    - packets: Always register packet sk in the same order
    - rhashtable: Still do rehash when we get EEXIST
    - sctp: get sctphdr by offset in sctp_compute_cksum
    - sctp: use memdup_user instead of vmemdup_user
    - tcp: do not use ipv6 header for ipv4 flow
    - tipc: allow servic...

Changed in linux (Ubuntu Disco):
status: Fix Committed → Fix Released
Revision history for this message
Kleber Sacilotto de Souza (kleber-souza) wrote :

Hello Pyru and everyone else involved,

The Bionic and Cosmic kernels containing a fix for this issue are now in -proposed. Could anyone please verify if they fix the issue as expected?

Thank you.

Revision history for this message
Pyru (im-dustin) wrote :

I can confirm using the latest kernel 5.0.7 (Ubuntu 18.10) - The issue has been fixed.

Thank you.

Connor Kuehl (connork)
tags: added: verification-done-bionic verification-done-cosmic
removed: verification-needed-bionic verification-needed-cosmic
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (6.9 KiB)

This bug was fixed in the package linux - 4.18.0-18.19

---------------
linux (4.18.0-18.19) cosmic; urgency=medium

  * linux: 4.18.0-18.19 -proposed tracker (LP: #1822796)

  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts
    - [Packaging] resync retpoline extraction

  * 3b080b2564287be91605bfd1d5ee985696e61d3c in ubuntu_btrfs_kernel_fixes
    triggers system hang on i386 (LP: #1812845)
    - btrfs: raid56: properly unmap parity page in finish_parity_scrub()

  * [SRU][B/C/OEM]IOMMU: add kernel dma protection (LP: #1820153)
    - ACPI / property: Allow multiple property compatible _DSD entries
    - PCI / ACPI: Identify untrusted PCI devices
    - iommu/vt-d: Force IOMMU on for platform opt in hint
    - iommu/vt-d: Do not enable ATS for untrusted devices
    - thunderbolt: Export IOMMU based DMA protection support to userspace
    - iommu/vt-d: Disable ATS support on untrusted devices

  * Huawei Hi1822 NIC has poor performance (LP: #1820187)
    - net-next: hinic: fix a problem in free_tx_poll()
    - hinic: remove ndo_poll_controller
    - net-next/hinic: add checksum offload and TSO support
    - hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4
    - net-next/hinic:replace multiply and division operators
    - net-next/hinic:add rx checksum offload for HiNIC
    - net-next/hinic:fix a bug in set mac address
    - net-next/hinic: fix a bug in rx data flow
    - net: hinic: fix null pointer dereference on pointer hwdev
    - hinic: optmize rx refill buffer mechanism
    - net-next/hinic:add shutdown callback
    - net-next/hinic: replace disable_irq_nosync/enable_irq

  * [CONFIG] please enable highdpi font FONT_TER16x32 (LP: #1819881)
    - Fonts: New Terminus large console font
    - [Config]: enable highdpi Terminus 16x32 font support

  * [19.04 FEAT] qeth: Enhanced link speed - kernel part (LP: #1814892)
    - s390/qeth: report 25Gbit link speed

  * Avoid potential memory corruption on HiSilicon SoCs (LP: #1819546)
    - iommu/arm-smmu-v3: Avoid memory corruption from Hisilicon MSI payloads

  * CVE-2017-5715
    - x86/speculation: Apply IBPB more strictly to avoid cross-process data leak
    - x86/speculation: Propagate information about RSB filling mitigation to sysfs
    - x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC
      variant
    - x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support
    - x86/retpoline: Remove minimal retpoline support
    - x86/speculation: Update the TIF_SSBD comment
    - x86/speculation: Clean up spectre_v2_parse_cmdline()
    - x86/speculation: Remove unnecessary ret variable in cpu_show_common()
    - x86/speculation: Move STIPB/IBPB string conditionals out of
      cpu_show_common()
    - x86/speculation: Disable STIBP when enhanced IBRS is in use
    - x86/speculation: Rename SSBD update functions
    - x86/speculation: Reorganize speculation control MSRs update
    - sched/smt: Make sched_smt_present track topology
    - x86/Kconfig: Select SCHED_SMT if SMP enabled
    - sched/smt: Expose sched_smt_present static key
    - x86/speculation: Rework SMT state change
    - x86/l1tf: Show actual SMT state
    - x86/speculation: R...

Read more...

Changed in linux (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (14.6 KiB)

This bug was fixed in the package linux - 4.15.0-48.51

---------------
linux (4.15.0-48.51) bionic; urgency=medium

  * linux: 4.15.0-48.51 -proposed tracker (LP: #1822820)

  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts
    - [Packaging] resync retpoline extraction

  * 3b080b2564287be91605bfd1d5ee985696e61d3c in ubuntu_btrfs_kernel_fixes
    triggers system hang on i386 (LP: #1812845)
    - btrfs: raid56: properly unmap parity page in finish_parity_scrub()

  * [P9][LTCTest][Opal][FW910] cpupower monitor shows multiple stop Idle_Stats
    (LP: #1719545)
    - cpupower : Fix header name to read idle state name

  * [amdgpu] screen corruption when using touchpad (LP: #1818617)
    - drm/amdgpu/gmc: steal the appropriate amount of vram for fw hand-over (v3)
    - drm/amdgpu: Free VGA stolen memory as soon as possible.

  * [SRU][B/C/OEM]IOMMU: add kernel dma protection (LP: #1820153)
    - ACPICA: AML parser: attempt to continue loading table after error
    - ACPI / property: Allow multiple property compatible _DSD entries
    - PCI / ACPI: Identify untrusted PCI devices
    - iommu/vt-d: Force IOMMU on for platform opt in hint
    - iommu/vt-d: Do not enable ATS for untrusted devices
    - thunderbolt: Export IOMMU based DMA protection support to userspace
    - iommu/vt-d: Disable ATS support on untrusted devices

  * Add basic support to NVLink2 passthrough (LP: #1819989)
    - powerpc/powernv/npu: Do not try invalidating 32bit table when 64bit table is
      enabled
    - powerpc/powernv: call OPAL_QUIESCE before OPAL_SIGNAL_SYSTEM_RESET
    - powerpc/powernv: Export opal_check_token symbol
    - powerpc/powernv: Make possible for user to force a full ipl cec reboot
    - powerpc/powernv/idoa: Remove unnecessary pcidev from pci_dn
    - powerpc/powernv: Move npu struct from pnv_phb to pci_controller
    - powerpc/powernv/npu: Move OPAL calls away from context manipulation
    - powerpc/pseries/iommu: Use memory@ nodes in max RAM address calculation
    - powerpc/pseries/npu: Enable platform support
    - powerpc/pseries: Remove IOMMU API support for non-LPAR systems
    - powerpc/powernv/npu: Check mmio_atsd array bounds when populating
    - powerpc/powernv/npu: Fault user page into the hypervisor's pagetable

  * Huawei Hi1822 NIC has poor performance (LP: #1820187)
    - net-next: hinic: fix a problem in free_tx_poll()
    - hinic: remove ndo_poll_controller
    - net-next/hinic: add checksum offload and TSO support
    - hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4
    - net-next/hinic:replace multiply and division operators
    - net-next/hinic:add rx checksum offload for HiNIC
    - net-next/hinic:fix a bug in set mac address
    - net-next/hinic: fix a bug in rx data flow
    - net: hinic: fix null pointer dereference on pointer hwdev
    - hinic: optmize rx refill buffer mechanism
    - net-next/hinic:add shutdown callback
    - net-next/hinic: replace disable_irq_nosync/enable_irq

  * [CONFIG] please enable highdpi font FONT_TER16x32 (LP: #1819881)
    - Fonts: New Terminus large console font
    - [Config]: enable highdpi Terminus 16x32 font support

  * [19.04 FEAT] qeth: Enhanced link...

Changed in linux (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Steve Langasek (vorlon) wrote : Update Released

The verification of the Stable Release Update for linux-azure has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

TJ (tj)
Changed in linux (Ubuntu Disco):
assignee: TJ (tj) → nobody
Changed in linux (Ubuntu):
assignee: TJ (tj) → nobody
Revision history for this message
forevertheuni (forevertheuni) wrote :

I have the same problem in lenovo y540, can you help me get it working there? I lose the acpi functionality and the fans don't work properly without the ideapad_laptop :(

Revision history for this message
Anthony Wong (anthonywong) wrote :

@forevertheuni, please run 'sudo dmidecode -t 1' in a terminal and post your result.

Revision history for this message
Joseph Parker (nuv) wrote :

@anthonywong
Hi Anthony,
i got the Lenovo Legion Y540, here is my output of the given command:

# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0.1 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
 Manufacturer: LENOVO
 Product Name: 81SX
 Version: Legion Y540-15IRH
 Serial Number: <REMOVED>
 UUID: <REMOVED>
 Wake-up Type: Power Switch
 SKU Number: LENOVO_MT_81SX_BU_idea_FM_Legion Y540-15IRH
 Family: Legion Y540-15IRH

Revision history for this message
Reint Kamp (reintkamp) wrote :

Same thing here,slightly different product.

# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.0.1 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
 Manufacturer: LENOVO
 Product Name: 81SY
 Version: Legion Y540-15IRH-PG0
 Serial Number: -
 UUID: -
 Wake-up Type: Power Switch
 SKU Number: LENOVO_MT_81SY_BU_idea_FM_Legion Y540-15IRH-PG0
 Family: Legion Y540-15IRH-PG0

Revision history for this message
Reint Kamp (reintkamp) wrote :

Apperently it is fixed in newer kernel by always unblocking wireless drivers. I installed mainline kernel: 5.2.11-050211-generic and wlan / bluetooth are unblocked.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.