6

I'm following https://wiki.ubuntu.com/DebuggingKernelSuspend and it says that I have to reboot the system with

sudo sh -c "sync && echo 1 > /sys/power/pm_trace && pm-suspend"

and find the lines that says hash matches in dmesg rigth after reboot (what does that mean?)

Well, I found two:

[    3.583591] ima: Allocated hash algorithm: sha1
[    3.593050] input: AT Raw Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
[    3.638808]   Magic number: 0:929:176
[    3.638867] acpi device:39: hash matches
[    3.638893] acpi device:0c: hash matches
[    3.639073] rtc_cmos 00:01: setting system clock to 2016-01-01 12:09:51 UTC (1451650191)

Looks like the problem is in these two acpi devices. The article doesn't say what to do in this case. If the problem was in a PCIe device I could simply unload its module, but what should I do in this case? Does an acpi device have a module? If so, how to find its module? And what hash matches mean?

UPDATE:

Here's my lspci:

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #3 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
3b:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961

UPDATE:

[lz@dom0 tmp]$ lspci -t
-[0000:00]-+-00.0
           +-02.0
           +-14.0
           +-14.2
           +-15.0
           +-15.1
           +-16.0
           +-1c.0-[01]----00.0
           +-1c.4-[02-3a]--
           +-1d.0-[3b]----00.0
           +-1e.0
           +-1f.0
           +-1f.2
           +-1f.3
           \-1f.4

UPDATE:

dmesg | grep -i acpi

