0

I have a Lenovo W530 Thinkpad (with an Nvidia k2000 GPU). I recently dual installed Windows 10 and Ubuntu 18.04.

Every time I restart I see the GRUB menu as expected. However, I am only able to boot into Ubuntu one out of about 6 or so times. The other times my computer just freezes (very annoying).

After pressing enter on Ubuntu from the GRUB menu one of the following will happen:

In all of these situations pressing ctl + alt + (f1-f12) does nothing.

  • I can boot from the Ubuntu live USB (which is how I installed Ubuntu in the first place)

  • I have tried using boot-repair (this makes no difference) and I have tried reinstalling Ubuntu twice (this makes no difference).

  • I have updated my BIOS to v2.75 as suggested in the first answer below. It made no difference.

  • Setting GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off" does let me boot every time but the resolution on my laptop screen is extremely low and my secondary monitor does not work.

  • I installed and am using the Nvidia 430 driver. Still the same freezing on boot happens.

  • I tried setting (individually) the following parameters on the GRUB boot screen by pressing e when the boot menu appears: acpi_enforce_resources=lax and acpi_enforce_resources=no, acpi_os_name=Linux and acpi_os_name="Windows 2013" but there was no change (i.e. still freezes on boot, usually at the 12xxx/2344x blocks blocks clean screen).

My suspicion is that this is somehow releated to the graphics card because if in my BIOS I change the option of GPU to integratedit works everytime, however, I need my GPU to work so this is not an option.

Why is this so hard? Please help end my suffering!

Thank you

  • Check your BIOS settings for which video hardware to use -- your software is using an Nvidia open source driver, so your should have selected Nvidia in the BIOS. The selected opensource driver also requires the "nomodeset" at the "quiet splash" words. Or use the offered Nvidia proprietary driver (no "nomodeset" needed then). I'm using the Nvidia 390 driver on my W520. – ubfan1 Jul 8 at 3:33
  • @ubfan1 what do you mean "selected Nvidia in the BIOS"? I don't see any options where nVidia is a choice in any BIOS options. – Startec Jul 8 at 3:35
  • It's an option on my W520 which I need to select to allow using an external monitor. Without selecting it, the Intel video is used. – ubfan1 Jul 8 at 3:36
  • Where in the BIOS is that option? Under what section? – Startec Jul 8 at 3:38
  • 1
    Second top BIOS tab is "Config", under that select display ,display device, and you get a choice of integrated video (Intel), Nvidia, ... Select what you want there, to match the driver setup in your software. I select nvidia, and use the proprietary Nvidia 390 driver on my 18.04 installation. – ubfan1 Jul 8 at 3:53
2

There's a BIOS v2.75 update released on Jun 25 2019 that might help... (you have BIOS 2.62)...

https://support.lenovo.com/us/en/downloads/DS029169

Update #1:

You had kernel panics before the BIOS update... so if you don't see that now, and all you're getting is ACPI errors, there's been a big improvement. Anyway, boot to a Ubuntu Live 19.04 DVD/USB and see if that works better.

Update #2:

It seems that acpi=off has some effect, but it's a lot to turn off the entire acpi system. Here are some acpi parameters that might serve better...

acpi=       [HW,ACPI,X86]
        Advanced Configuration and Power Interface
        Format: { force | off | strict | noirq | rsdt }
        force -- enable ACPI if default was off
        off -- disable ACPI if default was on
        noirq -- do not use ACPI for IRQ routing
        strict -- Be less tolerant of platforms that are not
            strictly ACPI specification compliant.
        rsdt -- prefer RSDT over (default) XSDT
        copy_dsdt -- copy DSDT to memory

        See also Documentation/power/pm.txt, pci=noacpi

acpi_apic_instance= [ACPI, IOAPIC]
        Format: <int>
        2: use 2nd APIC table, if available
        1,0: use 1st APIC table
        default: 0

acpi_backlight= [HW,ACPI]
        acpi_backlight=vendor
        acpi_backlight=video
        If set to vendor, prefer vendor specific driver
        (e.g. thinkpad_acpi, sony_acpi, etc.) instead
        of the ACPI video.ko driver.

acpi.debug_layer=   [HW,ACPI,ACPI_DEBUG]
acpi.debug_level=   [HW,ACPI,ACPI_DEBUG]
        Format: <int>
        CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
        debug output.  Bits in debug_layer correspond to a
        _COMPONENT in an ACPI source file, e.g.,
            #define _COMPONENT ACPI_PCI_COMPONENT
        Bits in debug_level correspond to a level in
        ACPI_DEBUG_PRINT statements, e.g.,
            ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
        The debug_level mask defaults to "info".  See
        Documentation/acpi/debug.txt for more information about
        debug layers and levels.

        Enable processor driver info messages:
            acpi.debug_layer=0x20000000
        Enable PCI/PCI interrupt routing info messages:
            acpi.debug_layer=0x400000
        Enable AML "Debug" output, i.e., stores to the Debug
        object while interpreting AML:
            acpi.debug_layer=0xffffffff acpi.debug_level=0x2
        Enable all messages related to ACPI hardware:
            acpi.debug_layer=0x2 acpi.debug_level=0xffffffff

        Some values produce so much output that the system is
        unusable.  The "log_buf_len" parameter may be useful
        if you need to capture more output.

acpi_irq_balance [HW,ACPI]
        ACPI will balance active IRQs
        default in APIC mode

acpi_irq_nobalance [HW,ACPI]
        ACPI will not move active IRQs (default)
        default in PIC mode

