ไม่สามารถทำงานต่อหลังจากไฮเบอร์เนต


9

ฉันใช้ไฮเบอร์เนตกับ Ubuntu 16.04 โดยไม่มีปัญหา แต่ทันใดนั้นมันก็หยุดทำงานอย่างถูกต้อง ไม่ว่าฉันจะจำศีลในเมนูพลังงานหรือการใช้sudo pm-hibernateงานก็จะปิดเครื่องคอมพิวเตอร์ แต่เมื่อฉันเปิดเครื่องอีกครั้งและเลือก Ubuntu จากเมนูด้วงก็แค่ให้หน้าจอสีดำ ฉันลองใช้วิธีแก้ไขปัญหาบางอย่าง (ด้านล่าง) แต่ไม่มีใครทำงานได้

ฉันผิดหวังจริงๆที่ทุกครั้งที่ฉันใช้ Ubuntu ฉันมักจะมีปัญหาคล้าย ๆ กับการจำศีล (ด้วยแล็ปท็อปที่แตกต่างกัน)

PS: ฉันมีบูตคู่กับ Windows 10 แต่จำศีลทำงานได้อย่างสมบูรณ์กับมันเป็นเวลานาน

ใช้งานไม่ได้:


ฉันมีปัญหาเดียวกันกับแล็ปท็อปของฉัน - เมื่อฉันกลับมาจากหน้าจอไฮเบอร์เนต - สีดำ สำหรับฉันมันไม่เคยทำงาน "วิธีแก้ปัญหา" สำหรับแล็ปท็อปของฉันคือกด ALT + CTRL + F1 แล้วรอสองสามวินาทีจากนั้นกด ALT + CTRL + F7 ที่นำมันกลับมามีชีวิต (บนแล็ปท็อปของฉัน)
Vanessa Deagan

ขอขอบคุณสำหรับข้อเสนอแนะ แต่ก็ไม่ได้ผลสำหรับฉัน
Karim Sonbol

แค่ปิดฝาแล้วเปิดอีกครั้งล่ะ (ควรลอง!)
Vanessa Deagan

ขอบคุณอีกครั้ง @VanessaDeagan แต่ยังไม่มีอะไรเกิดขึ้น
Karim Sonbol

1
หากคุณยังไม่เห็น: bugs.launchpad.net/bugs/1743094
Steve

คำตอบ:


9

ฉันมีปัญหาเดียวกัน มีข้อผิดพลาดในเคอร์เนลล่าสุดใน 16.04 นี่คือขั้นตอนที่ชัดเจนที่ฉันได้ทำ ทำสิ่งแรกและถ้ามันแก้ปัญหาให้คุณหยุดอยู่ตรงนั้น ถ้าไม่ไป

1. ตั้งค่าคอมพิวเตอร์ให้บูตด้วยเคอร์เนลก่อนหน้า

เริ่มกับ:

uname -r

Mine บอกว่า 4.13 ... จากนั้นทำ:

grep -i "menuentry '" /boot/grub/grub.cfg

คุณจะเห็นรายการเมนูต่าง ๆ ในด้วง ในกรณีของฉันพร้อมกับ "Ubuntu กับ Linux 4.13 ... " มีตัวเลือกเมนูสำหรับบูตด้วยเคอร์เนลก่อนหน้า มันบอกว่าอูบุนตูกับ Linux 4.10.0-28 ในบรรทัดเดียวกันคุณมีบางสิ่งเช่น 'gnulinux-4.10.0-28-generic-advanced -...

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

จากนั้นฉันก็แทรกบรรทัดนี้:

GRUB_DEFAULT = "gnulinux ขั้นสูง-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28 ทั่วไปขั้นสูง-4a50e1e8-56d9-413e-9954-55648888a31d"

โปรดอย่าคัดลอกบรรทัดนี้อย่างแท้จริง แต่ใช้ผลลัพธ์ของคำสั่ง grep ก่อนหน้าตามที่กล่าวไว้ จากนั้นบันทึกและ

sudo update-grub

จากนั้นรีบูตและตรวจสอบว่าเอาต์พุตของ "uname -r" เป็นเคอร์เนลที่เก่ากว่า (4.10 ... ในกรณีของฉัน) คุณอาจจะจำศีลตอนนี้หรือไม่ ถ้าไม่ทำตามขั้นตอนต่อไป