0.000000] Xen: [mem 0x000000006e503000-0x000000006e503fff] ACPI NVS
[    0.000000] Xen: [mem 0x000000007a3d9000-0x000000007a444fff] ACPI data
[    0.000000] Xen: [mem 0x000000007a445000-0x000000007abfefff] ACPI NVS
[    0.000000] efi:  ESRT=0x7b226f18  ACPI=0x7a3ee000  ACPI 2.0=0x7a3ee000  SMBIOS=0x7b210000  SMBIOS 3.0=0x7b20f000 
[    1.069765] ACPI: Early table checksum verification disabled
[    1.069772] ACPI: RSDP 0x000000007A3EE000 000024 (v02 ALASKA)
[    1.069782] ACPI: XSDT 0x000000007A3EE0B0 0000E4 (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.069821] ACPI: FACP 0x000000007A414898 000114 (v06 ALASKA A M I    01072009 AMI  00010013)
[    1.069889] ACPI: DSDT 0x000000007A3EE228 02666B (v02 ALASKA A M I    01072009 INTL 20160422)
[    1.069903] ACPI: FACS 0x000000007ABE6C40 000040
[    1.069916] ACPI: APIC 0x000000007A4149B0 000084 (v03 ALASKA A M I    01072009 AMI  00010013)
[    1.069930] ACPI: FPDT 0x000000007A414A38 000044 (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.069943] ACPI: MCFG 0x000000007A414A80 00003C (v01 ALASKA A M I    01072009 MSFT 00000097)
[    1.069957] ACPI: FIDT 0x000000007A414AC0 00009C (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.069970] ACPI: MSDM 0x000000007A414B60 000055 (v03 ALASKA A M I    01072009 AMI  00010013)
[    1.069984] ACPI: SSDT 0x000000007A414BB8 003154 (v02 SaSsdt SaSsdt   00003000 INTL 20160422)
[    1.070007] ACPI: HPET 0x000000007A417D10 000038 (v01 INTEL  KBL-ULT  00000001 MSFT 0000005F)
[    1.070021] ACPI: SSDT 0x000000007A417D48 000E3B (v02 INTEL  Ther_Rvp 00001000 INTL 20160422)
[    1.070034] ACPI: SSDT 0x000000007A418B88 0006BB (v02 INTEL  xh_OEMBD 00000000 INTL 20160422)
[    1.070048] ACPI: UEFI 0x000000007A419248 000042 (v01 INTEL  EDK2     00000002      01000013)
[    1.070062] ACPI: SSDT 0x000000007A419290 000EDE (v02 CpuRef CpuSsdt  00003000 INTL 20160422)
[    1.070075] ACPI: LPIT 0x000000007A41A170 000094 (v01 INTEL  KBL-ULT  00000000 MSFT 0000005F)
[    1.070089] ACPI: WSMT 0x000000007A41A208 000028 (v01 INTEL  KBL-ULT  00000000 MSFT 0000005F)
[    1.070102] ACPI: SSDT 0x000000007A41A230 00029F (v02 INTEL  sensrhub 00000000 INTL 20160422)
[    1.070116] ACPI: SSDT 0x000000007A41A4D0 003002 (v02 INTEL  PtidDevc 00001000 INTL 20160422)
[    1.070130] ACPI: DBGP 0x000000007A41D4D8 000034 (v01 INTEL           00000002 MSFT 0000005F)
[    1.070143] ACPI: DBG2 0x000000007A41D510 000054 (v00 INTEL           00000002 MSFT 0000005F)
[    1.070157] ACPI: BGRT 0x000000007A41D568 000038 (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.070171] ACPI: RMAD 0x000000007A41D5A0 000114 (v01 INTEL  KBL      00000001 INTL 00000001)
[    1.070185] ACPI: SSDT 0x000000007A41D6B8 00054D (v01 TbtGfx TbtGfx   00001000 INTL 20160422)
[    1.070198] ACPI: TPM2 0x000000007A41DC08 000034 (v03        Tpm2Tabl 00000001 AMI  00000000)
[    1.070212] ACPI: ASF! 0x000000007A41DC40 0000A0 (v32 INTEL   HCG     00000001 TFSM 000F4240)
[    1.070249] ACPI: Local APIC address 0xfee00000
[    2.173665] ACPI: PM-Timer IO Port: 0x1808
[    2.173672] ACPI: Local APIC address 0xfee00000
[    2.173707] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    2.173708] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    2.173710] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    2.173711] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    2.173762] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    2.173765] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    2.173769] ACPI: IRQ0 used by override.
[    2.173771] ACPI: IRQ9 used by override.
[    2.173780] Using ACPI (MADT) for SMP configuration information
[    2.173784] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    2.352646] ACPI: Core revision 20180810
[    2.371112] ACPI BIOS Warning (bug): Incorrect checksum in table [BGRT] - 0xDC, should be 0x84 (20180810/tbprint-177)
[    2.379908] PM: Registering ACPI NVS region [mem 0x6e503000-0x6e503fff] (4096 bytes)
[    2.379908] PM: Registering ACPI NVS region [mem 0x7a445000-0x7abfefff] (8101888 bytes)
[    2.380709] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    2.380710] ACPI: bus type PCI registered
[    2.459664] ACPI: Added _OSI(Module Device)
[    2.459664] ACPI: Added _OSI(Processor Device)
[    2.459665] ACPI: Added _OSI(3.0 _SCP Extensions)
[    2.459666] ACPI: Added _OSI(Processor Aggregator Device)
[    2.459667] ACPI: Added _OSI(Linux-Dell-Video)
[    2.459667] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    2.499998] ACPI: 8 ACPI AML tables successfully acquired and loaded
[    2.505360] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    2.511690] ACPI: Dynamic OEM Table Load:
[    2.511696] ACPI: SSDT 0xFFFF88818180E800 0006F6 (v02 PmRef  Cpu0Ist  00003000 INTL 20160422)
[    2.512125] ACPI: \_PR_.CPU0: _OSC native thermal LVT Acked
[    2.513777] ACPI: Dynamic OEM Table Load:
[    2.513781] ACPI: SSDT 0xFFFF888180CE5C00 0003FF (v02 PmRef  Cpu0Cst  00003001 INTL 20160422)
[    2.514667] ACPI: Dynamic OEM Table Load:
[    2.514671] ACPI: SSDT 0xFFFF888180F43800 00065C (v02 PmRef  ApIst    00003000 INTL 20160422)
[    2.515347] ACPI: Dynamic OEM Table Load:
[    2.515351] ACPI: SSDT 0xFFFF888180D50600 00018A (v02 PmRef  ApCst    00003000 INTL 20160422)
[    2.516841] ACPI: EC: EC started
[    2.516842] ACPI: EC: interrupt blocked
[    2.516872] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as first EC
[    2.516873] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x50, EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    2.516874] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions
[    2.516875] ACPI: Interpreter enabled
[    2.516908] ACPI: (supports S0 S3 S5)
[    2.516909] ACPI: Using IOAPIC for interrupt routing
[    2.516948] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    2.518072] ACPI: Enabled 7 GPEs in block 00 to 7F
[    2.521961] ACPI: Power Resource [WRST] (on)
[    2.522316] ACPI: Power Resource [WRST] (on)
[    2.522680] ACPI: Power Resource [WRST] (on)
[    2.523031] ACPI: Power Resource [WRST] (on)
[    2.523381] ACPI: Power Resource [WRST] (on)
[    2.523735] ACPI: Power Resource [WRST] (on)
[    2.524082] ACPI: Power Resource [WRST] (on)
[    2.524542] ACPI: Power Resource [WRST] (on)
[    2.524902] ACPI: Power Resource [WRST] (on)
[    2.525259] ACPI: Power Resource [WRST] (on)
[    2.525610] ACPI: Power Resource [WRST] (on)
[    2.525970] ACPI: Power Resource [WRST] (on)
[    2.526323] ACPI: Power Resource [WRST] (on)
[    2.526633] ACPI: Power Resource [WRST] (on)
[    2.526983] ACPI: Power Resource [WRST] (on)
[    2.527330] ACPI: Power Resource [WRST] (on)
[    2.527684] ACPI: Power Resource [WRST] (on)
[    2.529007] ACPI: Power Resource [WRST] (on)
[    2.529360] ACPI: Power Resource [WRST] (on)
[    2.529716] ACPI: Power Resource [WRST] (on)
[    2.542041] ACPI: Power Resource [FN00] (off)
[    2.542129] ACPI: Power Resource [FN01] (off)
[    2.542211] ACPI: Power Resource [FN02] (off)
[    2.542294] ACPI: Power Resource [FN03] (off)
[    2.542378] ACPI: Power Resource [FN04] (off)
[    2.543548] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    2.543553] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    2.543596] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
[    2.562396] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562462] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 *10 11 12 14 15)
[    2.562525] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562588] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562655] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562718] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562779] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562841] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.563595] ACPI: EC: interrupt unblocked
[    2.563621] ACPI: EC: event unblocked
[    2.563639] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x50, EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    2.563640] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions and events
[    2.563765] ACPI: bus type USB registered
[    2.580383] PCI: Using ACPI for IRQ routing
[    2.627863] pnp: PnP ACPI init
[    2.628141] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.628280] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active)
[    2.628317] system 00:02: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    2.629513] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.629566] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.629937] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.631187] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.632238] pnp: PnP ACPI: found 7 devices
[    3.392469] ACPI: AC Adapter [AC0] (on-line)
[    3.392539] ACPI: Lid Switch [LID0]
[    3.392581] ACPI: Sleep Button [SLPB]
[    3.392621] ACPI: Power Button [PWRB]
[    3.392663] ACPI: Power Button [PWRF]
[    3.455097] ACPI: Thermal Zone [TZ00] (28 C)
[    3.455324] ACPI: Thermal Zone [TZ01] (30 C)
[    3.461779] hpet_acpi_add: no address or irqs in _CRS
[    3.566006] battery: ACPI: Battery Slot [BAT0] (battery present)
[    3.644076] acpi LNXCPU:06: hash matches
[    5.082551] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   16.887708] xen_acpi_processor: Uploading Xen processor PM info

