Получение альтернативы 200-строчному Linux Kernel patch для работы
По-видимому, существует сопоставимая альтернатива 200- строчному исправлению ядра, которое не требует обновления ядра.
Это представлено здесь и обсуждено здесь.
Однако я не уверен, работает ли решение webupd8 (в разделе "Использовать его в Ubuntu") в Ubuntu или нет. В частности, один комментатор на./ говорит, что он получает сообщение об ошибке. Может ли кто-нибудь опубликовать "правильный" метод, который действительно работает?
Предлагаемое решение:
Основываясь на комментариях, которые я прочитал до сих пор, кажется, что следующее работает.
(1) В /etc/rc.local
, добавьте следующие строки выше exit 0
:
mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
(2) Создайте файл с именем /usr/local/sbin/cgroup_clean
со следующим содержанием:
#!/bin/sh
rmdir /dev/cgroup/cpu/$1
(3) В вашем ~/.bashrc
, добавлять:
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi
(4) (чтобы убедиться, что бит выполнения включен) выполнить
sudo chmod +x /usr/local/sbin/cgroup_clean /etc/rc.local
(5) Перезагрузка.
3 ответа
Ответ выше должен действительно исправить сообщение об ошибке терминала. Гедель, я не уверен, что понял твою мысль. Я постараюсь объяснить изменения:
Так как значение notify_on_release по умолчанию при создании других cgroups является текущим значением параметра notify_on_release их родителей, установка значения / dev / cgroup / cpu / user / notify_on_release в 1 позволит убедиться, что в каждой дочерней cgroup включена функция notify_on_release и, таким образом, release_agent будет запущен. К сожалению, когда последняя дочерняя группа "user" была удалена (release_agent), эта папка также будет удалена, что приведет к сообщениям об ошибках. Простой обходной путь - включить notify_on_release для каждой cgroup отдельно при создании, оставив родительский параметр отключенным.
Надеюсь, что это было легко следовать!
Изменить: я бы опубликовал это в качестве комментария к фактическому ответу, хотя, похоже, у меня недостаточно репутации, чтобы сделать это (пока).
Я применил этот патч с помощью автоматизированного скрипта в Web UPD8 к Asus eee 1000H. Я заметил значительное увеличение производительности в Google Chrome с запущенными приложениями Flash. Видео было более плавным и с меньшим количеством кадров. Пользовательский интерфейс Gnome также стал быстрее и быстрее перерисовывался. Очень круто. текст ссылки
Обновленные инструкции от Рикардо Феррейры
Начните с редактирования вашего файла rc.local, запустив sudo -H gedit /etc/rc.local
и добавьте следующие строки выше exit 0
:
mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
Сохраните и выйдите из Gedit. Теперь сделайте его исполняемым:
sudo chmod +x /etc/rc.local
После этого отредактируйте файл.bashrc, найденный в вашем домашнем каталоге (gedit ~/.bashrc), и, в конце этого файла, добавьте:
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi
Одна последняя вещь. Чтобы убедиться, что cgroups удаляются при выходе из последней задачи, выполните:
sudo -H gedit /usr/local/sbin/cgroup_clean
И скопируйте и вставьте это:
#!/bin/sh
rmdir /dev/cgroup/cpu/$*
Еще раз, сохраните файл, выйдите из gedit и сделайте его исполняемым:
sudo chmod +x /usr/local/sbin/cgroup_clean
Готово! Перезагрузите компьютер, чтобы изменения вступили в силу.