Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Решение для Ubuntu 12.04 - ноутбук хронически не выходит из ждущего режима.  (Прочитано 5263 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн evb87ar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
Работаю на Levono ideaPad Z560. Ubuntu 10.04 замечательно засыпала и просыпалась, без всяких проблем.
Начиная с Ubuntnu 11 и выше появилась проблема: ноут нормально засыпает, но из ждущего\спячего режима выходит через раз.
А если и выходит, практически всегда отваливается Bluetooth, ethernet-LAN.

Вот решение для тех, у кого наблюдается похожая проблема.
1. Создаём файл
sudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd
2. Кидаем туда:
#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost...0&postcount=19
#...and http://thecodecentral.com/2011/01/18...ot-working-bug
# tidied by tqzzaa :)
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

3. Даём права на выполнение
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
Всё. Тестировал более двух недель по десятку раз в день, всё работает стабильно.
Оригинал решения нашёл тут: http://ubuntuforums.org/showthread.php?p=11926504

P.S. Я понимаю что скрипт перезагружает драйвера устройств, но хотелось бы понять что и как выполняется. Если не затруднит знающих людей, вы не могли бы вкратце рассказать что тут выполняется?

Оффлайн Hantim

  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
У меня на Lenovo G565 такая же проблема, причем она была на вин хр, на вин 7, на убунте, сейчас на другом линукс дистрибутиве, но даже желания оставить ноут на ждущий режим нету. Слышал что аналогичной проблемой страдает большинство ноутбуков и проблема тут наверное скорее в железе. Подозреваю что возможно в этом может быть виновата видеокарта ATI Mobility Radeon.
Скрипт потом опробую.

Оффлайн evb87ar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
Изначально стояла Win7, но проблем с режимами не было, кроме как с ethernet картой, которая так же отваливалась.

Оффлайн yujee

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
 :) ребята, на Dell n5110 была точно такая же проблема, но с Вашей помощью была устранена!!!

Оффлайн fiveseven

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Тестил на Lenovo IdeaPad Y580
Не работает. Никуда он не засыпает и ничего не ждет

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.