UPDATE:

wifi/ethernet problems? No

is your battery/power behaving okay? perfectly

do you have external USB devices connected? no

have you noticed other issues? nothing at all

is there an update for your BIOS? I'm gonna have to install Windows and check, this is going to take a while

  • Found same problem a year ago: ubuntuforums.org/archive/index.php/t-2393029.html Type lspci | grep 39 and lspci | grep 0c do you get any matches? – WinEunuuchs2Unix Dec 29 '19 at 20:10
  • @WinEunuuchs2Unix unfortunately both numbers don't appear at my lspci, that's why I can't know where they come from. I've updated my question with my whole lspci info. Can you take a look? – Guerlando OCs Dec 29 '19 at 22:08
  • Indeed I don't see 39 nor 0c in your lspci output. It was the wiki Debugging Suspend link that led me to believe it would be in there. Frankly I haven't played with these magic acpi numbers myself. You can also try lspci -t for tree format but I'm not sure it reports anything extra. – WinEunuuchs2Unix Dec 29 '19 at 23:03
  • @WinEunuuchs2Unix I added lspci -t, I don't know if it helps – Guerlando OCs Dec 29 '19 at 23:42
  • Please edit your question and add the output of dmesg | grep -i acpi – Raffa Jan 3 at 22:43
2
+200

