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

Startec
  • 1,935

3 Answers3

1

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

heynnema
  • 73,649
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

0

I was able to fix this on my Asus ZenBook 14 by adding dis_ucode_ldr to the boot options.

For a temporary fix, get the grub menu, and for the "Ubuntu" option, press the e key. At the end of the line that says linux /boot... just add dis_ucode_ldr to the end. Type F10 key to continue the boot.

If this works, you will need to do this every time you boot unless you update the grub-boot options: 1. open terminal 2. type sudo gedit /etc/default/grub and hit enter 3. type your password 4. change GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" to GRUB_CMDLINE_LINUX_DEFAULT="quiet splash dis_ucode_ldr" 5. Save the file and exit gedit 6. in the terminal, type sudo update-grub 7. restart

Based on this answer: Asus zenbook 15 (UX-533FD) boot very randomly ubuntu 19.04

I hope this helps.