2. ติดตั้งสิ่งของอื่นเพื่อไฮเบอร์เนตมากกว่าอุปกรณ์เริ่มต้น:

ในกรณีของฉันการใช้เคอร์เนลเก่ากำจัดหน้าจอสีดำแห่งความตายและอนุญาตให้ฉันกลับมาทำงานต่อหลังจากไฮเบอร์เนต แต่เนื้อหาของอิมเมจดิสก์กำลังจะถูกลบออกนั่นคือเหมือนกับการรีบูตไม่ใช่การไฮเบอร์เนต ดังนั้นฉันจึงติดตั้งอึที่จำศีลแตกต่างกัน:

sudo apt-get install uswsusp

จากนั้นปิดเครื่องแล้วเปิดอีกครั้งแล้วพิมพ์:

sudo s2disk

นี่ควรจะจำศีลคอมพิวเตอร์ หากหลังจากกลับมาทำงานได้ทุกอย่างเป็นไปตามที่คุณทิ้งไว้คุณก็จะแก้ไขปัญหาได้แล้ว แต่คุณยังคงต้องทำขั้นตอนที่ 4 เพื่อบอก Ubuntu ว่าคุณต้องการใช้สิ่งใหม่โดยค่าเริ่มต้นและคุณต้องการมีตัวเลือกในการจำศีลในแอปพลิเคชัน

3. บอกด้วง 2 โดยที่ swap partition คือ:

มันยังไม่ได้ผลสำหรับฉันดังนั้นฉันต้องบอกด้วงว่าพาร์ทิชัน swap อยู่ที่ใด:

cat / etc / fstab

ฉันสามารถอ่านได้ที่ "# swap อยู่ใน / dev / sda2 ระหว่างการติดตั้ง" ดังนั้นฉันจึงแก้ไขด้วงอีกครั้ง:

sudo gedit / etc / default / grub

และเพิ่ม:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = ปิดใช้งาน Resume = / dev / sda2"

ส่วนที่สำคัญคือ "resume = / dev / sda2" แต่สิ่งที่ก่อนหน้า (intel blablabla) อยู่ที่นั่นเพราะเหตุผลอื่น ขั้นตอนต่อไปคือ:

sudo update-grub

รีบูตและลองอีกครั้งเพื่อจำศีลกับบางสิ่งที่เกิดขึ้น (เช่นเปิดภาพยนตร์ด้วย vlc) ด้วย:

sudo s2disk

หากสิ่งนั้นยังคงอยู่หลังจากที่คุณดำเนินการต่อคุณได้แก้ไขปัญหาแล้ว

4. บอก Ubuntu ให้ใช้สิ่งจำศีลใหม่ที่คุณติดตั้งแทนค่าเริ่มต้น:

ตอนนี้คุณต้องบอกให้ Ubuntu ใช้ s2disk เพื่อจำศีลแทนสิ่งที่มาจากค่าเริ่มต้น:

sudo gedit /etc/pm/config.d/00sleep_module

และแทรกที่นั่น:

SLEEP_MODULE = "uswsusp"

บันทึกและปิดไฟล์ แล้ว:

sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

และแทรกที่นั่น:

[เปิดใช้งานการจำศีลอีกครั้งตามค่าเริ่มต้นใน upower]

ตัวตน = ยูนิกซ์ผู้ใช้: *

Action = org.freedesktop.upower.hibernate

ResultActive = yes

[เปิดใช้งานการไฮเบอร์เนตตามค่าเริ่มต้นอีกครั้งในการเข้าสู่ระบบ]

ตัวตน = ยูนิกซ์ผู้ใช้: *

Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-จำศีลคีย์; org.freedesktop.login1; org.freedesktop.login1.hibernate-เซสชันหลาย org.freedesktop.login1.hibernate-ignore- ยับยั้ง

ResultActive = yes

รีบูตและลองอีกครั้ง

5. หากหลังจากใช้ขั้นตอนที่ 4 คุณจะไม่สามารถจำศีลได้โดยใช้sudo systemctl hibernateวิธีดังต่อไปนี้

ขั้นตอนที่ 4 ไม่เพียงพอที่จะเปลี่ยนเป็น uswsusp ใน Ubuntu 18.10

แก้ไขบริการไฮเบอร์เนต

sudo systemctl แก้ไข systemd-hibernate.service

และเพิ่มดังต่อไปนี้

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

อัปเดต systemd