What is the issue?

One line in your dmesg output stands out. That is:

[    2.543596] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM

Active State Power Management or ASPM is required for power saving features upon which the suspend process relies. This issue is reported here. The quoted text below from Launchpad is pretty much what you need to know.

This error message occurs when the kernel runs the root PCI bridge _OSC control method in your firmware and the execution fails, perhaps due to a bug in the firmware or perhaps it does not exist. The kernel hence cannot determine the features supported or capabilities provided by the device (as specified by your firmware) and hence has to disable PCIe ASPM (Active State Power Management).

The downside of Active State Power Management not being enabled is that the machine is less power efficient, however, one can force this on with the kernel boot parameter "pcie_aspm=force" however, forcing this on may cause system lockups.


Why are you having this issue?

Your laptop as it seems is manufactured for use with the Windows OS and although Ubuntu and other Linux distributions will mimic the Windows OS calls to the BIOS, there are times when this transaction is unsuccessful on ether ends and such issues happen.

The issues caused by this can range from just suspend issues to WiFi, Ethernet, battery, hard drives, SSDs and others. Hence my comment above:

are you having wifi/ethernet problems? is your battery/power behaving okay? do you have external USB devices connected? have you noticed other issues?

Some of these issues appear with certain Linux kernels and disappear with others. They might differ but, are unlikely to disappear completely until the communication between system BIOS and the kernel is fixed. The ideal fix is a BIOS update that addresses ASPM.


How to resolve this issue?

I would suggest the following solutions in the following sequence until this issue is resolved:

  1. Update your Ubuntu to a newer version. A newer kernel might have better support for your BIOS.
  2. Update your BIOS. A newer BIOS version might provide better communication with your OS.
  3. Press e at GRUB boot menu and try the kernel boot parameter pcie_aspm=force. This answer will help.

Best of luck

