显然,对于不涉及内核升级的 200 行内核补丁,有一个类似的替代方案。
但是,我不确定 Ubuntu 上的 webupd8 解决方案(在“在 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) 重新启动。
上面的答案确实应该修复终端错误消息。哥德尔,我不确定我是否理解你的意思。我将尝试解释更改:
由于在创建其他 cgroup 时 notify_on_release 的默认值是其父级 notify_on_release 设置的当前值,将 /dev/cgroup/cpu/user/notify_on_release 的值设置为 1 将确保每个子 cgroup 都启用了 notify_on_release,因此release_agent 将被运行。不幸的是,当“user”的最后一个子 cgroup 被删除(由 release_agent)时,该文件夹也将被删除,从而导致报告错误消息。一个简单的解决方法是在创建时为每个 cgroup 单独启用 notify_on_release,保持 parent 设置禁用。
希望这很容易理解!
编辑:我会将此作为对实际答案的评论发布,尽管我似乎没有足够的声誉这样做(还)。
我使用 Web UPD8 上的自动脚本将此补丁应用到 Asus eee 1000H。我注意到运行 Flash 应用程序时 Google chrome 的性能显着提高。视频更流畅,丢帧更少。Gnome UI 也更快捷,窗口重绘速度更快。很酷。链接文本
Ricardo Ferreira 的更新说明
首先编辑 rc.local 文件,运行
sudo -H gedit /etc/rc.local
并在上面添加以下行exit 0
:保存并退出 gedit。现在,使其可执行:
完成此操作后,编辑在您的主目录 (gedit ~/.bashrc) 中找到的 .bashrc 文件,并在该文件的末尾添加:
最后一件事。要确保在最后一个任务离开时删除 cgroup,请运行:
并复制粘贴:
再次保存文件,退出 gedit 并使其可执行:
完毕!重新启动计算机以应用更改。