sudo systemctl daemon-reload

ทดสอบการตั้งค่าโดยเรียกใช้สิ่งต่อไปนี้

sudo systemctl จำศีล


ขอบคุณฉันเลือกเคอร์เนลเก่าจากเมนูบูตและไฮเบอร์เนตใช้ได้กับมัน ฉันจะตรวจสอบขั้นตอนการอัพเดตด้วงอื่น ๆ ในภายหลัง แต่ฉันหวังว่าพวกเขาจะแก้ไขเคอร์เนลปัจจุบันในไม่ช้า
Karim Sonbol

ที่จริงฉันเลือกเคอร์เนลเก่าหนึ่งครั้งจากเมนูด้วงแล้วจำศีล เมื่อฉันเปิดมันอีกครั้งและเลือกตัวเลือก "อูบุนตู" ปกติโดยไม่มีตัวเลือกขั้นสูงมันจำได้ว่าฉันเลือกและใช้เคอร์เนลเก่าและโชคดีที่แอพที่เปิดอยู่ทั้งหมดของฉันอยู่ในตำแหน่งนั้น
Karim Sonbol

มีเหตุผลพิเศษที่จะไม่ถอนการติดตั้งเคอร์เนลใหม่และติดกับเก่าหรือไม่
lrkwz

3

@karim ฉันมีปัญหาเดียวกันนี่คือวิธีแก้ไข:

ใช้ UUID ของพาร์ติชัน swap แทนจุดติดตั้งในพารามิเตอร์ RESUME resume=UUID=#ทั้ง/etc/default/grubและ/etc/initramfs-tools/conf.d/resume

สร้างรายการสำหรับพาร์ติชัน swap ใน/etc/fstab โดยไม่ต้องจุดยึดอะไรเช่นนี้

# Entry for Swap : 
UUID=# none  swap    sw              0       0

ใน/etc/default/grubฉันใช้รายการแยกต่างหากสำหรับการไฮเบอร์เนตต่อ

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

สร้างชุดนโยบายในหน่วยงานท้องถิ่น (pkla) ตามที่อธิบายโดย @Mephisto

อัปเดต initramfs และ GRUB

sudo update-initramfs -u -k all
sudo update-grub

รีบู๊ตเปิดแอพบางตัวและใช้systemctl hibernate(โดยไม่ใช้ sudo) เพื่อดูว่าใช้งานได้หรือไม่


ฉันตั้งค่าทุกอย่างแล้วยกเว้น 'sudo update-initramfs -u -k all' ดูเหมือนจะแก้ไขปัญหาของฉันได้ ขอบคุณ.
Zamicol

2

ขอบคุณสำหรับคำตอบของคุณ ปัญหาได้รับการแก้ไขใน Kernel 4.15 ฉันเพิ่งลองตอนนี้และใช้งานได้ เห็นได้ชัดว่าเคอร์เนล HWE แก้ไขได้ ( linux-generic-hwe-16.04 package)

หากคุณใช้ Ubuntu 16.04 คุณเพียงแค่ต้องติดตั้งอัปเดตล่าสุดเพื่ออัพเกรดเคอร์เนล คุณสามารถอ่านรายละเอียดเพิ่มเติมเกี่ยวกับที่นี่

เคอร์เนลปัจจุบันของฉันคือ 4.15.0-33-generic


2

ฉันยังมีปัญหานี้ทำให้เกิดภัยพิบัติฉัน ... และการแก้ไขหลังจากความพยายามหลายครั้งก็คือการติดตั้ง Ubuntu 18.04 อีกครั้งและตอนนี้มันทำงานได้อย่างสมบูรณ์ ฉันยังใช้ไดรเวอร์ "ทดสอบ" ของ Nvidia ด้วยเนื่องจาก Nvidia เคยเป็นผู้ร้ายมาก่อน

อาจเป็นsudo add-apt-repository ppa:graphics-driversppa ที่ติดตั้งสิ่งของ "Extra" และ / หรือไดรเวอร์ 396 ซึ่งทำให้ความสามารถในการจำศีลของแล็ปท็อปของฉันเพิ่มขึ้น ไม่ว่าจะเป็นวิธีการทำงานอย่างไม่มีที่ติในเวลาที่เขียนด้วยไดรเวอร์ทดสอบของ NVidia 390 ก่อนที่จะเปลี่ยนไปใช้ไดรเวอร์นูโว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.