| improve this answer | |
  • Thank you SO MUCH by all this information. I forgot to tell one thing completely. I'm running Qubes, which is Xen with a Fedora as dom0. I asked this on ask ubuntu because it's the same process as if I were to debug on an ubuntu machine. On Ubuntu, sleep funcitonality works like a charm. So I was intersted in knowing about the debug process for Ubuntu to understand better why it fails on Qubes. So, BIOS compatiblity is OK because Ubuntu can sleep and wakeup perfectly. – Guerlando OCs Jan 4 at 1:44
  • Why don't I use Ubuntu then? Well, I tried, but there's a very critical bug in all ubuntus that make my SSD corrupt like 3 times a day. I tried every possible linux dsitribution and it didn't work. I then had the idea of instaling Qubes because of its PCIe abstraction and it solved the problem completely. As the bug, bugs.launchpad.net/ubuntu/+source/linux/+bug/1746340, this is the issue I opened. I tried many patches from a ubuntu guy that helped me but without any success. So I'm stuck on Qubes – Guerlando OCs Jan 4 at 1:45
  • If you have any further ideas on how to debug this on Qubes/Xen, I'd be very happy. My dom0 on Qubes in a Fedora25. I tried Fedora30 (without virtualization) and sleep functionality works on my notebook, but SSD fails too. I tried a very very recent Qubes kernel (based on 5.0) and it didn't solve, so I don't know where the problem happens. If you have any idea, I can open another issue when this one finishes just to give you points – Guerlando OCs Jan 4 at 1:48
  • 1
    @GuerlandoOCs The same power management issue can cause other issues among which your SSD loosing power which causes it to get unmounted/mounted and filesystem gets corrupted as a result. Different Linux kernels might experience different issues as a result of this. Your best option is to try solutions 2 and 3 in my answer above. Best of luck – Raffa Jan 4 at 2:04
1

My system has an Intel Thunderbolt controller the same as one of your acpi matches:

$ lspci | grep 39
39:00.0 USB controller: Intel Corporation DSL6340 USB 3.1 Controller [Alpine Ridge]

About a year ago my suspend/resume broke so I had to create this script:

#!/bin/bash

# Original script was using /bin/sh but shellcheck reporting warnings.

# NAME: custom-xhci_hcd
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: Suspend broken for USB3.0 as of Oct 25/2018 various kernels all at once

# DATE: Oct 28 2018.

# NOTE: From comment #61 at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998

TMPLIST=/tmp/xhci-dev-list

# Original script was: case "${1}" in hibernate|suspend)

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    echo -n '' > $TMPLIST
          for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
              # Unbind xhci_hcd for first device XXXX:XX:XX.X:
               echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
           echo "$i" >> $TMPLIST
          done
        ;;
  post/*)
    echo "$0: Waking up from $2..."
    for i in `cat $TMPLIST`; do
              # Bind xhci_hcd for first device XXXX:XX:XX.X:
              echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
    done
    rm $TMPLIST
        ;;
esac

Create the file using: sudo -H gedit /lib/systemd/system-sleep/custom-xhci_hcd

Copy and paste the above code into the file, save the file and exit gedit.

Mark it executable using sudo chmod a+x /lib/systemd/system-sleep/custom-xhci_hcd

Reboot.

| improve this answer | |
  • But I don't have your controller. lspci | grep 39 and lspci | grep 0c gives nothing. I've updated the question with my lspci info. That's why I asked, if these 39 and 0c appeared on lspci then I'd know how to disable their drivers, but they don't appear. – Guerlando OCs Dec 29 '19 at 22:08
  • also ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$' produces nothing – Guerlando OCs Dec 29 '19 at 22:49
  • @GuerlandoOCs You do have Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21) which I think is another name for Thunderbolt? In either case if the script works to solve the suspend/resume problem like it did for me then it is worth the couple of minutes to try it out. – WinEunuuchs2Unix Dec 29 '19 at 23:01
  • I tried and it didn't work. It can't possibly work because there's nothing in /sys/bus/pci/drivers/xhci_hcd/ except `bind module new_id remove_id unevent unbind', which are not picked by your regex. So nothing is really done by the script :c. Shouldn't I customize the script for my controller? – Guerlando OCs Dec 29 '19 at 23:41
  • @GuerlandoOCs The script was written in 2011 in comment #61 of this bug report: bugs.launchpad.net/ubuntu/+source/linux/+bug/522998 It's worked for many people and I never gave the regex so much as a second glance. – WinEunuuchs2Unix Dec 30 '19 at 0:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.