Получение альтернативы 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

Готово! Перезагрузите компьютер, чтобы изменения вступили в силу.

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