acpi_irq_isa=   [HW,ACPI] If irq_balance, mark listed IRQs used by ISA
        Format: <irq>,<irq>...

acpi_irq_pci=   [HW,ACPI] If irq_balance, clear listed IRQs for
        use by PCI
        Format: <irq>,<irq>...

acpi_no_auto_ssdt   [HW,ACPI] Disable automatic loading of SSDT

acpi_os_name=   [HW,ACPI] Tell ACPI BIOS the name of the OS
        Format: To spoof as Windows 98: ="Microsoft Windows"

acpi_osi=   [HW,ACPI] Modify list of supported OS interface strings
        acpi_osi="string1"  # add string1 -- only one string
        acpi_osi="!string2" # remove built-in string2
        acpi_osi=       # disable all strings

acpi_pm_good    [X86]
        Override the pmtimer bug detection: force the kernel
        to assume that this machine's pmtimer latches its value
        and always returns good values.

acpi_sci=   [HW,ACPI] ACPI System Control Interrupt trigger mode
        Format: { level | edge | high | low }

acpi_serialize  [HW,ACPI] force serialization of AML methods

acpi_skip_timer_override [HW,ACPI]
        Recognize and ignore IRQ0/pin2 Interrupt Override.
        For broken nForce2 BIOS resulting in XT-PIC timer.

acpi_sleep= [HW,ACPI] Sleep options
        Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
              old_ordering, nonvs, sci_force_enable }
        See Documentation/power/video.txt for information on
        s3_bios and s3_mode.
        s3_beep is for debugging; it makes the PC's speaker beep
        as soon as the kernel's real-mode entry point is called.
        s4_nohwsig prevents ACPI hardware signature from being
        used during resume from hibernation.
        old_ordering causes the ACPI 1.0 ordering of the _PTS
        control method, with respect to putting devices into
        low power states, to be enforced (the ACPI 2.0 ordering
        of _PTS is used by default).
        nonvs prevents the kernel from saving/restoring the
        ACPI NVS memory during suspend/hibernation and resume.
        sci_force_enable causes the kernel to set SCI_EN directly
        on resume from S1/S3 (which is against the ACPI spec,
        but some broken systems don't work without it).

acpi_use_timer_override [HW,ACPI]
        Use timer override. For some broken Nvidia NF5 boards
        that require a timer override, but don't have HPET

acpi_enforce_resources= [ACPI]
        { strict | lax | no }
        Check for resource conflicts between native drivers
        and ACPI OperationRegions (SystemIO and SystemMemory
        only). IO ports and memory declared in ACPI might be
        used by the ACPI subsystem in arbitrary AML code and
        can interfere with legacy drivers.
        strict (default): access to resources claimed by ACPI
        is denied; legacy drivers trying to access reserved
        resources will fail to bind to device using them.
        lax: access to resources claimed by ACPI is allowed;
        legacy drivers trying to access reserved resources
        will bind successfully but a warning message is logged.
        no: ACPI OperationRegions are not marked as reserved,
        no further checks are performed.

Update #3:

Normally when you add a kernel parameter (like acpi=off) you edit /etc/default/grub, and then sudo update-grub. However, if you happen to choose a bad kernel parameter, and your machine won't boot properly, it's harder to recover.

So I'll suggest a way to temporarily test various kernel parameters that only last for the current boot. If ultimately you find an acpi kernel parameter that solves all of the problems, you can make it permanent.

At the GRUB menu, select the normal desired boot choice, and then hit the e to enter edit mode. Find the string "quiet splash" and add the desired kernel parameter, like "quiet splash acpi=off", then hit control+x or F10 to continue booting.

I'd recommend trying these acpi parameters first... only one at a time...

acpi_enforce_resources=lax

acpi_enforce_resources=no

  • Correct me if I'm wrong but shouldn't it say "Windows BIOS update" and "it won't work on Linux"? – WinEunuuchs2Unix Jul 8 at 1:20
  • @WinEunuuchs2Unix Usually there are ways to install those. If needed a bootable FreeDOS USB can be used. – GabrielaGarcia Jul 8 at 1:31
  • Please see update - this didn't do anything. – Startec Jul 8 at 2:42
  • @Startec you were' kernel panicing before... so if you don't see that now, and all you're getting is ACPI errors, there's been a big improvement. Anyway, boot to a Ubuntu Live 19.04 DVD/USB and see if that works better. – heynnema Jul 8 at 3:19
  • 1
    @WinEunuuchs2Unix many modern machines can actually upgrade the BIOS from the current BIOS. No stink'in Windows required :-) – heynnema Jul 8 at 3:20
0

It could be you need to turn ACPI off.

To summarize the link, in /etc/default/grub change the line

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

to:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"

and then run sudo update-grub

  • it now starts correctly, at least it did 3x in a row, but the resolution is very low and my secondary monitor does not work (almost like nomodeset is set or something). Do you know what could cause this? I see this "quiet splash" option in other threads around here. – Startec Jul 8 at 3:22
  • Since ACPI (Advanced Configuration and Power Interface) controls a lot of stuff, I don't know if I'd recommend turning it completely OFF. There are other ACPI parameters that might be used though. I'll create an answer with a list... – heynnema Jul 8 at 3:26
  • You may have made a slight error with "Rinzwind reported on his new HP Omen laptop the ACPI is using 3 byte words but Linux only supports 2 byte words for now" as your link doesn't refer to Rinzwind or HP Omen. Maybe you were thinking of a different question/answer? – heynnema Jul 8 at 3:38
  • @heynnema I'll remove that part which was referring to general chat room convo a few days ago. – WinEunuuchs2Unix Jul 8 at 5:06

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.