приостановите не работает после обновления к Ubuntu 14.04 от 13,10

Я не могу поместить свой ноутбук для приостановки (спят) режим, Если я нажимаю, приостанавливают его, просто блокирует экран, и ничего не происходит?

Я обновил свою предыдущую версию UBUNTU от 13,04 до 13,10 затем к 14,04

Какая-либо Идея, почему это происходит или какая-либо работа вокруг для устранения проблемы?

Я использую Dell Vostro 3400 с ОС на 64 бита

17
задан 23 April 2014 в 09:21

8 ответов

Если бы функция является небольшой (шанс, Вы изменили бы его, часто является низким), и если функция может быть помещена в заголовок без включения несметных чисел других заголовков (потому что Ваша функция зависит от них), это совершенно допустимо, чтобы сделать так. Если Вы объявляете их встроенный экстерн, то компилятор требуется, чтобы давать ему тот же адрес для каждой единицы компиляции:

headera.h:

inline string method() {
    return something;
}

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

, поскольку код функции помещается в заголовок и видимый, компилятор может встроить вызовы им, то есть, помещая код функции непосредственно на сайте вызова (не так, потому что Вы помещаете встроенный перед ним, но больше потому что компилятор решает тот путь, все же. Помещение, встроенное только, является подсказкой к компилятору относительно этого). Это может привести к повышению производительности, потому что компилятор теперь видит, где аргументы соответствуют переменным, локальным для функции, и где аргумент не искажает друг друга - и наконец, что не менее важно, функциональное выделение кадра больше не необходимо.

Мое понимание - когда компиляция будет сделана, компилятор развернет заголовочный файл и поместит его, где он включен. Это корректно?

Да, который корректен. Функция будет определена в каждом месте, где Вы включаете его заголовок. Компилятор будет заботиться о помещении только одного экземпляра его в получающуюся программу путем устранения других.

67
ответ дан 22 May 2017 в 10:43

Вы возможно видите эту ошибку: Черный экран после входа в систему от приостанавливает в Xubuntu 14.04. Попытайтесь удалить light-locker и light-locker-settings и установка xscreensaver для решения проблемы багги приостанавливают/возобновляют.

5
ответ дан 23 April 2014 в 09:21

Я добрался, 'приостанавливают' работу после и обновление из Ubuntu 12.04 LTS к 14.04 LTS (Sony Vaio VPCEB1E0E).

Я ранее использовал сценарий ниже на моем LTS Ubuntu 12.04: [источник http://ubuntuforums.org/showthread.php?t=1978290&p=11958911#post11958911]

#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
#...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug    
# tidied by tqzzaa :)

VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="uhci_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}
    for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
      echo -n "$dev" > $DDIR/unbind
      echo "$driver $dev" >> $DEV_LIST
    done
  done
}

bindDev() {
  if [ -s $DEV_LIST ]; then
    while read driver dev; do
    DDIR=$DRIVERS_DIR/${driver}_hcd
    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
}

case "$1" in
  hibernate|suspend) unbindDev;;
  resume|thaw)       bindDev;;
esac

На Ubuntu 14.04 LTS я изменил строку 'ДРАЙВЕРОВ' от: DRIVERS="ehci xhci" кому: DRIVERS="uhci_hcd xhci_hcd" как имел место в '/sys/bus/pci/drivers' 'каталог.

Следующая вещь, которую я сделал, состояла в том, чтобы отредактировать файл '/etc/default/grub' (как корень), изменившись GRUB_CMDLINE_LINUX="" строка к GRUB_CMDLINE_LINUX="acpi_sleep=nonvs".

Затем выполнение sudo update-grub.

[источник Приостанавливает сбои (перезагрузка на резюме) и не в спящем режиме опция]

Они выше набора шагов добились цели для меня.

Надежда это помогает.

0
ответ дан 23 April 2014 в 09:21

