Ich verwende Ubuntu 16.04 LTS auf meinem Lenovo G50 und alles läuft gut, außer dass ich den Deckel meines Laptops nicht schließen kann, ohne danach einen Neustart durchführen zu müssen. Wenn ich den Deckel schließe (oder wenn ich ausführe pm-suspend
), wird der Bildschirm meines Laptops für einige Sekunden dunkel und schaltet sich dann wieder ein.
Das Problem besteht darin, dass sich mein Laptop beim Versuch, es fortzusetzen, im Grunde in eine Kartoffel verwandelt ... Aus irgendeinem Grund funktioniert der Netzwerkmanager (sowohl WLAN als auch Ethernet) überhaupt nicht, das Terminal wird extrem langsam und ich kann keinen Befehl ausführen, sudo
weil es für immer hängen bleibt.
Ich habe versucht, die logind.conf
Datei zu ändern, ich habe versucht, das zu ändern Power System Settings
, ich habe meinen Intel-Grafiktreiber aktualisiert, ich habe Tools wie pmi
oder installiert laptop-mode
... Mir gehen die Ideen aus, aber ich würde alles tun, um dieses Problem zu beheben.
Wenn es Systeminformationen gibt, die nützlich sein könnten, lassen Sie es mich wissen und ich werde sie dem Beitrag hinzufügen.
Antwort1
So ändern Sie die Aktion „Deckel schließen“ in Ubuntu:
Öffnen Sie die Datei /etc/systemd/logind.conf in einem Texteditor als Root, zum Beispiel:
sudo nano /etc/systemd/logind.conf
Ändern Sie diese Zeile:
#HandleLidSwitch=ignore
Zu dieser Zeile:
HandleLidSwitch=suspend
Stellen Sie sicher, dass es auskommentiert ist.
Alternativ können Sie auch diese Zeile hinzufügen, aber ich bevorzuge die erste:
HandleLidSwitchDocked=suspend
Dann renne :
sudo service systemd-logind restart
OderNeustart.
Zur Fehlerbehebung im Ruhezustand/Suspend-Modus sollten Sie den folgenden Befehl in das Terminal eingeben:
dmesg|less
Normalerweise gibt es einen Eintrag, welche Anwendung die Unterbrechung verursacht hat:
[32467.560058] Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0):
[32467.560115] plasma-desktop D 0000000000000000 0 2065 1 0x00800004
Suspend auf Laptops beheben
sudo apt-get install uswsusp
Testen Sie nun die Suspendierung mit:
sudo s2ram
Wenn es nicht funktioniert, verwenden Sie:
sudo s2ram --force
Bearbeiten Sie als nächstes diese Datei:
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
Ändern Sie den Code in:
#!/bin/sh
/sbin/s2ram --force
Bearbeiten: Eine weitere Lösung:
Legen Sie ein Skript in ' /etc/pm/sleep.d/ ' ab. Die Skripte dort werden beim Anhalten und Fortsetzen ausgeführt. Der Dateiname sollte mit einer Ordnungsnummer beginnen, 00-49 für Benutzerskripte (weitere Einzelheiten finden Sie unter man pm-suspend).
Das Skript könnte so aussehen
#!/bin/sh
(killall -9 mount.nfs; exit 0)
Wenn bei Ihnen Probleme auftreten, überprüfen Sie /var/log/pm-suspend.log. Dort wird der Versuch protokolliert, den Computer anzuhalten und Ihr Skript auszuführen.
Ubuntu Suspend funktioniert nicht FIX
Schritt 1: Öffnen Sie ein Terminal und erstellen Sie eine Skriptdatei wie folgt:
sudo nano /etc/pm/sleep.d/20_custom-ehci_hcd
Schritt 2: Kopieren Sie das gesamte untenstehende Skript in die soeben erstellte Datei und speichern Sie es:
#!/bin/sh
VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1
unbindDev() {
echo -n > $DEV_LIST 2>/dev/null
for driver in $DRIVERS; do
DDIR=$DRIVERS_DIR/${driver}_hcd
for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
echo -n "$dev" > $DDIR/unbind
echo "$driver $dev" >> $DEV_LIST
done
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
# done
done
}
bindDev() {
if [ -s $DEV_LIST ]; then
while read driver dev; do
DDIR=$DRIVERS_DIR/${driver}_hcd
#for bus in $EHCI_BUSES; do
echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
#done
while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
echo -n "$dev" > $DDIR/bind
if [ ! -L "$DDIR/$dev" ]; then
sleep $BIND_WAIT
else
break
fi
MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
done
done < $DEV_LIST
fi
rm $DEV_LIST 2>/dev/null
chvt 1
chvt 7
}
EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "$1" in
hibernate|suspend)
unbindDev;;
resume|thaw)
bindDev;;
esac
Schritt 3: Geben Sie dem Skript die Berechtigung zum Ausführen, indem Sie Folgendes eingeben:
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
Antwort2
Nachdem ich mich eingelesen hatte, fand ich heraus, dass das Problem an der Qualcomm Atheros QCA6164 WiFi-Karte lag, die in vielen Lenovo-Laptops verwendet wird (in meinem Fall G50-80). Ubuntu scheint nicht die richtige Firmware für diese Karte zu haben, was zu Problemen führt.
Ich habe auch herausgefunden, dass das Ausschalten des WLANs vor dem Schließen meines Laptops verhindern würde, dass alles abgehört wird, also habe ich das und die Lösung von diesemPostzusammengestellt und eine Datei erstellt, /etc/acpi/
um das Ereignis zum Schließen des Deckels zu verarbeiten.
Fügen Sie den folgenden Code hinzu mit sudo nano /etc/acpi/lid.sh
:
#!/bin/sh
grep -q closed /proc/acpi/button/lid/LID0/state
if [ $? = 0 ]
then
nmcli radio wifi off
pm-suspend
else
nmcli radio wifi on
fi
Fügen Sie als Nächstes die folgenden Zeilen hinzu sudo nano /etc/acpi/events/lm_lid
:
event=button/lid.*
action=/etc/acpi/lid.sh
Entfernen Sie nun die Kommentarzeichen und legen Sie die folgende Zeile fest mit sudo nano /etc/systemd/logind.conf
:
HandleLidSwitch=ignore
Gehen Sie abschließend in die System Settings > Power
und stellen Sie alle Optionen zum Schließen des Deckels auf Do Nothing
.
Führen Sie Folgendes aus, um die Berechtigungen festzulegen und die Änderungen abzuschließen:
sudo chmod 755 /etc/acpi/lid.sh
sudo /etc/init.d/acpid restart
sudo service systemd-logind restart
Hoffentlich funktioniert es für Sie!