This shows you the differences between two versions of the page.
| |
linux_faq:ubuntu_notebook_sleep_fix [2020/05/17 16:56] – created admin | linux_faq:ubuntu_notebook_sleep_fix [2023/05/19 06:37] (current) – admin |
---|
| Если ноутбук с Linux не всегда просыпается из режимов S3/S4 (Sleep), то можно попробывать так: http://iam.tj/prototype/enhancements/Windows-acpi_osi.html |
| |
| <code> |
| VERSION="$(sudo strings /sys/firmware/acpi/tables/DSDT | grep -i 'windows ' | sort | tail -1)" |
| echo 'Linux kernel command-line parameters required: acpi_osi=! "acpi_osi='$VERSION'"' |
| config() { sed -n '/.*linux[[:space:]].*root=\(.*\)/{s//BOOT_IMAGE=\1/ p;q;}' /boot/grub/grub.cfg; } |
| echo "Existing Command Line: ` config `" |
| sudo sed -i "s/^\(GRUB_CMDLINE_LINUX=.*\)\"$/\1 acpi_osi=! \\\\\"acpi_osi=$VERSION\\\\\"\"/" /etc/default/grub |
| sudo update-grub |
| echo "Modified Command Line: ` config `" |
| </code> |
| Don't be put off by all the \\ characters. Those are required in order to allow sed to insert literal double-quotation marks into the GRUB_CMDLINE_LINUX string. \\ |
| /etc/default/grub will have added the acpi_osi parameters to the GRUB_CMDLINE_LINUX so it will look something like this (there may be other kernel options that were added on some previous occassion): |
| GRUB_CMDLINE_LINUX="acpi_osi=! \"acpi_osi=Windows 2015\"" |
| /boot/grub/grub.cfg will have these parameters added to every linux command-line, e.g. |
| linux /vmlinuz-4.13.0-16-lowlatency root=/dev/mapper/VG_OS-ubuntu_16.04_rootfs ro acpi_osi=! "acpi_osi=Windows 2015" splash $vt_handoff |
| Once rebooted the running kernel command-line will show something like: |
| $ cat /proc/cmdline |
| BOOT_IMAGE=/vmlinuz-4.13.0-16-lowlatency root=/dev/mapper/VG_OS-ubuntu_16.04_rootfs ro acpi_osi=! "acpi_osi=Windows 2015" splash |