Bagaimana cara men-debug masalah yang ditangguhkan?

11

Saya dulu memasang Fedora 14 pada HP Compaq 610 ini, dan fitur penangguhan berfungsi dengan baik. Sekarang saya telah menginstal menangguhkan Scientific Linux 6.1 tidak berfungsi lagi. Bagaimana cara saya debug / memperbaikinya?

LanceBaynes
sumber
Apakah shell ini ditangguhkan (<kbd> Cntl-z </kbd>) atau OS (sleep atau hibernate)?
Arcege
@Arcege: Saya akan berasumsi dia bermaksud ACPI menangguhkan, karena itu menjadi masalah umum akhir-akhir ini.
JM Becker

Jawaban:

9

Ada banyak cara untuk menangani kemampuan menangguhkan dan hibernasi, banyak metode lama sudah usang. Ini membuat pencarian solusi menjadi sulit, karena tampaknya setiap solusi sama sekali tidak berhubungan dengan yang berikutnya. Dengan mengatakan ...

Metode yang saat ini direkomendasikan, dianjurkan dari http://pm-utils.freedesktop.org/wiki/ , harus tersedia untuk sebagian besar distribusi terbaru. Pertama saya akan memeriksa apakah Anda telah pm-utilsmenginstal, dan apakah perintah yang disertakan beroperasi seperti yang diharapkan.

Lihat apakah paket sudah diinstal, masukkan perintah ini di terminal

rpm -qa | grep pm-utils

Ini akan menampilkan versi yang telah Anda instal. Jika Anda tidak mendapatkan hasil yang diharapkan, Anda harus menginstal paket.

sudo yum install pm-utils

Setelah Anda diverifikasi, uji kemampuan Anda untuk menangguhkan.

sudo pm-suspend

Jika Anda tidak menangguhkan, dan tidak mendapatkan hasil mengapa, periksa keluaran dmesg terbaru Anda

dmesg | tail -50

Ini akan membantu Anda memulai, setelah Anda mendapatkan beberapa petunjuk lebih mudah untuk melangkah lebih jauh. Posting kembali dengan komentar mengenai hasil Anda, saya dapat membantu Anda menyelesaikan sisanya.

JM Becker
sumber
Saya bahkan menginstal pm-utils-devel. pm-suspend dengan root user melakukan hal yang sama seperti dengan pengguna normal ketika mengklik di GNOME / menu-> suspend-> nothing, mesin hanya mengatakan "network off", kemudian hanya menunggu dan menunggu, dll. saya bisa memulai apa pun setelah saya mencoba menangguhkan. Saya akan melihat dmesg nanti, terima kasih!
LanceBaynes
The dmesgoutput akan memberitahu Anda apa yang terjadi di belakang layar. Lebih penting lagi, apa yang khususnya mungkin gagal. O dan BTW, Anda tidak perlu paket devel. Anda hanya membutuhkannya saat kompilasi kode, jadi jangan ragu untuk menghapusnya. Ada banyak arah untuk pergi dari sini, saya hanya tidak mengirim Anda menggonggong pohon yang salah.
JM Becker
1
@ LanceBaynes apakah Anda mencoba menjalankan pm-suspendperintah dari shell dan tidak melalui menu GNOME? Coba echo -n "mem" >/sys/power/statesebagai root. Juga jika Anda menggunakan, acpiAnda dapat acpi_listenmelihat apa acara yang dihasilkan misalnya saat menutup tutupnya.
WOW, wtf? Saya "echo -n" mem "> / sys / power / state" dengan pengguna root, dan saya benar-benar ditangguhkan !!!! WOW. Satu-satunya masalah adalah sekarang ketika saya melakukan penundaan ini, maka gnome-screensaver tidak dimulai, dan membuat saya PC yang tidak terkunci. Bagaimana menyiasatinya? Bagaimana saya bisa membuat skrip / apa saja sehingga pengguna biasa dapat menggunakan penangguhan semacam ini juga? bukan hanya pengguna root? - dan satu hal lagi: TERIMA KASIH!
LanceBaynes
2
@LanceBaynes: Sekarang sudah berfungsi? ... Dulu aku percaya istirahat / perbaikan "kejutan" semacam ini hanya terjadi pada Widoze. Sayangnya, saya sudah berhenti percaya itu untuk sementara waktu. Tapi ... sisi baiknya, itu jarang terjadi! Dan penangguhan Anda berfungsi, jadi itu berita bagus!
JM Becker
8

Coba ini sebagai root:

PM_DEBUG=true pm-suspend

Kemudian periksa /var/log/pm-suspend.logpetunjuk tentang apa yang salah.

Jika Anda dapat menangguhkan, tetapi tidak melanjutkan, ada artikel bagus di wiki Ubuntu tentang cara men-debug masalah ini.

Mika Fischer
sumber
2

Jika Anda hanya ingin mendapatkan ketika Anda menangguhkan / melanjutkan sistem, Anda dapat mencoba ini:

cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb  7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb  7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb  7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb  7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb  7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb  7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.
dmatej
sumber
1

Seperti yang disarankan oleh Mika, sebagai root:

PM_DEBUG=true pm-suspend

Detail dalam:

/var/log/pm-suspend.log

Dalam hal ini Anda mencari di mana

[...] service [servicename] suspend suspend success

berakhir, dan

[...] service [servicename] suspend resume success

dimulai. Di suatu tempat di antara Anda mungkin menemukan kesalahan panggilan kembali, pada saat mana penangguhan terhambat. Dalam hal ini, Anda mungkin menunda perubahan yang dibatalkan. Cari tahu apa panggilan layanan yang melempar kesalahan, buka di vi dan lihatlah.

Saya memiliki masalah yang sama di mana setelah menginstal xboxdrvpada Ubuntu 12.04, panggilan yang dibuat dalam aturan /etc/pm/sleep.d/mencoba menghentikan layanan yang tidak pernah dimulai atau tidak ada, dalam hal ini xboxdrv,. Ternyata itu tidak pernah bisa dimulai sejak awal, karena tidak ada /lib/modules/uinput.komodul, karena modul itu digabung ke dalam kernel. Hal ini menyebabkan pernyataan kasus dalam /etc/pm/sleep.d/xboxdrvmelemparkan kesalahan ketika itu cocok dengan "menangguhkan" panggilan service xboxdrv stop. Tambahkan baris dengan #memotong pernyataan, dengan mengorbankan harus mencabut dan pasang kembali controller Anda pada menangguhkan kemudian lanjutkan.

SYANiDE
sumber
Saya tidak memiliki kesalahan dalam debug log setelah menjalankan ini, tetapi ajaibnya mulai bekerja lagi ;-) Saya bertanya-tanya apakah itu memperbaiki permanen ...
Wirone