У меня есть эта проблема после того, как я вчера использовал другую версию ядра. Хотя я все еще не знаю, почему это происходит, следующий путь может помочь Вам решить проблему.

Отлаживать эту проблему означает работать pm-suspend от терминала и проверки, если существует что-то не так путем анализа /var/log/pm-suspend.log.

Для моего случая программа, которые выходят аварийный, остановила приостановку. После того, как я удалил его, приостановить работы снова.

Running hook /etc/pm/sleep.d/soxy suspend suspend: 
Stopping Soxy proxy on port 7070       
No running Soxy process found
/etc/pm/sleep.d/soxy suspend suspend: Returned exit code 1.

Thu Sep 10 21:39:11 CST 2015: Inhibit found, will not perform suspend
Thu Sep 10 21:39:11 CST 2015: Running hooks for resume
1
ответ дан 23 April 2014 в 09:21
  • 1
    Да, я хочу сделать свой компьютер. Но, я обнаружил эту работу над друзьями ноутбук. Ubuntu не будет видеть Windows 10 и если выбирают, опция (Сделайте что-то еще). Это won' t делают разделы на неразделенном пространстве для установки Ubuntu. Когда я установил окна в прошлом. Я установил бы раздел Windows в установке Windows и оставил бы неразделенное пространство для Ubuntu. Ubuntu видел пространство и Windows для установки. – lanced 21 October 2015 в 13:19

В зависимости от Вашего компилятора и это - настройки, это может сделать любое следующее:

  • Это может проигнорировать встроенное ключевое слово (это - просто подсказка к компилятору, не команда), и генерируйте автономные функции. Это может сделать это, если Ваши функции превышают зависимый от компилятора порог сложности. например, слишком много вложенных циклов.
  • Это может решить, чем Ваша автономная функция является хорошим кандидатом на встроенное расширение.

Во многих случаях, компилятор находится в намного лучшем положении, чтобы определить, должна ли функция быть встроена, чем Вы, таким образом, нет никакого смысла в пересмотре его. Мне нравится использовать неявное встраивание, когда класс имеет много небольших функций только потому, что удобно иметь реализацию тут же в классе. Это не работает так хорошо на большие функции.

другая вещь иметь в виду состоит в том, что при экспорте класса в библиотеке DLL / общей библиотеке (не хорошая идея, по моему скромному мнению, но люди делает это так или иначе) необходимо быть действительно осторожными с подставляемыми функциями. Если компилятор, который создал DLL, решает, что функция должна быть встроена, у Вас есть несколько потенциальных проблем:

  1. компилятор, создающий программу с помощью DLL, мог бы решить не встроить функцию, таким образом, это генерирует ссылку символа на функцию, которая не существует, и DLL не загрузится.
  2. , Если Вы обновляете DLL и изменяете встроенную функцию, клиентская программа будет все еще использовать старую версию той функции, так как функция была встроена в клиентский код.
12
ответ дан 22 May 2017 в 10:43

Будет увеличение производительности, потому что реализация в заголовочных файлах неявно встраивается. Поскольку Вы упомянули, что Ваши функции являются небольшими, встраивают операцию, будет так выгодно для Вас, по моему скромному мнению.

то, Что Вы говорите о компиляторе, также верно. Нет никакого различия для compiler— кроме inlining— между кодом в заголовочном файле или .cpp файл.

4
ответ дан 22 May 2017 в 10:43
  1. , Если Ваши функции настолько просты, заставьте их встроить, и необходимо будет засунуть их в заголовочный файл так или иначе. Кроме этого, любые конвенции - просто это - конвенции.

  2. Да, компилятор действительно разворачивает заголовочный файл, где он встречается с #include операторами.

2
ответ дан 22 May 2017 в 10:43

Необходимо использовать подставляемые функции. Считайте это Подставляемые функции для лучшего понимания и включенных компромиссов.

-1
ответ дан 22 May 2017 в 10:43

Другие вопросы по тегам:

Похожие вопросы: